文章
姚 鑫 · 四月 24, 2021 阅读大约需 12 分钟
第五章 优化查询性能(三)

第五章 优化查询性能(三)

查询执行计划

可以使用解释或显示计划工具来显示SELECTDECLAREUPDATEDELETETRUNCATE TABLE和一些INSERT操作的执行计划。这些操作统称为查询操作,因为它们使用SELECT查询作为其执行的一部分。InterSystems IRIS在准备查询操作时生成执行计划;不必实际执行查询来生成执行计划。

默认情况下,这些工具显示InterSystems IRIS认为的最佳查询计划。对于大多数查询,有多个可能的查询计划。除了InterSystems IRIS认为最佳的查询计划外,还可以生成和显示备用查询执行计划。

0 0
0 38
InterSystems 开发者社区汇聚了 11,619 位出色的开发者
程序员可以在这里学习、分享、了解最新动态、成长,以及收获快乐!
文章
姚 鑫 · 四月 28, 2021 阅读大约需 11 分钟
第八章 解释SQL查询计划(一)

第八章 解释SQL查询计划(一)

SQL语句

这个SQL语句列表为每个表提供了SQL查询和其他操作的记录,包括插入、更新和删除。
这些SQL语句链接到一个查询计划,该链接提供冻结该查询计划的选项。

系统为每个SQL DML操作创建一条SQL语句。
这提供了一个按表、视图或过程名称列出的SQL操作列表。
如果更改表定义,可以使用此SQL Statements列表来确定每个SQL操作的查询计划是否会受到此DDL更改的影响,以及/或是否需要修改某个SQL操作。
然后,可以:

  • 确定每个SQL操作使用哪个查询计划。
    可以决定使用反映对表定义所做更改的修改后的查询计划。
    或者可以冻结当前查询计划,保留在更改表定义之前生成的查询计划。
  • 根据对表定义所做的更改,确定是否对对该表执行SQL操作的例程进行代码更改。

注意:SQL语句是一个SQL例程列表,它们可能会受到表定义更改的影响。
它不应该用作表定义或表数据更改的历史记录。

创建SQL语句操作

下面的SQL操作会创建相应的SQL语句:

0 0
0 36

亲爱的社区开发者们,大家好!

欢迎积极参与新一轮InterSystems开发者竞赛!

🏆 InterSystems 编程大赛:FHIR 加速器 🏆

