文章 姚 鑫 · 五月 7, 2021 阅读大约需 7 分钟 第三章 使用多维存储(全局变量)(三) 第三章 使用多维存储(全局变量)(三) 在全局变量中复制数据 若要将全局变量(全部或部分)的内容复制到另一个全局变量(或局部数组)中,请使用ObjectScript Merge命令。 下面的示例演示如何使用Merge命令将OldData全局变量的全部内容复制到NewData全局变量中: Merge ^NewData = ^OldData 如果合并命令的source参数有下标,则复制该节点及其后代中的所有数据。如果Destination参数有下标,则使用目标地址作为顶级节点复制数据。例如,以下代码: Merge ^NewData(1,2) = ^OldData(5,6,7) 将^OldData(5,6,7)及其下的所有数据复制到^NewData(1,2)。 #SQL #Caché #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 150
公告 Hao Ma · 五月 7, 2021 开发者社区改版, April 2021 Hi Developers! 看看2021年4月的开发者社区新版本有些什么改善, 主要的新特性包括: This is a release of how did we improve the Developer Community in April 2021. The key features: 代码块里的‘拷贝到剪贴板’按钮 帖子翻译页 私信帖子作者 InterSystems官方版本和安全警示 以下是详细介绍。 #版本 #开发者社区官方 1 0 0 112
文章 姚 鑫 · 五月 6, 2021 阅读大约需 5 分钟 第三章 使用多维存储(全局变量)(二) 第三章 使用多维存储(全局变量)(二) 遍历全局变量中的数据 有许多方法可以遍历(迭代)存储在全局变量中的数据。 $ORDER(下一个/上一个)函数 ObjectScript $Order函数允许顺序访问全局中的每个节点。 $ORDER函数返回给定级别(下标编号)的下一个下标的值。例如,假设定义了以下全局设置: Set ^Data(1) = "" Set ^Data(1,1) = "" Set ^Data(1,2) = "" Set ^Data(2) = "" Set ^Data(2,1) = "" Set ^Data(2,2) = "" Set ^Data(5,1,2) = "" 要查找第一个第一级下标,我们可以使用: #SQL #Caché #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 130
文章 姚 鑫 · 五月 5, 2021 阅读大约需 6 分钟 第三章 使用多维存储(全局变量)(一) 第三章 使用多维存储(全局变量)(一) 本章描述了使用多维存储(全局变量)可以执行的各种操作。 以全局变量存储数据 在全局节点中存储数据很简单:像对待任何其他变量一样对待全局变量。 区别在于对全局变量的操作是自动写入数据库的。 创建全局变量 创建新的全局变量不需要设置工作;只需将数据设置为全局变量即可隐式创建新的全局结构。可以创建全局变量(或全局变量下标)并通过单个操作将数据放入其中,也可以创建全局变量(或下标)并通过将其设置为空字符串将其保留为空。在ObjectScript中,这些操作是使用SET命令完成的。 下面的例子定义了一个名为Color(如果还不存在)的全局变量,并将值“Red”与之关联。 如果已经存在一个名为Color的全局变量,那么这些示例将其修改为包含新信息。 在ObjectScript中: #SQL #Caché #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 86
文章 姚 鑫 · 五月 4, 2021 阅读大约需 7 分钟 第二章 全局变量结构(二) 第二章 全局变量结构(二) 全局变量物理结构 全局变量使用高度优化的结构存储在物理文件中。管理此数据结构的代码也针对运行InterSystems IRIS的每个平台进行了高度优化。这些优化确保全局操作具有高吞吐量(每单位时间的操作数)、高并发性(并发用户总数)、缓存的高效使用,并且不需要与性能相关的持续维护(例如频繁的重建、重新索引或压缩)。 用于存储全局变量的物理结构是完全封装的;应用程序不会以任何方式担心物理数据结构。 全局变量存储在磁盘上的一系列数据块中;每个块的大小(通常为8KB)是在创建物理数据库时确定的。为了提供对数据的高效访问,InterSystems IRIS维护了一种复杂的B树状结构,该结构使用一组指针块将相关数据块链接在一起。InterSystems IRIS维护一个缓冲池-经常引用的块的内存缓存-以降低从磁盘获取块的成本。 #SQL #Caché #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 137
文章 姚 鑫 · 五月 3, 2021 阅读大约需 6 分钟 第二章 全局变量结构(一) 第二章 全局变量结构(一) 本章描述全局变量的逻辑视图,并概述全局变量是如何在磁盘上物理存储的。 全局变量的逻辑结构 全局变量是存储在物理InterSystems IRIS®数据库中的命名多维数组。 在应用程序中,全局变量到物理数据库的映射基于当前名称空间——名称空间提供一个或多个物理数据库的逻辑统一视图。 全局命名约定和限制 全局名称指定其目标和用途。有两种类型的全局变量和一组单独的变量,称为“进程私有全局变量”: - 全局变量 - 这就是所谓的标准全局变量;通常,这些变量被简称为全局变量。它是驻留在当前命名空间中的永久性多维数组。 - 扩展全局引用-这是位于当前命名空间以外的命名空间中的全局引用。 - 进程私有全局变量-这是一个数组变量,只有创建它的进程才能访问。 全局变量的命名约定如下: #SQL #Caché #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 101
文章 姚 鑫 · 五月 2, 2021 阅读大约需 5 分钟 第一章 简介global 第一章 简介global InterSystems IRIS®的核心功能之一是其多维存储引擎。此功能允许应用程序以紧凑、高效的多维稀疏数组存储数据。这些数组称为全局数组。 本章介绍: - 什么是全局变量(globals ),以及可以对其执行的操作。 - 全局变量的逻辑和物理结构,包括在分布式数据库体系结构中使用全局变量。 - 如何使用全局变量在应用程序中存储和检索数据。 - 如何使用全局变量。 特点 全局变量提供了一种在持久的多维数组中存储数据的易于使用的方法。 例如,可以使用名为^Settings的全局变量将值“Red”与键“Color”相关联: SET ^Settings("Color")="Red" 可以利用全局变量的多维特性来定义更复杂的结构: #SQL #Caché #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 242
文章 姚 鑫 · 四月 30, 2021 阅读大约需 12 分钟 第八章 解释SQL查询计划(二) 第八章 解释SQL查询计划(二) SQL语句的详细信息 有两种方式显示SQL语句的详细信息: 在SQL Statements选项卡中,通过单击左侧列中的Table/View/Procedure Name链接选择一个SQL Statement。 这将在单独的选项卡中显示SQL语句详细信息。 该界面允许打开多个选项卡进行比较。 它还提供了一个Query Test按钮,用于显示SQL Runtime Statistics页面。 从表的Catalog Details选项卡(或SQL Statements选项卡)中,通过单击右边列中的Statement Text链接选择一个SQL语句。 这将在弹出窗口中显示SQL语句详细信息。 可以使用“SQL语句详细信息”显示来查看查询计划,并冻结或解冻查询计划。 #SQL #Caché #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 155
文章 姚 鑫 · 四月 29, 2021 阅读大约需 10 分钟 第九章 冻结计划 第九章 冻结计划 大多数SQL语句都有一个关联的查询计划。查询计划是在准备SQL语句时创建的。默认情况下,添加索引和重新编译类等操作会清除此查询计划。下次调用查询时,将重新准备查询并创建新的查询计划。冻结计划使可以跨编译保留(冻结)现有查询计划。查询执行使用冻结的计划,而不是执行新的优化并生成新的查询计划。 对系统软件的更改也可能导致不同的查询计划。通常,这些升级会带来更好的查询性能,但软件升级可能会降低特定查询的性能。冻结计划使可以保留(冻结)查询计划,以便查询性能不会因系统软件升级而改变(降级或提高)。 #SQL #Caché #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 122
文章 Hao Ma · 四月 29, 2021 阅读大约需 3 分钟 WebGateway系列(4): 配置HTTPS访问IRIS的Web服务 经常被问到有关IRIS如何支持SSL,HTTPS的问题,有必要写个东西介绍一下。 HTTPS的原理 简单的说,https实现两个目的:一是访问网站加密,2是确认被访问的网站是真的。 首先,被访问的网站要申请一个证书,这个证书必须是权威机构发放的,比如google, VeriSign等等,所有的浏览器里有预装了这些组织的公钥(Public Key),因此能确认你提供的证书真是这些组织给出的,而这个证书可以证明你的网站的身份。注意证书证明的是提供服务的组织和服务的真实性,和用什么设备没关系,也就是说,IRIS不管证书的事儿。 接下去,被访问的服务器可以生成公钥和私钥,和客户端交换key,生成整个世界只有两者知道的security code,用来两者之间数据的交换。详细的过程和消息交互可以在网上找到很多很好的文章和视频,比如这个: How does HTTPS work? What's a CA? What's a self-signed Certificate?。 #新手 #部署 #Caché 0 0 0 393
文章 姚 鑫 · 四月 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语句: #SQL #Caché #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 132
文章 姚 鑫 · 四月 27, 2021 阅读大约需 5 分钟 第七章 解释SQL查询计划 第七章 解释SQL查询计划 本章介绍由ShowPlan生成的InterSystems SQL查询访问计划中使用的语言和术语。 存储在映射中的表 SQL表存储为一组映射。 每个表都有一个包含表中所有数据的主映射; 表还可以有其他的映射,如索引映射和位图。 每个映射可以被描绘成一个多维全局,其中一些字段的数据在一个或多个下标中,其余字段存储在节点值中。 下标控制要访问的数据。 对于主映射,RowID或IDKEY字段通常用作映射下标。 对于索引映射,通常将其他字段用作前导下标,将RowID/IDKEY字段用作附加的较低级别的下标。 对于位图,可以将位图层视为附加的RowID下标级别。但是,位图只能用于为正整数的RowID。 发展计划 编译SQL查询会生成一组指令来访问和返回查询指定的数据。 这些指令表示为. int例程中的ObjectScript代码。 #SQL #Caché #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 143
公告 Claire Zheng · 四月 27, 2021 恭喜!InterSystems开发者工具编程大赛优胜者已产生! 亲爱的社区开发者们: InterSystems开发者工具编程大赛 顺利结束. 感谢大家对激动人心的编码马拉松的支持参与! 是时候宣布此次竞赛优胜者啦! 掌声送给以下参赛者和他们贡献的优秀应用! #竞赛 #InterSystems IRIS #Open Exchange 0 0 0 140
文章 姚 鑫 · 四月 26, 2021 阅读大约需 9 分钟 第六章 SQL性能分析工具包 第六章 SQL性能分析工具包 本章介绍可用于主动分析特定SQL语句的分析工具。这些工具收集有关这些SQL语句执行的详细信息。使用这些信息,开发人员可以采取措施提高低效SQL语句的性能。 根据请求的详细程度,此活动分析可能会显著增加服务器上的负载。因此,SQL性能分析工具包旨在进行协调一致的代码分析工作。它不是用来连续监视执行代码的。 分析工具界面 SQL性能分析工具包为开发人员和支持专家提供了分析特定SQL语句或语句组的能力。通过在执行特定SQL语句期间使用这些工具,它们可以收集详细信息,这些信息可用于单独或跨活动工作负载分析有问题的语句。 要记录的细节级别是可配置的,最细粒度的设置在模块级别收集信息,为语句的查询计划中的不同“步骤”提供信息。 #SQL #Caché #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 98
问题 王喆 👀 · 四月 24, 2021 HealthConnect的启动问题 修改过用户门户之后,重新启动就报这个错,然后使用自带的修复功能,修复之后依然报错,日志中显示没有C:\InterSystems\HealthConnect\mgr\IRIS.WIJ,我复制了别人的过来依然报错,由于代码没有做备份我不能重装,有没有什么办法修复一下,或者把代码备份一下,我再重装。 #开发环境 #InterSystems IRIS 0 2 0 160
问题 Yubo Mao · 四月 22, 2021 使用$SYSTEM.Encryption.SHA1Hash()加密string与网络方法不一致 在ensemble使用$SYSTEM.Encryption.SHA1Hash()加密“ensmble”得到“t????????????m??Afù????÷??%í”,但使用网络的SHA1加密方法得到”74ba9a06cbbc92f06d9b4166f9c5b4f7f8251aed“,如何使用ensemble得到与网络上一样的加密结果 #Ensemble 0 5 0 150
文章 姚 鑫 · 四月 25, 2021 阅读大约需 10 分钟 第五章 优化查询性能(四) 第五章 优化查询性能(四) 注释选项 可以在SELECT、INSERT、UPDATE、DELETE或TRUNCATE表命令中为查询优化器指定一个或多个注释选项。 注释选项指定查询优化器在编译SQL查询期间使用的选项。 通常,注释选项用于覆盖特定查询的系统范围默认配置。 语法 语法/*#OPTIONS */(在/*和#之间没有空格)指定了一个注释选项。 注释选项不是注释; 它为查询优化器指定一个值。 注释选项使用JSON语法指定,通常是“key:value”对,例如: /*#OPTIONS {"optionName":value} */。 支持更复杂的JSON语法,比如嵌套值。 #SQL #Caché #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 142
问题 立峰 乔 · 四月 12, 2021 数据库经常性ECP: Lost net connection: Error 104=(Connection reset by peer) 数据库日志经常性出现如下日志,希望遇到过的朋友给出解决方法! 04/13/21-07:21:28:522 (191540) 0 ECP: Lost net connection: Error 104=(Connection reset by peer)04/13/21-07:21:28:522 (191540) 1 ECP: connection from 'ECP1:HIS-AAA4:CACHE' dropped (1.1.1.1:14400)04/13/21-07:21:28:672 (198470) 0 ECP: Mirror Connection request from 'ECP1:HIS-AAA:CACHE' (1.1.1.1:14419) #Caché 0 3 0 195
问题 water huang · 四月 24, 2021 RSAEncrypt加密 只能用证书吗 最近尝试使用 Set Ciphertext=##class(%SYSTEM.Encryption).RSAEncrypt(Plaintext,PublicKeyStr)来加密数据,但是加密失败,参考了以下资料 #加密 #Ensemble 0 2 0 192
文章 Qianzhu Liu · 四月 25, 2021 阅读大约需 7 分钟 鱼与熊掌兼得 – 利用医院信息系统实践《医疗机构处方审核规范》 如何做到处方审核便捷性与安全性共存,一直是个“鱼与熊掌”的情形。开始正文前,先说个故事—— #HL7 #工具 #TrakCare 1 1 0 408
问题 water huang · 四月 21, 2021 EnsLib.EDI.XML.Document 中文乱码 我需要能修改xml 文件里面某个节点的值,目前 使用的方法是EnsLib.EDI.XML.Document 里面的 SetValueAt,但是导入的字符串或者流有中文的话,或者设置新值包含中文的话,使用 OutputToString输出字符串,中文是乱码的,怎么处理呢 #Ensemble 0 2 0 200
文章 姚 鑫 · 四月 24, 2021 阅读大约需 12 分钟 第五章 优化查询性能(三) 第五章 优化查询性能(三) 查询执行计划 可以使用解释或显示计划工具来显示SELECT、DECLARE、UPDATE、DELETE、TRUNCATE TABLE和一些INSERT操作的执行计划。这些操作统称为查询操作,因为它们使用SELECT查询作为其执行的一部分。InterSystems IRIS在准备查询操作时生成执行计划;不必实际执行查询来生成执行计划。 默认情况下,这些工具显示InterSystems IRIS认为的最佳查询计划。对于大多数查询,有多个可能的查询计划。除了InterSystems IRIS认为最佳的查询计划外,还可以生成和显示备用查询执行计划。 #SQL #Caché 0 0 0 134
公告 Louis Lu · 四月 23, 2021 InterSystems IRIS、IRIS for Health和Health Connect 2021.1预览版现已发布 InterSystems IRIS、IRIS for Health和HealthShare Health Connect的2021.1版本的预览版现已发布。 由于这是一个预览版,我们希望在下个月的通用版本发布之前了解您对这个新版本的体验。请通过开发者社区分享您的反馈,以便我们能够共同打造一个更好的产品。 InterSystems IRIS数据平台2021.1是一个扩展维护(EM)版本。自2020.1(上一个EM版本)以来,在持续交付(CD)版本中增加了许多重要的新功能和改进。请参考2020.2、2020.3和2020.4的发布说明,了解这些内容的概况。 这个版本的增强功能为开发人员提供了更大的自由度,可以用他们选择的语言构建快速和强大的应用程序,并使用户能够通过新的和更快的分析功能更有效地处理大量的信息。 #InterSystems IRIS #InterSystems IRIS for Health #InterSystems IRIS BI (DeepSee) 0 0 0 469
文章 姚 鑫 · 四月 23, 2021 阅读大约需 6 分钟 第五章 优化查询性能(二) 第五章 优化查询性能(二) 使用索引 索引通过维护常见请求数据的排序子集,提供了一种优化查询的机制。 确定哪些字段应该被索引需要一些思考:太少或错误的索引和关键查询将运行太慢; 太多的索引会降低插入和更新性能(因为必须设置或更新索引值)。 什么索引 要确定添加索引是否会提高查询性能,请从管理门户SQL接口运行查询,并在性能中注意全局引用的数量。 添加索引,然后重新运行查询,注意全局引用的数量。 一个有用的索引应该减少全局引用的数量。 可以通过在WHERE子句或ON子句条件前使用%NOINDEX关键字来防止使用索引。 应该为联接中指定的字段(属性)编制索引。左外部联接从左表开始,然后查看右表;因此,应该为右表中的字段建立索引。在下面的示例中,应该为T2.f2编制索引: #SQL #Caché #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 126
问题 fajie xie · 四月 23, 2021 系统日志错误代码 服务器操作系统频繁产生错误日志“生成了一个严重警告并将其发送到远程终结点。这会导致连接终止。TLS 协议所定义的严重错误代码是 10。Windows SChannel 错误状态是 10。” 想请问一下,这个错误信息是我们产品导致产生的问题吗? #开发运维 #Ensemble 0 1 0 250
文章 姚 鑫 · 四月 22, 2021 阅读大约需 8 分钟 第五章 优化查询性能(一) 第五章 优化查询性能(一) InterSystems SQL自动使用查询优化器创建在大多数情况下提供最佳查询性能的查询计划。该优化器在许多方面提高了查询性能,包括确定要使用哪些索引、确定多个AND条件的求值顺序、在执行多个联接时确定表的顺序,以及许多其他优化操作。可以在查询的FROM子句中向此优化器提供“提示”。本章介绍可用于评估查询计划和修改InterSystems SQL将如何优化特定查询的工具。 InterSystems IRIS®Data Platform支持以下优化SQL查询的工具: #SQL #Caché #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 177
公告 Claire Zheng · 四月 22, 2021 InterSystems开发者工具编程大赛投票时间:为你心目中的最佳App投票吧! 亲爱的社区开发者们: 本周进入 InterSystems 开发者工具编程大赛 投票时间(4月19日-25日)! 来为你心目中基于InterSystems IRIS而构建的最佳方案投票吧! 🔥 投票入口: 点击投票 🔥 如何投票?有哪些最新信息值得了解一下? #竞赛 #InterSystems IRIS #Open Exchange 0 0 0 146
文章 姚 鑫 · 四月 21, 2021 阅读大约需 13 分钟 第四章 缓存查询(二) 第四章 缓存查询(二) 运行时计划选择 运行时计划选择(RTPC)是一个配置选项,它允许SQL优化器利用运行时(查询执行时)的离群值信息。运行时计划选择是系统范围的SQL配置选项。 #SQL #Caché #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 144