• 南大通用GBase8s 常用SQL语句(256)


    使用 FILE TO 选项

    当您执行 SET EXPLAIN FILE TO 语句时,开启说明输出。SET EXPLAIN FILE TO 语句可更改说明输出的缺省的文件名称,直到会话结束为止,或直到发出另一 SET EXPLAIN 语句为止。

    该 filename 可为任何路径与文件名称的任何组合。如果未指定路径,则将该未见值域缺省的说明输出位置。当前的用户拥有该文件的权限。

    您在 SET EXPLAIN 语句中指定的输出文件可为新文件或现有的文件。如果 FILE TO 子句指定现有的文件,则将新的输出追加到那个文件的后面。

    在 UNIX™ 上的说明输出文件的缺省名称和位置

    当您发出 SET EXPLAIN ON 语句时,将优化器为每一随后的查询选择的计划写到说明输出文件。

    当您发出 SET EXPLAIN ON 时,如果说明输出文件不存在,则数据库服务器创建该文件。如果当您发出 SET EXPLAIN ON 语句时,说明输出文件已存在,则将随后的输出追加到该文件后面。

    说明输出文件的缺省名称

    由 SET EXPLAIN 语句生成的说明输出文件与由 onmode -Y 生成的说明文件有不同的名称。映射的用户的说明输出 filename 与 OS 用户的说明输出 filename 也不相同。下表展示缺省的名称:

    表 1. 缺省的说明输出文件名称。

    用户与生成类型

    文件名称

    常规用户与 SET EXPLAIN

    sqexplain.out

    映射的用户与 SET EXPLAIN

    username_sqexplain.out

    常规用户与 onmode -Y

    sqexplain.out.session_id

    映射的用户与 onmode -Y

    username_sqexplain.out.session_id

    说明输出文件的缺省位置

    如果客户端应用与数据库服务器在同一台计算机上,则输出文件存储在您的当前名录中。如果您正在使用 Version 5.x 或更早的客户端应用且输出文件不出现在当前的目录中,则请检查您对于该文件的 home 目录。当当前的数据库在另一台计算机上时,该输出文件存储在远程主机上您的 home 目录中。

    对于没有 home 目录的映射的用户,说明输出文件存储在 $GBASEDBTDIR/users/server_svrnum/uid_uid 中。

    对于带有 home 目录的映射的用户,远程客户端的说明输出文件存储在该用户的 home 目录中,且本地客户的说明输出文件存储在用户的当前工作目录中。

    在 Windows 上的输出文件的缺省名称和位置

    在 Windows™ 上,SET EXPLAIN ON 将优化器为每一随后的查询选择的计划写到 %GBASEDBTDIR%\sqexpln 中的文件。

    对于由 SET EXPLAIN 语句生成的说明输出文件,缺省的文件名称为 user_name.out,在此,user_name 是用户登录名。

    对于由 onmode -Y 生成的说明输出文件,缺省的文件名称为 sqexplain.out.session_id

    SET EXPLAIN 输出

    查看 SET EXPLAIN 输出文件来分析关于执行了的查询的信息,包括查询的伪指令集、对查询成本的估算、对返回行数的估计、服务器访问的表中的顺序、索引键、连接方式和查询统计信息。

    下表罗列可出现在输出文件中的术语及其意义。

    术语

    意义

    查询

    显示执行了的查询,并指示将 SET OPTIMIZATION 设置为了 HIGH 还是 LOW。如果您 SET OPTIMIZATION 为 LOW,则输出显示下列大写字符串作为第一行:QUERY:{LOW} 

    如果您 SET OPTIMIZATION 为 HIGH,则 SET EXPLAIN 的输出显示下列大写字符串作为第一行:QUERY:

    后跟的伪指令

    罗列查询的伪指令集

    如果伪指令的语法不正确,则处理不带伪指令的查询。在那种情况下,输出在 DIRECTIVES FOLLOWED 之外还展示 DIRECTIVES NOT FOLLOWED。

    要获取更多关于在此术语之后指定的伪指令的信息,请参阅 优化程序伪指令 或 SET OPTIMIZATION 语句。

    如果 DELETE 或 UPDATE 语句在 WHERE 子句中指定不相关联的子查询,则由该子查询返回的符合条件的行的集合具体化为临时表,SET EXPLAIN 的输出显示在下列消息的括号之内:(Temp Table For Subquery)

    估计的成本

    该查询的工作量的估计值

    优化器使用估计值来比较一路径与另一路径的成本。估计值是优化器赋予被选择的访问方式的一个数。此数不直接地译为时间,且不用于比较不同的查询。然而,它可用于比较同一查询产生的更改。当使用数据分发时,带有较高估计值的查询通常比带有较小估计值的查询花费更长的运行时间。

    在查询与子查询的情况下,返回两个估计的成本数字;查询数字还包括子查询成本。展示子查询成本以便于您可看到仅与子查询相关联的成本。

    返回的行的估计数

    要返回的行的数目的估计值

    此数值是基于系统目录表中的信息的。

    编号的列表

    访问表的次序,后跟所使用的访问方式(索引路径或顺序扫描)

    当查询涉及表继承时,罗列在超级表之下以访问它们的顺序为顺序的所有表。

    索引名称

    索引的名称

    例如,idx1 是下列索引的名称:

    Index Name: gbasedbt.idx1 

    索引名称中的 FOT 标识该索引为树型索引的森林:例如,下列索引是树型索引的森林:

    Index Name: gbasedbt.fot_idx (FOT)

    索引键

    用作过滤器或索引的列;指示用于索引路径或过滤器的列名称。

    符号 (Key Only) 指示所有期望的列都是索引键的一部分,因此索引的仅键读取可被实际表的读取所取代。在有 NLSCASE INSENSITIVE 属性的数据库中,所有索引扫描方式(仅键扫描除外)都允许查询执行计划将所有区分大小写的值映射到 NCHAR 和 NVARCHAR 列的单个值。要获取更多关于 NLSCASE INSENSITIVE 数据库的信息,请参阅 在 NLSCASE INSENSITIVE 数据库中重复的行。

    “下部索引过滤器”在索引读取开始处展示键值;在索引读取停止处展示键值的“上部索引过滤器”索引键过滤器展示将用在被检索的索引键值的过滤器。如果查询使用索引自连接路径,则“索引自连接键”展示用作自连接键的引导索引键,且下限上限展示引导索引键列的边界。

    连接方式

    当查询涉及两表之间的连接时,优化器使用的(“嵌套的循环”或“动态哈希”)连接方式展示在那个查询的输出的底部。

    当查询涉及两表的动态连接时,如果输出包含词 Build Outer,则在罗列的第一个表(成为构建表)上构建哈希表。如果未出现词 Build Outer,则在罗列的第二个表上构建哈希表。

    查询统计信息

    当 EXPLAIN_STAT 配置参数设置为 1 时,这部分展示返回的行数、在查询计划中估计的行数、需要的时间、对 iterator 函数的调用,以及对表对象的扫描和连接操作的估计成本。

    时间

    当输出显示查询执行计划或那个计划的组件消耗的时间时,该值的格式为 minutes:seconds.fraction 来显示分、表和秒的小数部分。

    如果查询使用核对顺序而不是 DB_LOCALE 设置的缺省顺序,则输出文件包括 DB_LOCALE 设置以及作为在该查询中(通过 SET COLLATION 指定的)核对基础的其他语言环境的名称。类似地,如果由于它的核对而不使用索引,则输出文件作此指示。

  • 相关阅读:
    元宇宙系列之AI虚拟人:“人”潮汹涌 探路未来
    Leetcode151. 反转字符串中的单词
    Sentinel底层原理(下)
    19 css 选择器用类名、节点名、id来获取节点内容
    爱上开源之dockerUI强大docker管理工具,没有之一
    前端性能优化之防抖&节流
    微信小程序 原生开发 实现弹窗遮罩层 并且在遮罩层内使用scroll-view实现滚动内容(包括图片)
    强化学习从基础到进阶-案例与实践[6]:演员-评论员算法(advantage actor-critic,A2C),异步A2C、与生成对抗网络的联系等详解
    新手选MT4还是MT5,anzo capital昂首资本建议选择MT4,一个原因
    GORM使用指南一
  • 原文地址:https://blog.csdn.net/m0_67317773/article/details/126932251