文章 姚 鑫 · 四月 20, 2021 阅读大约需 13 分钟 第四章 缓存查询(一) 第四章 缓存查询(一) 系统自动维护已准备好的SQL语句(“查询”)的缓存。这允许重新执行SQL查询,而无需重复优化查询和开发查询计划的开销。缓存查询是在准备某些SQL语句时创建的。准备查询发生在运行时,而不是在编译包含SQL查询代码的例程时。通常,PREPARE紧跟在SQL语句的第一次执行之后,但在动态SQL中,可以准备查询而不执行它。后续执行会忽略PREPARE语句,转而访问缓存的查询。要强制对现有查询进行新的准备,必须清除缓存的查询。 所有SQL调用都会创建缓存查询,无论是在ObjectScript例程中调用还是在类方法中调用。 - 动态SQL、ODBC、JDBC和$SYSTEM.SQL.DDLImport()方法在准备查询时创建缓存查询。管理门户执行SQL接口、InterSystems SQL Shell和%SYSTEM.SQL.Execute()方法使用动态SQL,因此使用准备操作来创建缓存查询。 #SQL #Caché #InterSystems IRIS #InterSystems IRIS for Health 0 0 1 213
问题 秀政 王 · 四月 19, 2021 SQLServer网关配置出错 使用SQLServer2008进行网关连接,驱动名,URL和jar包地址都正确,出现服务器版本不支持的问题 #JDBC #Caché 0 4 0 159
问题 Yufeng Li · 四月 19, 2021 Nginx 怎么配置成IRIS web服务器 现在有windows上的 编译好的nginx 可以做为iris 的web 服务器吗? ngx_http_csp_module_sa.c , cspapi.h 这两个文件在哪下载? #InterSystems IRIS 0 1 0 138
问题 Botai Zhang · 四月 19, 2021 IRIS中WebService接口获取调用方IP 关于WebService接口采用适配器为 Parameter ADAPTER; 有方式可以获取到调用方的IP地址等信息吗? #业务运营 #Ensemble #InterSystems IRIS for Health 0 2 0 307
文章 姚 鑫 · 四月 19, 2021 阅读大约需 11 分钟 第三章 优化表(二) 第三章 优化表(二) 调整表计算值 调优表操作根据表中的代表性数据计算和设置表统计信息: - ExtentSize,它可能是表中的实际行数(行数),也可能不是。 - 表中每个属性(字段)的选择性。 可以选择性地阻止单个属性的选择性计算。 - 属性的离群选择性,其中一个值比其他值出现得更普遍。 有效的查询可以利用离群值优化。 - 标识某些属性特征的每个属性的注释。 - 每个属性的平均字段大小。 - 表的SQL Map Name、BlockCount和Source of BlockCount。 #SQL #Caché #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 114
公告 Claire Zheng · 四月 18, 2021 置顶--社区福利持续更新中!来Global Masters,赢取Apple AirPods,Amazon Echo Dot,解锁更多奖品 Hi 亲爱的社区开发者们,福利来了! 在Global Masters,我们为 Expert, Ambassador and VIP levels(专家级、大使级和VIP级)的用户提供了更多奖励! Apple AirPods 希望你们喜欢新奖品! 此外,你可以在奖励列表中看到"解锁获奖" 项目,根据提示完成相应目标后,便可解锁并申请奖品。 #Global Masters 1 2 0 180
文章 Hao Ma · 四月 18, 2021 阅读大约需 5 分钟 IRIS Docker的安装 IRIS相比Caché在部署上的一个进步是支持docker。即便不是云部署, 使用docker也带来非常多的便利。 尤其是在开发测试环节,由于docker的使用更便捷,除非要模拟客户的环境或者做规定的性能测试,我在测试中基本已经不再使用本机的实例或者虚机。IRIS的联机文档有详细的IRIS docker安装使用指导,本文只是一个简单的,快速上手的在测试环境安装IRIS docker的简单步骤,尤其适合初学者。 注意Windows上docker可能会遇到这样那样的问题,因此通常还是推荐在Linux或者Mac OS上使用。正式的生产环境的IRIS docker container也是不支持Windows系统的。 #Docker #工具 #新手 #InterSystems IRIS 1 0 1 574
文章 姚 鑫 · 四月 18, 2021 阅读大约需 13 分钟 第三章 优化表(一) 第三章 优化表(一) 要确保InterSystems IRIS®Data Platform上的InterSystems SQL表的最高性能,可以执行多种操作。优化可以对针对该表运行的任何查询产生重大影响。本章讨论以下性能优化注意事项: ExtentSize、Selective和BlockCount用于在用数据填充表之前指定表数据估计;此元数据用于优化未来的查询。 运行tune Table来分析填充表中的代表表数据;生成的元数据用于优化未来的查询。 优化表计算的值包括扩展大小、选择性、异常值选择性、平均字段大小和块计数 导出和重新导入优选表统计数据 扩展大小、选择性和块数(ExtentSize, Selectivity, and BlockCount) 当查询优化器决定执行特定SQL查询的最有效方式时,它会考虑以下三种情况: #SQL #Caché #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 182
问题 water huang · 四月 17, 2021 ensemble 2016 如何快速的调用dll文件。 如图 dll放在 我调用的方式如下 期待能够在ensemble里面能便捷的调用dll,各种语言开发的dll,至少能支持c#生成的dll, #.NET #Ensemble 0 3 0 172
问题 Binbin LIU · 四月 18, 2021 smp里面如何添加数据库 ?要把Excel的数据import到IRIS应该用什么方式去操作? 你好, smp里面如何添加数据库 只能用command添加吗?没有在portal里看到添加数据库这个功能。 还想请问要把Excel的数据import到IRIS应该用什么方式去操作? #InterSystems IRIS 0 1 0 153
文章 姚 鑫 · 四月 17, 2021 阅读大约需 6 分钟 第二章 定义和构建索引(五) 第二章 定义和构建索引(五) 验证索引 可以使用以下任一方法验证索引 - $SYSTEM.OBJ.ValidateIndices()验证表的索引,还验证该表的集合子表中的任何索引。 - %Library.Storage.%ValidateIndices()验证表的索引。集合子表索引必须使用单独的%ValidateIndices()调用进行验证。 这两种方法都会检查指定表的一个或多个索引的数据完整性,并可以选择更正发现的任何索引完整性问题。他们分两步执行索引验证: 1. 确认为表(类)中的每一行(对象)正确定义了索引实体。 2. 遍历每个索引,对于索引的每个条目,确保表(类)中有一个值和匹配的条目。 如果这两种方法中的任何一种发现不一致,它都可以有选择地更正索引结构和/或内容。它可以验证标准索引、位图索引、位图范围索引和位片索引,并可选择对其进行校正。默认情况下,这两种方法都会验证索引,但不会更正索引。 #SQL #Caché #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 119
文章 姚 鑫 · 四月 16, 2021 阅读大约需 12 分钟 第二章 定义和构建索引(四) 第二章 定义和构建索引(四) 位片索引 当数字数据字段用于某些数值运算时,位片索引用于该字段。位片索引将每个数值数据值表示为二进制位串。位片索引不是使用布尔标志来索引数值数据值(如在位图索引中那样),而是以二进制值表示每个值,并为二进制值中的每个数字创建一个位图,以记录哪些行的该二进制数字具有1。这是一种高度专门化的索引类型,可以显著提高以下操作的性能: SUM、COUNT或AVG Aggregate计算。(位片索引不用于COUNT(*)计算。)。位片索引不用于其他聚合函数。 指定的字段 TOP n ... ORDER BY field 在范围条件运算中指定的字段,WHERE field > n 或 WHERE field BETWEEN lownum AND highnum、 SQL优化器确定是否应该使用定义的位片索引。通常,优化器仅在处理大量(数千)行时才使用位片索引。 #SQL #Caché 0 0 0 101
文章 姚 鑫 · 四月 15, 2021 阅读大约需 10 分钟 第二章 定义和构建索引(三) # 第二章 定义和构建索引(三) # 位图索引 位图索引是一种特殊类型的索引,它使用一系列位串来表示与给定索引数据值相对应的一组ID值。 位图索引具有以下重要功能: 位图是高度压缩的:位图索引可以比标准索引小得多。这大大减少了磁盘和缓存的使用量。 位图操作针对事务处理进行了优化:与使用标准索引相比,可以在表中使用位图索引,而不会降低性能。 位图上的逻辑操作(counting、AND和OR)经过优化以获得高性能。 SQL引擎包括许多可以利用位图索引的特殊优化。 位图索引的创建取决于表的唯一标识字段的性质: #SQL #Caché #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 93
公告 Michael Lei · 四月 15, 2021 在VS Code中使用ObjectScript 开发培训视频上线 开发者们现在可以下载一套InterSystems ObjectScript扩展插件,并开始使用微软的Visual Studio Code IDE编写应用程序。我们培训部门的新VS Code资源指南提供了大量开发人员入门需要的内容,包括: 连接到InterSystems实例:安装和使用VS Code的ObjectScript扩展VS Code开发应用程序文档:使用开源社区。 播客集: 在VS代码中编写ObjectScript (20m) 开发者社区文章。如何报告问题 Github Repository。InterSystems语言服务器 Github Repository。InterSystems服务器管理器 Github Repository。VS代码的InterSystems ObjectScript扩展 了解IDE。 微软文档。Visual Studio代码 - 入门 微软视频。Visual Studio代码入门 (5m) #ObjectScript #学习门户 0 0 0 183
文章 Qiao Peng · 四月 15, 2021 阅读大约需 3 分钟 数据平台焦点会议第 3 天的亮点 圆满结束! 所有的专题会议都已经播出了。当然,我们全部102部预录制的专题会议现在可以点播了,您可以随意观看,即使您错过了现场问答的机会。 说到现场问答,我们已经举办了6次现场会议,您也可以观看。我之前写过一篇单独的博客文章,题目是如何让您的问题会帮助我们做得更好。 智能工厂启动包 #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 111
文章 Louis Lu · 四月 15, 2021 阅读大约需 4 分钟 2020线上峰会 —— 第2天数据平台专题会议精彩回顾 我们刚刚结束了第二天的专题会议,会议内容精彩纷呈!虽然大家无法同时观看多个平行会议,但是线上会议有一个优势,那就是您可以根据自己的需要回看错过的内容! #2020线上峰会 #InterSystems IRIS #InterSystems IRIS for Health #全球峰会 0 0 0 49
文章 Louis Lu · 四月 15, 2021 阅读大约需 15 分钟 精华文章--访问IRIS数据平台的四种方式 IRIS 中支持的四种方式: SQL、Objects、REST 和 GraphQL 卡济米尔·马列维奇,《运动员》(1932) > > “你当然无法理解! 习惯了坐马车旅行的人怎么可能理解乘坐火车或者飞机旅行的人的感受和印象?”> > > > 卡济米尔·马列维奇 (1916)> ## 引言 我们已经讨论过为什么在主题领域建模使用对象类型优于使用 SQL。 当时得出的结论和总结的事实如今依然适用。 那么,我们为什么要退后到对象和类型之前的时代,讨论将对象的操作拖回到使用global的技术? 我们又为什么要鼓励面条式代码?难道是为了用它难以跟踪的错误考验开发者的技能熟练度? 目前有几种观点支持通过基于 SQL/REST/GraphQL 的 API 传输数据,而不是将其表示为类型/对象: 这些技术经过深入研究,相当易于部署。 知名度非常高,已在便捷的开源软件中广泛实现。 您通常别无选择,只能使用这些技术,尤其是在网络和数据库中。 最重要的是,API 仍然使用对象,因为它们提供了在代码中实现 API 的最适途径。 在讨论实现 API 之前,我们先来看一下底层的抽象层。 下图显示了数据在永久存储位置与处理并向应用程序用户呈现的位置之间的移动方式。 #API #对象数据模型 #数据模型 #新手 #InterSystems IRIS 0 0 0 542
文章 Louis Lu · 四月 15, 2021 阅读大约需 6 分钟 基于InterSystems IRIS 的数据运维DataOps InterSystems IRIS 下使用 DataOps Gartner 对 DataOps 的定义是:“DataOps 是一种协作式的数据管理方法,侧重于改善整个组织中数据管理者和数据消费者之间数据流的沟通、整合与自动化。 DataOps 的目标是创建可预测的数据、数据模型和相关项目的交付和变更管理,从而更快地交付价值。 DataOps 采取特殊技术手段和相应治理水平自动化数据交付的设计、部署和管理,以元数据提高动态环境中数据的易用性和价值。” #分析 #InterSystems IRIS 0 0 0 190
问题 Jian Li · 四月 15, 2021 如何获取系统中可用的系统DSN列表 在创建ODBC的SQL网关连接时,需要选择一个系统中已有的DSN才能够正常的连接到数据库去,那如果想要手动的在代码中获取到系统的DSN应该如何进行操作呢,获取到如下图中所示的DSN列表,期待各位的答复,谢谢 #HealthShare 0 2 0 141
文章 Louis Lu · 四月 15, 2021 阅读大约需 3 分钟 第 3 天:使用 InterSystems Objects 和 SQL 进行开发 我正在参加 Joel Solon 讲授的“使用 InterSystems Objects 和 SQL 进行开发”课程。 课程非常好,我将在这里分享一些从培训中总结的提示。 第 3 天的提示: 1. 您可以使用 %Dictionary 类查看类目录,并在 INFORMATION_SCHEMA 表中查看 sql 对象。 2. 可以在 ObjectScript 方法中以动态 SQL 或嵌入式 SQL 使用 SQL。 3. 您可以使用 ?(例如:where country = ?)将参数传递到动态 SQL 字符串, 使用冒号(例如:where country = :variable)将参数传递到嵌入式 SQL。 4. 动态 SQL 示例(来自 Intersystems 文档): #提示和技巧 #InterSystems IRIS 0 0 0 162
文章 Louis Lu · 四月 15, 2021 阅读大约需 3 分钟 第 4 天:使用 InterSystems Objects 和 SQL 进行开发 我正在参加 Joel Solon 讲授的“使用 InterSystems Objects 和 SQL 进行开发”课程。 课程非常好,我将在这里分享一些从培训中总结的提示。 第 4 天的提示: 1. 所有数据都存储在global中,global名称以 ^ 开头。 global示例:^animal。 global可以有多个数据位置(“子数据”)。 示例:^animal("大象","吃草")。 2. 可从任意系统范围(命名空间)访问 ^%* global。 3. global使 IRIS 能够支持多模型数据(对象、关系、文档、多维等)。 4. 要查看global,请转到 Management Portal > Explorer > Globals > Select Global > View,或者在终端中输入 do ^%G 或 zwrite ^global。 5. 在持久类和 SQL 表之间有自动对应关系: #提示和技巧 #InterSystems IRIS 0 0 0 153
文章 Louis Lu · 四月 15, 2021 阅读大约需 3 分钟 第 2 天:使用 InterSystems Objects 和 SQL 进行开发 原文在这里 原作者YURI MARX GOMES 我正在参加 Joel Solon 讲授的“使用 InterSystems Objects 和 SQL 进行开发”课程。 课程非常好,我将在这里分享一些从培训中总结的提示。 第 2 天的提示: 1. 您可以创建持久类(在数据库中具有对应表的类,用于保持类属性)。 2. 持久类示例: #提示和技巧 #InterSystems IRIS 0 0 0 173
文章 姚 鑫 · 四月 14, 2021 阅读大约需 8 分钟 第二章 定义和构建索引(二) 第二章 定义和构建索引(一) 定义索引 使用带有索引的Unique、PrimaryKey和IdKey关键字 与典型的SQL一样,InterSystems IRIS支持惟一键和主键的概念。 InterSystems IRIS还能够定义IdKey,它是类实例(表中的行)的唯一记录ID。 这些特性是通过Unique、PrimaryKey和IdKey关键字实现的: - Unique -在索引的属性列表中列出的属性上定义一个唯一的约束。 也就是说,只有这个属性(字段)的唯一数据值可以被索引。 唯一性是根据属性的排序来确定的。 例如,如果属性排序是精确的,则字母大小写不同的值是唯一的; 如果属性排序是SQLUPPER,则字母大小写不同的值不是唯一的。 但是,请注意,对于未定义的属性,不会检查索引的惟一性。 根据SQL标准,未定义的属性总是被视为唯一的。 #SQL #Caché #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 139
文章 Michael Lei · 四月 14, 2021 阅读大约需 8 分钟 通过 InterSystems IRIS 实现分布式人工智能 什么是分布式人工智能 (DAI)? 试图找到一个“无懈可击”的定义是徒劳的:这个术语似乎有些“超前”。 但是,我们仍然可以从语义上分析该术语本身,推导出分布式人工智能也是人工智能(请参见我们为提出一个“实用”定义所做的努力),只是它分布在多台没有聚合在一起(既不在数据方面,也不通过应用程序聚合,原则上不提供对特定计算机的访问)的计算机上。 即,在理想情况下,分布式人工智能的安排方式是:参与该“分布”的任何计算机都不能直接访问其他计算机的数据和应用程序,唯一的替代方案是通过“透明的”消息传递来传输数据样本和可执行脚本。 与该理想情况的任何偏差都会导致出现“部分分布式人工智能”- 一个示例是通过中央应用程序服务器分发数据, 或者其反向操作。 不管怎样,我们都会得到一组“联合”模型(即,在各自数据源上训练的模型,或者按自己的算法训练的模型,或者同时以这两种方式训练的模型)。 #Artificial Intelligence (AI) #云 #分布式数据管理 #Machine Learning (ML) #融合分析 #InterSystems IRIS 0 0 0 227
问题 Botai Zhang · 四月 13, 2021 编码格式转换 在使用过程中,碰到对接一些国内编码例如:GBK2312等系列的编码格式,碰到这类情况,应该如何处理?各位有没有好的解决方式?期待解答交流! #开发运维 #Ensemble #InterSystems IRIS for Health 0 3 0 187
公告 Claire Zheng · 四月 13, 2021 InterSystems IRIS平台入驻AWS Quick Start Hi 社区开发者们,告诉大家一个好消息!InterSystems IRIS®数据平台已入驻AWS Quick Start,今后可在AWS上快速部署高可用的生产环境。 #AWS #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 96
文章 姚 鑫 · 四月 13, 2021 阅读大约需 14 分钟 第二章 定义和构建索引(一) 第二章 定义和构建索引(一) 概述 索引是由持久类维护的结构,InterSystems IRIS®数据平台可以使用它来优化查询和其他操作。 可以在表中的字段值或类中的相应属性上定义索引。(还可以在多个字段/属性的组合值上定义索引。)。无论是使用SQL字段和表语法还是类属性语法定义相同的索引,都会创建相同的索引。当定义了某些类型的字段(属性)时,InterSystems IRIS会自动定义索引。可以在存储数据或可以可靠派生数据的任何字段上定义附加索引。InterSystems IRIS提供了几种类型的索引。可以为同一字段(属性)定义多个索引,为不同的目的提供不同类型的索引。 无论是使用SQL字段和表语法,还是使用类属性语法,只要对数据库执行数据插入、更新或删除操作,InterSystems IRIS就会填充和维护索引(默认情况下)。可以覆盖此默认值(通过使用%NOINDEX关键字)来快速更改数据,然后作为单独的操作生成或重新生成相应的索引。可以在用数据填充表之前定义索引。还可以为已经填充了数据的表定义索引,然后作为单独的操作填充(构建)索引。 #SQL #Caché #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 225
文章 姚 鑫 · 四月 12, 2021 阅读大约需 3 分钟 第一章 SQL性能优化简介 第一章 SQL性能优化简介 InterSystems SQL支持几个特性来优化InterSystems IRIS®数据平台的SQL性能。 表定义优化 SQL性能从根本上取决于良好的数据架构。 将数据划分为多个表并在这些表之间建立关系对于高效的SQL是必不可少的。 描述了以下优化表定义的操作。 这些操作要求定义表,但不要求用数据填充表: #SQL #Caché #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 135
文章 姚 鑫 · 四月 11, 2021 阅读大约需 16 分钟 人月神话 人月神话 焦油坑 编程系统产品开发的工作量是供个人使用的,独立开发的构件程序的9倍。我估计软件构件产品化引起了3倍工作量,将软件构件整合成完成系统所需要的设计,集成和测试又强加了3倍工作量,这些高成本的构件在根本上是互相独立的。 编程行业“满足我们内心深处的创造渴望和愉悦所有人的共有情感”,其提供了五种乐趣: 创建事物的快乐 开发对其他人有用的东西的乐趣 将可以活动,相互啮合的零部件组装成类似迷宫的东西,这个过程所体现出令人神魂颠倒的魅力。 面对不重复的任务,不断学习的乐趣。 纯粹的思维活动。 同样,这个行业具有一些内在固有的苦恼: - 将做事方式调正到追求完美是学习编程的最困难的部分。 - 由其他人设定目标,并且必须依靠自己无法控制的事物,权威不等同于责任 - 任何创造性活动都伴随着枯燥艰苦的劳动,编程也不例外 - 人们通常期望项目在接近结束时,软件项目能收敛得快一些,然后,情况却是越接近完成,收敛得越慢。 #InterSystems IRIS 0 1 0 288