全部时间
文章
· 五月 4, 2021 阅读大约需 7 分钟
第二章 全局变量结构(二)

第二章 全局变量结构(二)

全局变量物理结构

全局变量使用高度优化的结构存储在物理文件中。管理此数据结构的代码也针对运行InterSystems IRIS的每个平台进行了高度优化。这些优化确保全局操作具有高吞吐量(每单位时间的操作数)、高并发性(并发用户总数)、缓存的高效使用,并且不需要与性能相关的持续维护(例如频繁的重建、重新索引或压缩)。

用于存储全局变量的物理结构是完全封装的;应用程序不会以任何方式担心物理数据结构。

全局变量存储在磁盘上的一系列数据块中;每个块的大小(通常为8KB)是在创建物理数据库时确定的。为了提供对数据的高效访问,InterSystems IRIS维护了一种复杂的B树状结构,该结构使用一组指针块将相关数据块链接在一起。InterSystems IRIS维护一个缓冲池-经常引用的块的内存缓存-以降低从磁盘获取块的成本。

0 0
0 171
InterSystems 开发者社区汇聚了 25,979 位出色的开发者
InterSystems IRIS 程序员可以在这里学习、分享、了解最新动态、成长,以及收获快乐!
文章
· 五月 15, 2025 阅读大约需 24 分钟
基于 Kubernetes 而非传统Mirror的IRIS 高可用部署

在本文中,我们将使用基于分布式存储的 Kubernetes 部署来构建一个 IRIS 的高可用配置,而不使用“传统的”IRIS Mirror。 这种部署将能够容忍与基础架构相关的故障,如节点、存储和可用区故障。 所描述的方法可以大大降低部署的复杂性,代价是 RTO的略微延长。

0 0
0 170
文章
· 六月 28, 2023 阅读大约需 5 分钟
InterSystems IRIS 数据平台的以太坊适配器

1. 区块链

当我写这篇文章时,比特币的价格还不到其成功顶峰时期的五分之一。因此,当我开始向某人讲述我的区块链经历时,我听到的第一句话是毫不掩饰的怀疑:“现在谁需要这个区块链东西?”

没错,区块链炒作已经减弱。然而,它所基于的技术将继续存在并将继续在特定领域使用。互联网通常提供大量描述这些技术的一般用法的材料

0 0
0 170
文章
· 五月 16, 2023 阅读大约需 3 分钟
第六章 介绍Productions - 其他Production 选项

第六章 介绍Productions - 其他Production 选项

本章概述了与制作相关的其他选项。

用户门户

Studio 和管理门户等后端工具不同,用户门户(正式名称为 用户门户)旨在供最终用户直接使用。下面显示了一个例子:

用户门户旨在使最终用户能够执行以下任务:

  • 视图和仪表板,其中可以包括生产业务指标,将在本章后面介绍。
  • 查看和管理工作流任务,将在下一节介绍。
  • 向用户门户的其他用户发送消息,如上图左上角所示。

工作流

IRIS 为制作中的工作流程提供支持。工作流使得将人机交互合并到自动化业务流程中成为可能。企业内工作流的使用可能包括订单输入、订单履行、合同批准或服务台活动。

production 使用业务流程和业务操作集实现工作流。业务流程接收请求,组织完成该请求所需的任务,然后调用业务操作来执行这些任务。

这些业务操作中的每一个都将任务分配给一个工作流角色,该角色将任务放入属于该角色的每个用户的工作流收件箱中。要访问此收件箱,用户需要使用上一主题中介绍的用户门户。

0 0
0 170

开发者们大家好!

我们非常激动地与您分享我们为每个社区成员提供的在线分析仪表板(Online Analytics Dashboard)这一全新的强大功能🔥

