前言
查询工具¶
查询工具是功能强大且功能丰富的环境,可让您执行任意SQL命令并查看结果集。您可以通过“工具”菜单上的“查询工具”菜单选项或“浏览器”树控件的选定节点的上下文菜单访问“查询工具”。查询工具可让您:
-
发出临时SQL查询。
-
执行任意SQL命令。
-
如果SELECT查询的结果集是可更新的,则对其进行编辑。
-
显示用户配置的当前连接和事务状态。
-
将输出面板中显示的数据保存到CSV文件中。
-
以文本,图形格式或表格式查看SQL语句的执行计划。
-
查看有关SQL语句的分析信息。
可以同时在各个标签中打开查询工具的多个副本。要关闭查询工具的副本,请单击选项卡栏右上角的X。
查询工具具有两个面板:
-
上面板显示“ SQL编辑器”。您可以使用面板输入,编辑或执行查询。它还显示了“历史记录”选项卡(可用于查看会话中已执行的查询)以及“便签本”(可用于在编辑过程中保存文本片段)。如果便签本已关闭,则可以通过在SQL编辑器和其他面板中单击鼠标右键并添加新面板来重新打开便签本(或打开其他便签本)。
-
下部面板显示“数据输出”面板。选项卡式面板显示查询返回的结果集,有关查询执行计划的信息,与查询执行有关的服务器消息以及从服务器接收到的所有异步通知。
工具列¶
以下小节将介绍工具栏。
- 查询工具工具栏
- 文件选项
- 编辑选项
- 查看/编辑数据结果集控件
- 查询执行
SQL编辑器面板¶
SQL编辑器面板是一个工作区,您可以在其中手动提供查询,从其他来源复制查询或从文件读取查询。 SQL编辑器具有语法着色和自动补全功能。
要使用自动完成功能,请开始输入查询;当您希望查询编辑器建议查询中可能紧随其后的对象名称或命令时,请按Control + Space组合键。例如,键入“ SELECT * FROM ”(不带引号,但带有尾部空格),然后按Control + Space组合键从自动完成选项的弹出菜单中选择。
输入查询后,从工具栏中选择“执行/刷新”图标。 SQL编辑器面板的完整内容将发送到数据库服务器以执行。要仅执行SQL编辑器中显示的一部分代码,请突出显示要服务器执行的文本,然后单击“执行/刷新”图标。
执行命令时服务器返回的消息显示在“消息”选项卡上。如果命令成功执行,则“消息”选项卡将显示执行详细信息。
“编辑”菜单上的选项提供了有助于代码格式化和注释的功能:
-
当您按回车键时,自动缩进功能将自动缩进与前一行相同深度的文本。
-
通过选择两行或更多行并按Tab键来阻止缩进文本。
-
在代码中实现或删除SQL样式或切换C样式注释符号。
也可以从树视图中拖放某些对象,这样可以节省键入长对象名的时间。包含对象名称的文本将使用模式完全限定。如果需要,将添加双引号。对于函数和过程,函数名称和参数名称将粘贴在查询工具中。
数据输出面板¶
“数据输出”面板显示由最近执行的查询生成的数据和统计信息。
“数据输出”选项卡以表格式显示查询的结果集。可以:
-
从显示的结果集中选择并复制。
-
使用执行/刷新选项可检索查询执行信息并设置查询执行选项。
-
使用“以CSV/TXT格式下载”图标可将“数据输出”选项卡的内容下载为逗号分隔的文件。
-
如果数据是可更新的,则在SELECT查询的结果集中编辑数据。
在以下情况下,结果集是可更新的:
-
所有列要么直接从单个表中选择,要么根本不是表列(例如2列的串联)。仅直接从表中选择的列是可编辑的,其他列为只读。
-
在结果集中选择表的所有主键列或OID。
任何多次重命名或选择的列都是只读的。
使用列标题中的铅笔和锁定图标分别标识可编辑和只读列。
为了使可更新的查询结果集起作用,psycopg2驱动程序版本应等于或大于2.8。
可更新的结果集与“查看/编辑数据”模式下的“数据网格”相同,并且可以用相同的方式进行修改。
如果关闭了“自动提交”,则将数据更改作为正在进行的事务的一部分进行;如果没有正在进行的事务,则会启动新的事务。除非提交了事务,否则数据更改不会提交到数据库。
如果在保存期间发生任何错误(例如,尝试将NULL保存到具有NOT NULL约束的列中),则将数据更改回滚到自动创建的SAVEPOINT,以确保不会回滚正在进行的事务中以前执行的任何查询。
调用另一个查询时,“数据输出”面板中显示的先前查询或命令中的所有行集将被丢弃;打开另一个“查询工具”标签,以保留以前的结果。
解释面板¶
要生成查询的解释或解释分析计划,请单击工具栏中的解释或解释分析按钮。
可以从工具栏的“解释分析”按钮右侧的下拉列表中选择与“解释”和“解释分析”相关的更多选项。
请注意,sdAdmin会以JSON格式生成Explain [Analyze]计划。
成功生成解释计划后,它将在“解释”面板下创建三个选项卡/面板。
- 图形化
请注意,EXPLAIN VERBOSE无法以图形方式显示。将鼠标悬停在“图形”选项卡上的图标上可以查看有关该项目的信息;弹出窗口将显示有关所选对象的信息。有关JIT统计信息,触发器和摘要的信息,请将鼠标悬停在右上角的图标上;适当时,将显示一个类似的弹出窗口。
使用Explain画布左上角的下载按钮将计划下载为SVG文件。
注意
Internet Explorer不支持下载为SVG。
请注意,“解释”分析随附的查询计划在“数据输出”选项卡上可用。
- 表
“表格”选项卡以表格格式显示计划明细,它生成的表格格式类似于explain.depsez.com。表的每一行代表“解释计划”节点的数据。它可能包含节点信息,排他时间,排他时间,实际行与计划行之差,实际行,计划行,循环。
排他,包含和第X行的背景颜色可能会根据实际值与计划值之间的差异而有所不同。
如果占总查询时间的独占/独占时间百分比为:> 90-红色> 50-橙色(红色和黄色之间)颜色> 10-黄色
如果计划者将行数(实际值与计划值)错误估计了10倍-黄色100倍-橙色(红色和黄色之间)1000倍-红色
- 统计
“统计信息”选项卡显示两个表:1.每个计划节点类型的统计信息2.每个表的统计信息
讯息面板¶
使用“消息”选项卡查看有关最近执行的查询的信息:
如果服务器返回错误,则错误消息将显示在“消息”选项卡上,而导致错误的语法将在SQL编辑器中加下划线。如果查询成功,则“消息”选项卡将显示查询完成所需的时间以及检索到的行数:
查询历史面板¶
使用查询历史记录选项卡可以查看当前会话的活动:
查询历史记录选项卡显示有关最近命令的信息:
-
调用查询的日期和时间。
-
查询的文本。
-
查询返回的行数。
-
服务器处理查询并返回结果集所花费的时间。
-
服务器返回的消息(“消息”选项卡上未注明)。
-
查询的来源(由与工具栏相对应的图标指示)。
您可以显示或隐藏sdAdmin内部生成的查询(在“查看/编辑数据”或“保存数据”操作期间)。
要清除“查询历史记录”选项卡的内容,请从“清除”下拉菜单中选择“清除历史记录”。
在查询工具模式下运行时,将在每个用户的基础上跨每个数据库的会话维护查询历史记录。在“查看/编辑数据”模式下,不会保留历史记录。默认情况下,为每个数据库存储最后20个查询。可以通过覆盖MAX_QUERY_HIST_STORED值在config_local.py中进行调整。有关更多信息,请参见“部署”部分。
连接状态¶
通过单击查询工具中的状态图标,使用连接状态功能查看当前的连接和事务状态: