sa_diagnostic_query 表属于 dbo 用户,其中存储查询的优化信息,尤其是优化查询时的上下文。此表中的一行表示针对查询调用的一次优化程序。优化时所捕获的计划被存储在这里。
此表中的某些值反映了数据库选项值。
此表有两个版本:sa_diagnostic_query 和 sa_tmp_diagnostic_query。
列名 | 列类型 | 列约束 | 表约束 |
---|---|---|---|
logging_session_id | UNSIGNED INT | NOT NULL | 主键。外键引用 sa_diagnostic_statement。 |
query_id | UNSIGNED BIGINT | NOT NULL | 主键。外键引用 sa_diagnostic_statement。 |
statement_id | UNSIGNED BIGINT | NOT NULL | |
user_object_id | UNSIGNED BIGINT | NOT NULL | |
start_time | TIMESTAMP | NOT NULL | |
cache_size_bytes | UNSIGNED BIGINT | ||
optimization_goal | TINYINT | ||
optimization_level | TINYINT | ||
user_estimates | TINYINT | ||
optimization_workload | TINYINT | ||
available_requests | TINYINT | ||
active_requests | TINYINT | ||
max_tasks | TINYINT | ||
used_bypass | TINYINT | ||
estimated_cost_ms | TINYINT | ||
plan_explain | LONG VARCHAR | ||
plan_xml | LONG VARCHAR | ||
sql_rewritten | LONG VARCHAR |
logging_session_id 在期间发生查询或请求的那个记录会话的 ID。
query_id 唯一地标识查询的编号。
statement_id 唯一地标识查询中的语句的编号。
user_object_id 在其下执行此查询的用户的对象 ID。如果查询是从过程运行的,则这将是过程所有者的用户 ID。
start_time 优化此查询时的时间。
cache_size_bytes 优化此查询时高速缓存的大小(以字节为单位)。
optimization_goal 确定优化查询处理的意图:是迅速返回第一行,还是为最大程度地降低返回整个结果集的开销。此值反映了 optimization_goal 数据库选项的值。
要查看此列的可能值,请参见optimization_goal 选项 [数据库]。
optimization_level 控制 SQL Anywhere 查询优化程序为查找 SQL 语句的访问计划而消耗的资源量。此值反映了 optimization_level 数据库选项的值。
要查看此列的可能值,请参见optimization_level 选项 [数据库]。
user_estimates 控制查询优化程序是考虑还是忽略查询谓语中的用户选择性估计。此值反映了 user_estimates 数据库选项的值。
要查看此列的可能值,请参见user_estimates 选项 [数据库]。
optimization_workload 确定优化查询处理的目标是针对更新和读取混合进行的负载还是针对主要基于读取的负载。此值反映了 optimization_workload 数据库选项的值。
要查看此列的可能值,请参见optimization_workload 选项 [数据库]。
available_requests 内部使用,以计算查询内并行机制的级别。
active_requests 内部使用,以计算查询内并行机制的级别。
max_tasks 内部使用,以计算查询内并行机制的级别。
used_bypass 是否使用了简单查询忽略。值 1 表示使用了忽略;值 0 表示查询已完全优化。
estimated_cost_ms 预计开销(毫秒)。
plan_explain 此查询的文本计划表示。
plan_xml 查询的图形式计划表示(如果记录了一个查询)。
sql_rewritten 应用优化后查询的文本。仅当启用优化记录后,此列中才会显示有值。
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |