当您要快速比较计划时,简要文本计划将非常有用。在所有访问计划格式中,它所提供的信息量是最少的,但它在一行上提供这些信息。
在下面的示例中,由于 ORDER BY 子句使整个结果集进行排序,因此计划以 Work[Sort
开头。对 Customers 表的访问是通过它的主键索引 CustomersKey 进行的。因为列 Customers.ID 是主键,所以将使用索引扫描来满足搜索条件。缩写 JNL 指示优化程序选择合并连接来处理 Customers 和 SalesOrders
之间的连接。最后,使用外键索引 FK_CustomerID_ID 对 SalesOrders 表进行访问,以在 Customers 表中查找 CustomerID 小于 100 的行。
SELECT EXPLANATION ('SELECT GivenName, Surname, OrderDate FROM Customers JOIN SalesOrders WHERE CustomerID < 100 ORDER BY OrderDate'); |
Work[ Sort[ Customers<CustomersKey> JNL SalesOrders<FK_CustomerID_ID> ] ]
有关计划中使用的代码字的详细信息,请参见执行计划缩写。
下面的命令包含两个查询块:引用 SalesOrders 和 SalesOrderItems 表的外部选择块和从 Products 表选择的子查询块。
SELECT EXPLANATION ('SELECT * FROM SalesOrders AS o KEY JOIN SalesOrderItems AS I WHERE EXISTS ( SELECT * FROM Products p WHERE p.ID = 300 )'); |
o<seq> JNL i<FK_ID_ID> : p<ProductsKey>
用冒号将不同查询块的连接策略分开。简要计划始终会首先列出主块的连接策略,然后才列出其它查询块的连接策略。其它查询块的连接策略的顺序可能与语句中查询块的顺序或者查询块的执行顺序不对应。
有关计划中使用的缩写的详细信息,请参见执行计划缩写。
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |