Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 12.0.0 (中文) » SQL Anywhere 服务器 - SQL 的用法 » 查询优化与执行 » 读取执行计划 » 读取图形式计划

 

节点统计字段说明

下面是在图形式计划的 [节点统计] 部分显示的字段的说明。

字段 说明

CacheHits

此运算符发出的高速缓存读取请求(不需要进行磁盘读取操作的缓冲池满足了这些请求)的总数。

CacheRead

为读取数据库文件的页(通常为表页和/或索引页),此运算符所进行尝试的总次数。

CPUTime

此节点代表的处理算法所需的 CPU 时间。

DiskRead

由于此节点的处理已从磁盘读取的累积页数。

DiskReadTime

执行数据库页(此节点处理时需要)的磁盘读取所需要的累积运行时间。

DiskWrite

由于此节点的处理已写入磁盘的累积页数。

DiskWriteTime

执行数据库页(此节点的处理算法需要)的磁盘写入所需要的累积运行时间。

FirstRowRunTime

FirstRowRunTime 值是生成此节点中间结果的第一行所需要的实际时间。

Invocations

调用节点来计算一个结果并将结果返回到父节点的次数。多数节点只被调用一次。但是,如果扫描节点的父节点是一个嵌套循环连接,那么该节点可能被执行多次,并且每次调用后可能返回不同的行集。

PercentTotalCost

计算此特定节点内结果所花费的 [运行时],表示为语句总运行时的百分比。

QueryMemMaxUseful

预期用于此特定运算符的估计查询内存量。如果该值与实际使用的查询内存量(报告为 [实际] 统计信息)差别较大,则表明查询优化程序所估计的结果集大小可能有问题。此估计错误的一个可能原因是谓语选择性估计值不准确或缺失。

RowsReturned

作为处理请求的结果返回到父节点的行数。RowsReturned 经常(但不是必须)与该节点所代表的(可能是派生的)对象中的行数相同。考虑表示基表扫描的叶节点。RowsReturned 值可能小于或大于表中的行数。如果在计算最终结果时父节点无法请求表中的所有行,则 RowsReturned 值较小。在某些情况下 RowsReturned 值可能较大,比如在 GROUP BY GROUPING SETS 查询中,父 Group By Hash Grouping Sets 节点需要通过输入进行多次传递以计算不同的组。

如果估计的返回行数与实际返回的行数存在较大差异,则可能表明优化程序正在处理选择性很低的信息。

RunTime

该值是对挂钟时间的测量,包括输入/输出等待、行锁、表锁、内部服务器并发控制机制和实际运行时处理。对 [运行时] 的解释取决于它出现在的统计信息部分。在 [节点统计] 中,[运行时] 是只对此节点执行期间该节点的相应运算符所花费的累积时间。此项统计的估计值和实际值都显示在 [节点统计] 部分中。

如果节点的 [运行时] 大于表扫描或索引扫描的预期值,则进一步分析可能有助于查明问题。查询可能争用共享资源并因此阻塞;可使用 sa_locks() 系统过程监视阻塞的连接。作为另一个示例,磁盘上的数据库页布局可能不是最优,或者表产生了内部页碎片。可以通过执行 REORGANIZE TABLE 语句来提高性能。可使用 sa_table_fragmentation() 和 sa_index_density() 系统过程来确定表或索引是否产生了碎片。