提交在AWS上使用InterSystems的IRIS FHIR-as-a-service的应用程序,或帮助使用InterSystems IRIS FHIR加速器开发的解决方案。点击这篇文章,了解如何在AWS上申请应用InterSystems IRIS FHIR 加速器服务 (FHIRaaS) 。

    时间:2021年5月10日-6月6日

    奖金总额: $8,750 

    👉  点击登录活动页面 👈

    0 0
    0 83
    文章
    Nicky Zhu · 五月 20, 2021 阅读大约需 7 分钟
    互操作消息统一管理系列:SearchTable加速检索

    在上一篇文章《互操作消息统一管理系列:Message Bank》中,我们了解到在Message Bank中,消息均以半结构化(XML)或非结构化(Stream)的形式保存,因此无法与客户端的结构化消息一样,直接支持基于索引的检索。为此,需要在Message Bank中定义Search Table以支持查询。关于Search Table的定义和作用,请查阅https://docs.intersystems.com/healthconnectlatest/csp/docbook/DocBook.UI...

    0 0
    0 52

    您好,我想问一下为什么我无法通过Iris中的内置转换模板将从HAPI-FHIR服务器下载的患者资源转换为SDA格式。它总是表明缺少某个默认值,或者这就是我们需要更改格式吗?我想问一下我们如何快速创建自己的映射,以及如何通过json将所需的数据转换为sda并将其存储在iris中,然后我们可以通过齐柏林飞艇进行调用,非常感谢您解决我的问题问题

    0 1
    0 58
    文章
    姚 鑫 · 五月 31, 2021 阅读大约需 4 分钟
    第十二章 IBM WebSphere MQ检索邮件

    第十二章 IBM WebSphere MQ检索邮件

    检索邮件

    要检索邮件,请执行以下操作:

    1. 按照“创建连接对象”中的说明创建连接对象。在这种情况下,请创建%Net.MQRecv的实例。Connection对象有一个消息队列,可以从中检索消息。
    2. 根据需要调用以下方法:

    - %Get()-通过引用返回字符串消息作为第一个参数。
    - %GetStream()-给定初始化的文件字符流,此方法从队列中检索消息,并将其放入与该流关联的文件中。请注意,必须设置流的Filename属性才能对其进行初始化。不支持二进制流。

    0 0
    0 52
    文章
    Michael Lei · 六月 23, 2021 阅读大约需 15 分钟
    最低限度的监控和警报解决方案

    InterSystems 数据平台包括了用于系统监视和警报的实用程序及工具,但对于不熟悉构建于 InterSystems 数据平台(又名 Caché)的解决方案的系统管理员来说,他们需要知道从何处下手以及需要配置什么。

    本指南以在线文档和开发者社区帖子为参考,介绍了实现最低限度的监视和警报解决方案的途径,以及如何启用和配置以下组件:

    1. Caché Monitor:扫描控制台日志并发送电子邮件警报。

    2. System Monitor:监视系统状态和资源,根据固定参数生成通知(警报和警告),同时跟踪整体系统运行状况。

    3. Health Monitor:对主要的系统和用户定义指标进行采样,并将它们与用户可配置的参数和既定的标准值进行比较,在样本超过适用或学习的阈值时生成通知。

    4. History Monitor:维护性能指标和系统使用情况指标的历史数据库。

    5. pButtons:每天按计划收集操作系统指标和 Caché 指标。

    请记住,本指南是最低配置,所包含的工具灵活且可扩展,因此可在需要时提供更多功能。 本指南跳过了文档,让您直接上手。 您需要更深入地研究文档才能充分利用监视工具,同时,请考虑将本指南作为启动和运行的速查表。

    0 0
    0 106
    文章
    姚 鑫 · 六月 12, 2021 阅读大约需 6 分钟
    第五章 生成XML元素

    第五章 生成XML元素

    生成XML元素

    如果使用RootElement()启动文档的根元素,则负责生成该根元素内的每个元素。有三个选择:

    将对象生成为元素

    可以从InterSystems IRIS对象生成输出作为元素。在本例中,使用object()方法,该方法写入支持XML的对象。输出包括该对象中包含的所有对象引用。可以指定此元素的名称,也可以使用在对象中定义的默认值。

    只能在RootElement()EndRootElement()方法之间使用object()方法。

    此示例为给定启用XML的类的所有已保存实例生成输出:

    0 0
    0 45
    文章
    姚 鑫 · 七月 14, 2021 阅读大约需 5 分钟
    第三章 处理文件和目录名

    第三章 处理文件和目录名

    %Library.File类提供了几个可用于处理文件名和目录名的类方法。在大多数情况下,文件和目录不需要存在即可使用这些方法。

    获取文件名和目录名

    %Library.File类提供可用于获取部分文件名和目录名的类方法。

    在给定完整路径名的情况下,使用GetDirectory()GetFilename()分别获取目录和短文件名。对于此方法,不允许使用部分目录名。

    DHC-APP>set filename = "e:\temp\config.txt"
    
    DHC-APP>write ##class(%File).GetDirectory(filename)
    E:\temp\
    DHC-APP>write ##class(%File).GetFilename(filename)
    config.txt
    

    在给定文件名的情况下,使用CanonicalFilename()从根目录获取完整路径:

    0 0
    0 35
    文章
    姚 鑫 · 七月 26, 2021 阅读大约需 3 分钟
    类关键字NoExtent,OdbcType,Owner,ProcedureBlock

     

    # <center> 第二十五章 类关键字 - NoExtent

    指定是否阻止编译器为此类生成继承类(如果不这样做的话)。

    # 用法

    要防止编译器为此类生成继承类,请使用以下语法:

    ```
    Class MyApp.MyClass [ NoExtent ]  { //class members }
    ```

    否则,省略此关键字或将单词`Not`放在关键字的前面。

    # 详解

    如果该关键字为真,则该类没有 `extent`。不能创建此类的实例。通常,这样的类会扩展或覆盖从`%Library.Persistent`继承的标准持久接口。

    # 对子类的影响

    此关键字不是继承的。

    # 默认

    如果省略此关键字,类可以有一个`extent`。

     

    # <center> 第二十六章 类关键字 - OdbcType

    指定通过`ODBC`或`JDBC`公开此数据类型时使用的类型。每个数据类型类都必须指定一个`ODBC`类型。此关键字仅适用于数据类型类。

    # 用法

    0 0
    0 32
    文章
    姚 鑫 · 八月 3, 2021 阅读大约需 3 分钟
    索引关键字Unique,Abstract,ClientName,CodeMode

    第五十七章 索引关键字 - Unique

    指定索引是否应强制唯一性。

    用法

    要指定IRIS应强制此索引所基于的属性具有唯一性,请使用以下语法:

    Index name On property_expression_list [ Unique ];
    

    否则,请省略此关键字或将该词放在该关键字之前。

    详情

    如果存在UNIQUE关键字,则表示这是唯一索引。

    由唯一索引索引的属性(或多个属性)被约束为在定义索引的类(表)的范围(所有对象的集合)内具有唯一值(即,没有两个实例可以具有相同的排序值)。

    唯一索引不能也是位图索引。

    示例

    Index SSNIdx On SSN [ Unique ] ;
    

    默认

    如果省略此关键字,IRIS不会强制此索引所基于的属性具有唯一性。

    第五十八章 方法关键字 - Abstract

    指定这是否是抽象方法。

    0 0
    0 29
    文章
    姚 鑫 · 九月 22, 2021 阅读大约需 3 分钟
    第二十三章 SQL命令 CREATE USER

    第二十三章 SQL命令 CREATE USER

    创建用户帐户。

    大纲

    CREATE USER user-name IDENTIFY BY password
    
    CREATE USER user-name IDENTIFIED BY password
    

    参数

    • user-name - 要创建的用户的名称。名称是最多128个字符的标识符。它可以包含Unicode字母。用户名不区分大小写。
    • password - 此用户的密码。密码必须至少为3个字符,并且不能超过32个字符。密码区分大小写。密码可以包含Unicode字符。

    描述

    CREATE USER命令使用指定的密码创建用户帐户。

    0 0
    0 33
    文章
    姚 鑫 · 九月 29, 2021 阅读大约需 9 分钟
    第二十九章 SQL命令 DISTINCT

    第二十九章 SQL命令 DISTINCT

    指定仅返回不同值的SELECT子句。

    大纲

    SELECT [DISTINCT [BY (item {,item2})] ]  |  [ALL]
      select-item {,select-item2}
    

    参数

    • DISTINCT - 可选-返回组合选择项值唯一的行。
    • DISTINCT BY (item {,item2}) - 可选-返回按(项)值唯一的行的选择项值。
    • ALL - 可选-返回结果集中的所有行。默认设置。

    描述

    可选DISTINCT子句出现在SELECT关键字之后、可选TOP子句和第一个SELECT-ITEM之前。

    0 0
    0 133
    文章
    姚 鑫 · 十月 10, 2021 阅读大约需 3 分钟
    第四十一章 SQL命令 DROP VIEW

    第四十一章 SQL命令 DROP VIEW

    删除视图

    大纲

    DROP VIEW view-name [CASCADE | RESTRICT]
    

    参数

    • view-name 要删除的视图的名称。
      视图名可以是限定的(schema.viewname),也可以是非限定的(viewname)。
      非限定视图名接受默认模式名。
    • CASCADE RESTRICT - 可选-指定CASCADE关键字以删除引用view-name的任何其他视图。如果有另一个视图引用view-name,则指定RESTRITE将发出SQLCODE-321错误。默认值为限制。

    描述

    DROP VIEW命令删除视图,但不删除基础表或数据。

    0 0
    0 40
    文章
    姚 鑫 · 十月 19, 2021 阅读大约需 5 分钟
    第五十章 SQL命令 HAVING(一)

    第五十章 SQL命令 HAVING(一)

    对一组数据值指定一个或多个限制性条件的SELECT子句。

    大纲

    SELECT field
    FROM table
    GROUP BY field
    HAVING condition-expression
    
    SELECT aggregatefunc(field %AFTERHAVING)
    FROM table
    [GROUP BY field]
    HAVING condition-expression
    

    参数

    • condition-expression - 由一个或多个布尔谓词组成的表达式,用于控制要检索哪些数据值。

    描述

    可选的HAVING子句出现在FROM子句、可选的WHEREGROUP BY子句之后,可选的ORDER BY子句之前。

    0 0
    0 16
    文章
    姚 鑫 · 十月 29, 2021 阅读大约需 5 分钟
    第六十章 SQL命令 JOIN(二)

    第六十章 SQL命令 JOIN(二)

    单向外部联接

    IRIS支持单向外部联接:左外部联接和右外部联接。

    使用标准的“inner”联接时,当一个表的行链接到第二个表的行时,第一个表中找不到第二个表中对应行的行将从输出表中排除。

    使用单向外联接时,即使第二个表中没有匹配项,第一个表中的所有行也会包括在输出表中。使用单向外连接,第一个表会从第二个表中取出相关信息,但不会因为第二个表中缺少匹配项而牺牲自己的行。

    例如,如果查询首先列出Table1并创建一个左外部联接,那么它应该能够看到Table1中的所有行,即使它们在Table2中没有对应的记录。

    0 0
    0 17
    文章
    Hao Ma · 十一月 2, 2021 阅读大约需 16 分钟
    IRIS 2021 技术文档 First Look 28 - InterSystems 公钥基础设施 (PKI)

    本文档介绍了 InterSystems 公钥基础设施(PKI),它可以在开发组织的安全策略中发挥重要作用。它提供有关公钥加密、证书颁发机构和 PKI 的信息。然后介绍一些与使用 InterSystems PKI 相关的初始任务。完成本指南后,您将有能力创建一个证书颁发机构 (CA),然后向 CA 客户端请求并接收证书。 
    虽然 InterSystems PKI 不用于生产系统,但您可以用它来熟悉 PKI 工具和安全基础设施。作为设计和探索过程的一部分,这对于创建全面的安全方法特别有帮助。
    本指南使用 InterSystems IRIS®数据平台的默认设置,这使您能够熟悉 PKI 的基本原理,而不必处理其他在执行实现时很重要的细节问题。有关数据库加密的完整文档,请参见 The InterSystems Public Key Infrastructure(《 InterSystems 公钥基础设施》)。
    要浏览所有的技术概要(First Look),包括可以在 InterSystems IRIS 免费的评估实例上执行的那些,请参见 InterSystems First Looks(《InterSystems 技术概要》)。

    0 0
    0 48
    文章
    姚 鑫 · 十一月 28, 2021 阅读大约需 2 分钟
    第九十章 SQL命令 WHERE CURRENT OF

    第九十章 SQL命令 WHERE CURRENT OF

    使用游标指定当前行的UPDATE/DELETE子句。

    大纲

    WHERE CURRENT OF cursor
    

    参数

    • cursor - 指定在光标的当前位置执行操作,光标是指向表的光标。

    描述

    WHERE CURRENT OF子句可用于基于游标的嵌入式SQL UPDATEDELETE语句,以指定位于要更新或删除记录上的游标。
    例如:

       &sql(DELETE FROM Sample.Employees WHERE CURRENT OF EmployeeCursor)
    

    删除最后一个FETCH命令从“EmployeeCursor”游标获得的行。

    0 0
    0 18