从现在开始,您可以看到您自己的当周、月和所有时间的详细统计数据,包括:

  • 浏览量,点赞量,评论量,关注量
  • 时间轴图——针对浏览量、点赞、关于您的帖子的行动、评论
  • 包含关于您的每个帖子的浏览量、评论和点赞信息的表

      1 0
      0 170

      亲爱的开发者们,

      是否准备参加InterSystems 2021全球峰会呢?不要错过InterSystems Developer Community、Open Exchange和Global Masters的专题会议!

      ⚡️ "Win. Win. Win with InterSystems Developer Ecosystem" VSummit21 session ⚡️

      🎁 注意:所有参会者都将获得额外奖励哦~

      分享嘉宾:
      🗣 @Anastasia Dyubaylo, InterSystems开发者社区经理
      🗣 @Lena Evsikova, Product Owner of InterSystems Open Exchange
      🗣 @Olga Zavrazhnova, Customer Advocacy Manager, InterSystems

      0 0
      0 170
      文章
      · 六月 21, 2021 阅读大约需 3 分钟
      第十四章 XML获取当前节点信息

      第十四章 XML获取当前节点信息

      DOM节点类型

      %XML.Document%XML.Node类识别以下DOM节点类型:

      • Element ($$$xmlELEMENTNODE)

      请注意,这些宏在%xml.DOM.inc包含文件中定义。

      • Text ($$$xmlTEXTNODE)

      • Whitespace ($$$xmlWHITESPACENODE).

      其他类型的DOM节点被简单地忽略。

      请以下XML文档:

      0 0
      0 170
      文章
      · 六月 3, 2021 阅读大约需 10 分钟
      第十五章 Caché WebSocket

      第十五章 Caché WebSocket

      使用WebSockets (RFC 6455)

      web是围绕请求/响应范例构建的:客户机向服务器发送请求,服务器通过向客户机发送响应进行响应。此范式和HTTP本身不允许此通信协议的反向形式,即服务器与客户机启动请求/响应周期。已经开发了许多技术来解决了这个问题,即服务器可以启动与客户机的对话。这些技术通常被称为基于推送或 comet-based的技术,它们都存在不适合在web基础设施上进行全面部署的问题。目前使用的三种主要技术如下所述。

      Short Polling 短轮询

      使用这种技术,客户端定期发送HTTP请求来检测服务器状态的变化,服务器被编程为立即响应。空响应表示没有变化。

      0 0
      0 170
      文章
      · 四月 23, 2021 阅读大约需 6 分钟
      第五章 优化查询性能(二)

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

      使用索引

      索引通过维护常见请求数据的排序子集,提供了一种优化查询的机制。
      确定哪些字段应该被索引需要一些思考:太少或错误的索引和关键查询将运行太慢;
      太多的索引会降低插入和更新性能(因为必须设置或更新索引值)。

      什么索引

      要确定添加索引是否会提高查询性能,请从管理门户SQL接口运行查询,并在性能中注意全局引用的数量。
      添加索引,然后重新运行查询,注意全局引用的数量。
      一个有用的索引应该减少全局引用的数量。
      可以通过在WHERE子句或ON子句条件前使用%NOINDEX关键字来防止使用索引。

      应该为联接中指定的字段(属性)编制索引。左外部联接从左表开始,然后查看右表;因此,应该为右表中的字段建立索引。在下面的示例中,应该为T2.f2编制索引:

      0 0
      0 170
      文章
      · 三月 19, 2024 阅读大约需 3 分钟
      IRIS/Caché SQL优化经验分享 - 检查索引的完整性

      Caché/IRIS的特点是运行Global的修改,而这个修改和SQL是无关的,因此非常容易出现数据库表数据完整性的问题,也就是表中的数据是不是符合定义的表约束。

      这样的情况非常常见。有些是人为的对Global的错误修改, 有些是应用系统的事务性管理写的不对,造成事务回滚的时候破坏了索引的完整性。无论什么原因,只要使用Global操作,破坏SQL的完整性非常难以避免。结果就是SQL查询给出错误结果。

      最简单的解决方法就是执行“索引检查(Validate Indices)"

      我们来做个实验

      - 先修改一个global: 如下图, 将Patient表的一个记录的SEX字段,从'M'改到‘F'.

      运行索引检查, 结果会提示您问题在什么地方。

      1 0
      0 169
      文章
      · 五月 15, 2023 阅读大约需 4 分钟
      第五章 介绍Productions - 业务流程和业务逻辑

      第五章 介绍Productions - 业务流程和业务逻辑

      业务流程和业务逻辑

      本章描述业务流程中支持的逻辑种类。

      介绍

      业务流程是production的中间部分。它们接受来自production内部主机类(业务服务或业务流程)的请求,然后处理请求或将它们转发到production内部的其他主机类进行处理。

      建议在production中进行以下分工:使用业务服务从生产外部接收输入并将其(作为消息)简单地转发到production中。使用业务流程来处理任何需要的业务逻辑。使用业务操作从生产内部接收消息,并简单地为生产外部的目的地生成输出。也就是说,将业务逻辑集中在业务流程中。

      因此,IRIS 为业务流程中的复杂逻辑提供了广泛的支持,并且该逻辑可以由非技术用户定义。

      首先,业务流程可以包含自己的复杂逻辑。它还可以使用以下可重复使用的物品:

      数据转换计算消息内容并将更改应用到消息内容。

      业务规则在决策点更改业务流程的行为,或根据消息类型、消息内容或消息来源将消息发送到特定目的地。

      0 0
      0 169

      2022年9月5日-10月24日(北京时间),我们正在举办🏆InterSystems开发者社区中文版首届技术征文大赛🏆(点击链接进入参赛页面,浏览所有参赛文章!投票截止至10月23日,你的支持与喜爱,是优秀作品获得“开发者社区奖”的关键!我们先来看看目前作品排名情况吧!

      1 0
      0 169
      文章
      · 四月 17, 2022 阅读大约需 3 分钟
      翻译博客文章--浏览医疗保健的未来

      在最近一次探索马里兰小镇的 "度假 "期间,我偶然发现了一家非常令人愉快的书店,在那里我愉快地消磨了一下午。我和我的家人都是读者,喜欢各种类型的书--新的、二手的、印刷的、电子的。我们尽量在当地购物,以帮助零售店保持运营。

      这次访问促使我思考图书行业所发生的事情与我们的医疗保健系统所发生的事情之间的一些相似之处。

      医疗保健行业与图书行业的趋势


      数字化


      我们阅读内容的格式已经发生了根本性的变化。在2020年,电子书几乎占美国市场的四分之一。音频书占美国图书收入的10亿美元。许多印刷书籍是按需出版的,而不是保存在库存中。同样,医疗保健早已不再是一个“伸出舌头说啊 ”的行业,基因组测试、由人工智能算法读取的X射线、可植入设备和远程医疗访问已经改变了医疗的面貌。

      虚拟服务

      0 0
      0 169
      文章
      · 二月 22, 2022 阅读大约需 3 分钟
      第六十二章 SQL函数 HOUR

      第六十二章 SQL函数 HOUR

      Time函数,它返回DateTime表达式的小时数。

      大纲

      {fn HOUR(time-expression)}
      
      • time-expression - 作为列名、另一个标量函数的结果或字符串或数字文字的表达式。它必须解析为日期时间字符串或时间整数,其中基础数据类型可以表示为%Time%Timestamp%PosiTime

      描述

      Hour返回一个整数,指定给定时间或日期时间值的小时。小时是根据$HOROLOG$ZTIMESTAMP值、ODBC格式的日期字符串或时间戳计算的。

      时间表达式时间戳可以是数据类型%Library.PosiTime(编码的64位有符号整数),也可以是数据类型%Library.TimeStamp(yyyy-mm-dd hh:mm:ss.fff)

      0 0
      0 169
      文章
      · 五月 9, 2021 阅读大约需 6 分钟
      第四章 多维存储的SQL和对象使用(一)

      第四章 多维存储的SQL和对象使用(一)

      本章介绍InterSystems IRIS®对象和SQL引擎如何利用多维存储(全局变量)来存储持久对象、关系表和索引。

      尽管InterSystems IRIS对象和SQL引擎会自动提供和管理数据存储结构,但了解其工作原理的详细信息还是很有用的。

      数据的对象视图和关系视图使用的存储结构是相同的。为简单起见,本章仅从对象角度介绍存储。

      数据

      每个使用%Storage.Persistent存储类(默认)的持久化类都可以使用多维存储(全局变量)的一个或多个节点在InterSystems IRIS数据库中存储其自身的实例。

      每个持久化类都有一个存储定义,用于定义其属性如何存储在全局变量节点中。这个存储定义(称为“默认结构”)由类编译器自动管理。

      0 0
      0 169
      文章
      · 三月 18, 2021 阅读大约需 6 分钟
      第十二章 使用嵌入式SQL(二)

      第十二章 使用嵌入式SQL(二)

      嵌入式SQL代码

      简单的SQL语句

      可以将简单的SQL语句(单个嵌入式SQL语句)用于各种操作,包括:

      • INSERTUPDATEINSERT OR UPDATEDELETE语句。
      • `DDL语句。
      • GRANTREVOKE语句。
      • 只返回一行的SELECT语句(或者如果只对返回的第一行感兴趣)。

      简单的SQL语句也被称为非基于游标的SQL语句。本章稍后将介绍基于游标的嵌入式SQL。

      例如,以下语句查找ID为43的(唯一的)患者的姓名:

       &sql(SELECT Name INTO :name
          FROM Patient
          WHERE %ID = 43)
      

      如果对可以返回多行的查询使用简单语句,则只返回第一行:

      0 0
      0 169

      第七十三章 使用 irisstat 实用程序监控 IRIS - 使用选项运行 irisstat

      使用选项运行 irisstat

      不带选项运行 irisstat 会生成基本报告。通常,运行 irisstat 以获得特定信息。要指定目标信息,可以包括或排除如下选项:

      • 要包含(打开)一个选项,请指定一个标志,后跟一个 1(或其他级别)。
      • 要排除(关闭)一个选项,请指定一个标志后跟一个 0

      例如,要在 irisstat 报告中包含全局文件表 (GFILETA) 部分,请使用 -m1 选项:

      C:\iris-install-dir\Bin\irisstat -m1
      

      或者,要关闭默认的基本选项,请使用 -a0 选项:

      0 0
      0 168
      文章
      · 二月 8, 2023 阅读大约需 3 分钟
      第七十章 使用 REST API 监控 IRIS - 互操作性指标

      # 第七十章 使用 REST API 监控 IRIS - 互操作性指标

      除了上一节中描述的指标外, IRIS 实例还可以记录有关活动互操作性产品的指标,并将它们包含在 `/metrics` 端点的输出中。默认情况下禁用这些互操作性指标的记录。要启用它,必须为要监控的每个互操作性产品执行以下步骤:

      1. 为运行要监控的生产的 `IRIS` 实例打开一个终端会话。如有必要,通过执行以下命令切换到与生产关联的命名空间:

      ```
      set $namespace = "[interopNS]"
      ```
      其中 `[interopNS]` 是命名空间名称。

      2. 在终端中,执行以下命令以启用当前命名空间内活动生产的指标收集(`SAM` 指的是系统警报和监控, 监控解决方案):

      ```
      do ##class(Ens.Util.Statistics).EnableSAMForNamespace()
      ```

      注意:如果为命名空间启用了指标记录但相应的生产未激活,则 `/metrics` 端点不会返回任何指标。

      0 0
      0 168
      文章
      · 十月 5, 2022 阅读大约需 3 分钟
      第七章 CSP 架构 - URL 的 Web 服务器配置

      第七章 CSP 架构 - URL 的 Web 服务器配置

      URLWeb 服务器配置

      提供了一个默认的 /csp 虚拟目录来运行 CSP 应用程序。如果正在运行多个 Caché 实例,它还提供了一个默认虚拟目录 /cacheinstance/csp 以供使用。如果正在运行多个 Caché 实例并使用虚拟目录 /csp访问 CSP 应用程序,而之前没有 /cacheinstance,它将访问最后安装的 Caché 版本。如果计划允许使用以 http://localhost/csp 或 http//localhost/cacheinstance/csp 开头的应用程序路径调用所有 CSP 应用程序,则无需在 Web 服务器中进行任何更改配置。

      2 0
      0 168
      文章
      · 五月 30, 2022 阅读大约需 4 分钟
      第157章 SQL函数 WEEK

      第157章 SQL函数 WEEK

      一个日期函数,它将一年中的第几周作为日期表达式的整数返回。

      大纲

      {fn WEEK(date-expression)}
      

      参数

      • date-expression - 一个表达式,它是列的名称、另一个标量函数的结果,或者是日期或时间戳文字。

      描述

      WEEK 接受一个日期表达式,并返回该日期从年初开始的周数。

      0 0
      0 168
      文章
      · 一月 22, 2022 阅读大约需 8 分钟
      第三十一章 SQL函数 CONVERT

      第三十一章 SQL函数 CONVERT

      将给定表达式转换为指定数据类型的函数。

      CONVERT(datatype,expression[,format-code])
      
      {fn CONVERT(expression,datatype)}
      

      参数

      • expression - 要转换的表达式。
      • datatype - 要将表达式转换为的数据类型。
      • format - 可选-指定日期和时间格式的整数代码,用于在日期/时间/时间戳数据类型和字符数据类型之间进行转换。
        此参数仅用于通用标量语法形式。

      描述

      这里描述了CONVERT函数的两种不同实现。
      两者都将一种数据类型中的表达式转换为另一种数据类型中的相应值。
      两者都执行日期和时间转换。

      0 0
      0 168
      问题
      · 八月 27, 2021
      镜像数据库无法激活问题

      请教一下,我使用两个iris实例搭建了镜像,再将数据库同步后,备机出现了数据库无法激活的问题,报错:Database could not be activated because Write Daemon could not update mirror block。该如何解决

      0 1
      0 167
      文章
      · 四月 29, 2021 阅读大约需 10 分钟
      第九章 冻结计划

      第九章 冻结计划

      大多数SQL语句都有一个关联的查询计划。查询计划是在准备SQL语句时创建的。默认情况下,添加索引和重新编译类等操作会清除此查询计划。下次调用查询时,将重新准备查询并创建新的查询计划。冻结计划使可以跨编译保留(冻结)现有查询计划。查询执行使用冻结的计划,而不是执行新的优化并生成新的查询计划。

      对系统软件的更改也可能导致不同的查询计划。通常,这些升级会带来更好的查询性能,但软件升级可能会降低特定查询的性能。冻结计划使可以保留(冻结)查询计划,以便查询性能不会因系统软件升级而改变(降级或提高)。

      0 0
      0 168