本章介绍如何在InterSystems IRIS®数据平台管理门户上执行SQL操作。
管理门户界面使用动态SQL,这意味着在运行时准备和执行查询。
Management Portal界面旨在帮助针对小型数据集开发和测试SQL代码。
它不打算用作在生产环境中执行SQL的接口。
管理门户还提供了各种配置SQL的选项。
有关使用管理门户的一般信息,请选择左上角的Help按钮。
通过使用左上角的Contact按钮,可以从管理门户向InterSystems Worldwide Response Center (WRC)报告有关InterSystems软件的问题。
InterSystems IRIS允许使用SQL工具从InterSystems IRIS管理门户检查和操作数据。
此操作的起点是Management Portal System Explorer选项。
从这里选择SQL选项。
这将显示SQL接口,它允许:
所有SQL操作都会在特定名称空间中进行。因此,必须首先指定要通过单击SQL接口页面顶部的 “开关switch” 选项要使用的命名空间。这将显示可用名称空间列表,可以从中进行选择。
可以设置管理门户默认命名空间。从管理门户选择系统管理,安全性,用户。单击所需用户的名称。这允许编辑用户定义。从“常规”选项卡中,从下拉列表中选择“启动命名”空间。单击“保存”。如果未选择启动命名空间,则会默认为%SYS.。
许多Management Portal SQL操作都是为每个用户自动定制的。
如果在Execute Query选项卡或SQL Statements选项卡中设置了筛选器、最大值、模式或其他选项,则此用户指定的值将保留以供将来使用。
当同一个用户激活管理门户时,将显示该用户先前的设置。
重新启动InterSystems IRIS返回所有选项为默认值。
没有自定义名称空间选择。
它恢复到用户定义启动名称空间。
从管理门户选择System Explorer,然后选择SQL。
在页面顶部选择带有Switch选项的名称空间;
这将显示可用名称空间的列表。
要执行SQL查询,有三个选项:
Execute Query文本框不仅允许编写SELECT和CALL查询,还允许编写大多数SQL语句,包括DDL语句(如CREATE TABLE)和DML语句(如INSERT、UPDATE和DELETE)。
可以在“执行查询”文本框中指定SQL代码:
Execute Query文本框中的SQL代码可以包括:
在文本框中编写SQL代码后,可以单击“显示计划”按钮查看SQL代码而不执行SQL代码。如果代码有效,则显示计划显示查询计划。如果代码无效,则显示计划显示SQLCode错误值和消息。还可以使用“显示计划”按钮显示最近执行的SQL代码的此信息。
要执行SQL代码,请单击“执行”按钮。
可以通过从屏幕左侧的表列表(或视图列表)拖动表(或视图)来生成查询,并将其丢弃到执行查询文本框中。这在表中生成了选择的选项列表,以及指定表的表中的所有非隐藏字段。然后,可以进一步修改此查询并使用Execute按钮执行它。
还可以从屏幕左侧的过程列表中拖放过程名称。
SQL执行界面具有以下选项:
具有插入或更新的选择模式下拉列表允许指定输入数据是否将从显示格式转换为逻辑存储格式。对于此数据转换,必须使用选择运行时的选择模式编译SQL代码。在执行时间时,必须将“选择模式”下拉列表设置为逻辑模式。
选择模式对于数据类型是有意义的,其逻辑存储格式与所需的显示格式(显示或ODBC)不同,例如Intersystems Iris日期和时间和Objectscript%List结构化数据。
如果单击“更多”选项,则SQL执行界面将显示以下其他选项:
所有这些选项都是用户自定义的。
Show Plan按钮在页面的文本框中显示语句文本和查询计划,包括查询的当前查询计划的相对成本(开销)。可以从Execute查询或Show History接口调用Show Plan。查询计划是在准备(编译)查询时生成的;
当编写查询并选择Show Plan按钮时,就会发生这种情况。不必执行查询来显示其查询计划。Show Plan在为无效查询调用时显示SQLCODE和错误消息。
在“执行查询”文本框中编写SQL代码之后,可以通过单击“执行”按钮来执行代码。这要么成功执行SQL语句并在代码窗口下面显示结果,要么SQL代码失败。如果SQL代码失败,它会在code窗口下面显示一条错误消息(红色);
按下Show Plan按钮将显示SQLCODE错误和错误消息。
执行查询SQL代码执行作为后台进程执行。在执行代码时,Execute按钮被Cancel按钮替换。这允许取消长时间运行的查询的执行。
如果选中了行号框,结果集将作为表返回,行计数器将显示为第一列(#)。
其余的列将按照指定的顺序显示。RowID (ID字段)可以显示或隐藏。每个列都由列名(如果指定了,也可以是列别名)标识。聚合、表达式、子查询、主机变量或文字选择项可以由列别名(如果指定)标识,或者由单词Aggregate_、Expression_、Subquery_、HostVar_或Literal_后跟选择项序列号(默认情况下)标识。
如果行列不包含数据(NULL),结果集将显示一个空白的表格单元格。
指定一个空字符串文本将显示一个HostVar_字段,其中包含一个空白的表格单元格。
指定NULL显示一个带有空白单元格的Literal_字段。
如果选择的字段是日期、时间、时间戳或%List编码的字段,则显示的值取决于显示模式。
以下显示特性是管理门户SQL接口独有的,执行查询结果显示和打开表数据显示:
当使用动态SQL代码,SQL Shell或嵌入式SQL代码执行相同的查询时,不会发生这些结果显示功能。
如果指定的查询返回多个结果集,则执行查询将这些结果集显示为命名选项卡:Result #1, Result #2等。
如果成功,则执行查询显示性能信息和缓存查询例程的名称。如果显示数据以显示,则显示在性能信息下方。执行信息包括行计数,性能,缓存查询,显示缓存的查询名称,最后更新指定查询的最后一次执行的时间戳。
对于SELECT,显示作为结果集返回的行数。注意,返回的行数由Max设置控制,它可能低于可以选择的行数。
对于多个结果集,列出每个结果集的行数,用/字符分隔。
指定一个或多个聚合函数(且没有选择字段)的查询总是显示Row count: 1,并返回表达式、子查询和聚合函数的结果,即使FROM子句表不包含行。
一个不指定聚合函数和不选择行的查询总是显示Row count: 0并且不返回结果,即使该查询只指定不引用FROM子句表的表达式和子查询。
带no FROM子句的查询总是显示行数:1,并返回表达式、子查询和聚合函数的结果。
要更深入地分析这些性能指标,可以运行MONLBL(逐行监视实用程序)并使用星号通配符%sqlcq*指定例程名称。
请参考使用^%SYS.MONLBL检查例程性能。
关闭管理门户或停止InterSystems IRIS不会删除缓存的查询或重置缓存的查询编号。
要从当前命名空间中清除缓存的查询,请调用%SYSTEM.SQL.Purge()方法。
并不是所有的SQL语句都会导致缓存的查询。与现有缓存查询相同的查询,除了文字替换值(例如TOP子句值和谓词文字)之外,不会创建新的缓存查询。有些SQL语句是不缓存的,包括DDL语句和权限分配语句。
非查询SQL语句,如CREATE TABLE,也会显示缓存的查询名。
然而,这个缓存的查询名称被创建然后立即删除;
下一个SQL语句(查询或非查询)重用相同的缓存查询名称。
最后一次更新:最后一次执行查询(或其他SQL操作)的日期和时间。
这个时间戳在每次执行查询时都被重置,即使在重复执行相同的查询时也是如此。
成功执行还提供了一个打印链接显示打印查询窗口,它给你选择打印或导出到一个文件中查询文本和/或查询的结果集。点击查询和结果切换使可以显示或隐藏文本或查询结果集的查询,查询结果集显示包含名称空间的名字,结果集的数据行数,一个时间戳,缓存的查询名称。
(注意,时间戳是调用Print查询窗口的时间,而不是执行查询的时间。)
“打印查询”按钮用于打印查询窗口的屏幕截图。
“导出到文件”复选框显示指定导出文件格式(xml、hdml、pdf、txt、csv)和导出文件路径名的选项。
Export选项忽略查询和结果切换,并始终只导出结果集数据(默认为:exportQuery.pdf)和行数(默认为:exportQueryMessages.pdf);
不包括查询文本、名称空间、时间戳和缓存的查询名称。
如果不成功,则Execute Query显示错误消息。
可以单击Show Plan按钮来显示相应的SQLCODE错误值和消息。
单击“显示历史记录”可列出当前会话期间执行的SQL语句。
Show History列出从该接口调用的所有SQL语句,包括那些成功执行和那些执行失败的语句。
默认情况下,SQL语句按执行时间列出,最近执行的语句出现在列表的顶部。可以单击任何列标题,根据列值按升序或降序排列SQL语句。从Show History列表中执行SQL语句将更新其执行时间(本地日期和时间戳),并增加其计数(执行次数)。
可以过滤Show History列表,如下所示:在过滤框中指定一个字符串,然后按Tab键。只有包含该字符串的历史项才会包含在刷新后的列表中。
筛选器字符串可以是在SQL语句列中找到的字符串(比如表名),也可以是在执行时间列中找到的字符串(比如日期)。
过滤字符串不区分大小写。
在显式地更改过滤器字符串之前,它将一直有效。
通过选择语句,可以在“Show History”中修改和执行SQL语句,该语句将显示在“execute Query”文本框中。
在“执行查询”中,可以修改SQL代码,然后单击“执行”。
对从Show History中检索到的SQL语句进行任何更改,都会将其作为新语句存储在Show History中;
这包括不影响执行的更改,如更改字母大小写、空格或注释。
空格不会显示在Show History中,但是当从Show History中检索SQL语句时,会保留空格。
通过单击Show History列表中SQL语句右侧的execute按钮,可以直接从Show History列表中执行(重新运行)未修改的SQL语句。
注意,Show History列表与缓存查询列表不同。
Show History列出当前会话中调用的所有SQL语句,包括那些在执行过程中失败的语句。
InterSystems IRIS支持许多其他编写和执行SQL代码的方法,在本手册的其他章节中有描述。
这些包括: