Azure SQL数据库索引与事务管理全解析(上)
1. 非聚集索引与B - Tree索引的使用
非聚集索引是用于优化常见但并非主导性查询的附加实用结构。你可以添加多个非聚集索引,查询优化器会选择最适合查询的那个。
B - Tree索引是Azure SQL数据库中最常见的索引类型,其结构在以下场景中非常有用:
- 索引查找操作 :定位具有指定列值的单个行或一组行。
- 范围扫描操作 :定位具有某个范围内值的一组行。
例如,对于以下查询:
SELECT c.CustomerName, c.CreditLimit,
o.CustomerPurchaseOrderNumber, o.DeliveryInstructions
FROM Sales.Customers AS c
INNER JOIN Sales.Orders AS o
ON c.CustomerID = o.CustomerID
WHERE c.PostalCityID = 42
Azure SQL需要读取 Customers
表以查找 PostalCityID
值为42的所有客户,然后读取 Orders
表以查找 CustomerID
列值与第一次读取中获取的 CustomerID
值匹配的订单。如果只是为了获取几行数据而扫描整个表,效率会非常低。此时创