2024年3月26日,InterSystems数据平台全球主管Scott Gnau发文,宣布InterSystems IRIS数据平台新增了向量搜索(vector search)功能。

本文作者为Scott Gnau,InterSystems数据平台全球主管。

1 0
0 165
文章
· 十月 16, 2021 阅读大约需 2 分钟
如何使用HL7相應地更新結果參考範圍和異常標誌

在本文中,我將演示以下內容:

  • 使用自定義實用程序函數從數據庫更新 ReferencesRange(OBX:7) 針對 ObservationIdentifier(OBX:3.1)[TestCode]
  • 根據數據庫實用程序函數中的 ObservationIdentifier(OBX:3.1)[TestCode] 和 ObservationValue(OBX:5)[Result] 更新異常標誌 (OBX:8)
  • 基於異常標誌的路由消息 (OBX:8)

以下是主要和轉換後的 HL7 2.5 ORU_R01 消息:

0 1
0 143
文章
· 三月 10, 2021 阅读大约需 5 分钟
第七章 SQL表之间的关系

第七章 SQL表之间的关系

要在表之间强制执行引用完整性,可以定义外键。修改包含外键约束的表时,将检查外键约束。

定义外键

有几种方法可以在InterSystems SQL中定义外键:

  • 可以定义两个类之间的关系。定义关系会自动将外键约束投影到SQL。
  • 可以在类定义中添加显式外键定义(对于关系未涵盖的情况)。
  • 可以使用CREATE TABLEALTER TABLE命令添加外键。可以使用ALTER TABLE命令删除外键。

用作外键引用的RowID字段必须是公共的。引用隐藏的RowID?有关如何使用公用(或专用)RowID字段定义表的信息。

一个表(类)的外键最大数目为400。

0 0
0 161
文章
· 四月 12, 2021 阅读大约需 3 分钟
第一章 SQL性能优化简介

第一章 SQL性能优化简介

InterSystems SQL支持几个特性来优化InterSystems IRIS®数据平台的SQL性能。

表定义优化

SQL性能从根本上取决于良好的数据架构。
将数据划分为多个表并在这些表之间建立关系对于高效的SQL是必不可少的。

描述了以下优化表定义的操作。
这些操作要求定义表,但不要求用数据填充表:

0 0
0 160
文章
· 四月 22, 2021 阅读大约需 8 分钟
第五章 优化查询性能(一)

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

InterSystems SQL自动使用查询优化器创建在大多数情况下提供最佳查询性能的查询计划。该优化器在许多方面提高了查询性能,包括确定要使用哪些索引、确定多个AND条件的求值顺序、在执行多个联接时确定表的顺序,以及许多其他优化操作。可以在查询的FROM子句中向此优化器提供“提示”。本章介绍可用于评估查询计划和修改InterSystems SQL将如何优化特定查询的工具。

InterSystems IRIS®Data Platform支持以下优化SQL查询的工具:

0 0
0 159
文章
· 二月 13, 2022 阅读大约需 3 分钟
第五十三章 SQL函数 %EXACT

第五十三章 SQL函数 %EXACT

排序规则函数,可将字符转换为精确的排序规则格式。

大纲

%EXACT(expression)

%EXACT expression

参数

  • expression - 字符串表达式,可以是列名、字符串文字、数字或另一个函数的结果,其中底层数据类型可以表示为任何字符类型(如CHARVARCHAR2)。

描述

%Exact返回精确排序规则序列中的表达式。此归类序列按如下方式对值进行排序:

0 0
0 158
文章
· 二月 28, 2024 阅读大约需 4 分钟
使用 SQL 文本搜索从非结构化数据中获取见解

什么是非结构化数据?
非结构化数据是指缺乏预定义数据模型或组织的信息。与数据库中具有清晰结构(例如表和字段)的结构化数据相比,非结构化数据缺乏固定的模式。此类数据包括文本、图像、视频、音频文件、社交媒体帖子、电子邮件等。

为什么来自非结构化数据的见解很重要?
根据 IDC(国际数据公司)的报告,预计到 2025 年,全球 80% 的数据将是非结构化的,这将成为 95% 企业的重大担忧。 福布斯文章

人工智能世界如何解决这个问题?
在人工智能领域,生成式人工智能在为非结构化数据提供解决方案方面发挥着至关重要的作用。它擅长从文本/图像/视频中提取有价值的信息、文本摘要和处理文档等任务。

1 1
0 137
文章
· 三月 5, 2021 阅读大约需 3 分钟
Global 扫描和切片

Global 扫描和切片

这是一个在 IRIS 2020.1 和 Caché 2018.1.3 上工作的代码示例
不会与新版本保持同步
也不会获得 InterSystems 提供的支持服务!   

大多数情况下,默认存储使用的 global 只有 1 个表示 IDKEY 的下标级别。 对于索引 global,可能有 2 个或更多下标级别。

数组、父子关系或扩展了基础数据类的持久化类 是具有更多下标级别的示例。 但所有这些 global 都非常统一。

1 1
0 137
文章
· 三月 28, 2021 阅读大约需 7 分钟
第十三章 使用动态SQL(六)

第十三章 使用动态SQL(六)

%ObjectSelectMode = 1 Swizzling字段名称属性

下面的示例使用%ObjectSelectMode = 1进行准备,当使用字段名称属性返回值时,其类型类别为可Swizzle类型的字段(持久性类,序列类或流类)将自动发生Swizzle。转换字段值的结果是相应的对象参考(oref)。使用%Get()%GetData()方法访问字段时,InterSystems IRIS不会执行此筛选操作。在此示例中,rset.Home处于Swizzle状态,而引用同一字段的rset.%GetData(2)处于not swizzled状态:

0 0
0 156
文章
· 三月 18, 2024 阅读大约需 4 分钟
IRIS/Caché SQL优化经验分享 - Tune Table

TuneTable(调整表)收集数据库中表的统计信息,用来为SQL引擎制定最优的执行计划。在其他数据库产品里,这个动作被称为“gather stats job"或者类似的名字,相比较TuneTable不是那么直白,但作用是一样的。

TuneTable是否要人工执行

一定要。

在IRIS 2023版本, 第一次加入了TuneTable的自动执行功能,在此之前的所有IRIS/Caché版本, 如果没有人工执行TuneTable, SQL引擎无法保证给出最好的查询计划。 即使是IRIS2023有了自动执行功能,也还需要人工执行TuneTable的操作,后面解释。

1 0
0 155
文章
· 一月 21, 2022 阅读大约需 2 分钟
第三十章 SQL函数 CONCAT

第三十章 SQL函数 CONCAT

标量字符串函数,它返回作为连接两个字符表达式的结果的字符串。

大纲

{fn CONCAT(string-expression1,string-expression2)}

参数

  • string-expression1, string-expression2 - 要连接的字符串表达式。表达式可以是列名、字符串文字、数字或另一个标量函数的结果,其中底层数据类型可以表示为任何字符类型(如CHARVARCHAR)。

描述

连接两个字符串以返回连接的字符串。可以使用连接运算符(||)执行完全相同的操作。

可以连接数字或数字字符串的任意组合;连接结果是一个数字字符串。SQL在连接之前将数字转换为规范形式(指数被扩展,前导零和尾随零被删除)。在连接之前,数字字符串不会转换为规范形式。

可以将前导空格或尾随空格连接到字符串。将空值连接到字符串会产生空值;这是行业范围内的SQL标准。

0 0
0 155
文章
· 三月 25, 2021 阅读大约需 11 分钟
第十三章 使用动态SQL(三)

第十三章 使用动态SQL(三)

执行SQL语句

有两种使用%SQL.Statement类执行SQL语句的方法:
- %Execute(),它执行以前使用%Prepare()%PrepareClassQuery()准备的SQL语句。
- %ExecDirect(),它同时准备和执行一条SQL语句。

也可以通过使用$SYSTEM.SQL.Execute()方法执行SQL语句而无需创建对象实例。此方法既准备又执行SQL语句。它创建一个缓存的查询。下面的终端示例显示Execute()方法:

0 0
0 153
文章
· 四月 14, 2021 阅读大约需 8 分钟
第二章 定义和构建索引(二)

第二章 定义和构建索引(一)

定义索引

使用带有索引的Unique、PrimaryKey和IdKey关键字

与典型的SQL一样,InterSystems IRIS支持惟一键和主键的概念。
InterSystems IRIS还能够定义IdKey,它是类实例(表中的行)的唯一记录ID。
这些特性是通过UniquePrimaryKeyIdKey关键字实现的:
- Unique -在索引的属性列表中列出的属性上定义一个唯一的约束。
也就是说,只有这个属性(字段)的唯一数据值可以被索引。
唯一性是根据属性的排序来确定的。
例如,如果属性排序是精确的,则字母大小写不同的值是唯一的;
如果属性排序是SQLUPPER,则字母大小写不同的值不是唯一的。

但是,请注意,对于未定义的属性,不会检查索引的惟一性。
根据SQL标准,未定义的属性总是被视为唯一的。

0 0
0 152
文章
· 七月 21, 2022 阅读大约需 4 分钟
InterSystems SQL 的使用 - 第五部分 - 导入SQL Code

本章介绍了如何将SQL code从文本文件导入InterSystems SQL。当你导入SQL code时,InterSystems IRIS 数据平台使用动态SQL准备并执行每一行的SQL。如果遇到无法解析的SQL code行,SQL导入会跳过该行code,继续准备和执行后续的code行,直到到达文件的末端。所有的SQL code导入操作都会导入到当前的命名空间。

SQL导入主要用于导入数据定义语言(DDL)命令,如CREATE TABLE,并使用INSERT、UPDATE和DELETE命令来填充表。SQL导入可以准备和执行SELECT查询,但不创建结果集。

0 0
0 151
文章
· 四月 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语句详细信息”显示来查看查询计划,并冻结或解冻查询计划。

0 0
0 151
文章
· 六月 10, 2022 阅读大约需 8 分钟
第五章 数据类型(四)

第五章 数据类型(四)

Strings

%Library.String 数据类型支持的最大字符串长度为 3,641,144 个字符。通常,极长的字符串应分配为 %Stream.GlobalCharacter 数据类型之一。

因为 IRIS 支持 xDBC 协议 50 和更高版本,所以没有强制执行 ODBC 或 JDBC 字符串长度限制。如果 IRIS 实例和 ODBC 驱动程序支持不同的协议,则使用两个协议中较低的一个。实际使用的协议记录在 ODBC 日志中。

请注意,默认情况下 IRIS 建立系统范围的 ODBC VARCHAR 最大长度为 4096;此 ODBC 最大长度是可配置的。

0 0
0 150
文章
· 三月 19, 2024 阅读大约需 3 分钟
IRIS/Caché SQL优化经验分享 - SQL优化器使用的统计数据

上个帖子写了TuneTable的执行, 提到了SQL优化器使用的那些统计数据, 这里逐一的介绍一下这些统计项。了解它们看懂和分析SQL执行计划的基础。 如果您不需要做单个查询的优化工作,可以调过这部分内容。

表的统计项

  • Extent Size: 表的大小,也就是记录数。在执行多表关联(JOIN)的查询时,SQL优化器会根据Extent Size值,从数据量最小的表来开始执行查询。

您还需要了解:表创建的时候Extent Size会获得一个初始值,而之后的插入修改数据并不自动修改这个值。而只有执行TuneTable才会修改这个。 这也就是为什么没有执行过TuneTable的数据库SQL性能好不了的原因。下图中的Patient表,可以看出有1,000,000记录

0 0
0 146
文章
· 六月 9, 2022 阅读大约需 6 分钟
第四章 数据类型(三)

第四章 数据类型(三)

日期、时间、PosixTime 和时间戳数据类型

可以定义日期、时间和时间戳数据类型,并通过标准 SQL 日期和时间函数相互转换日期和时间戳。例如,可以使用 CURRENT_DATECURRENT_TIMESTAMP 作为使用该数据类型定义的字段的输入,或者使用 DATEADDDATEDIFFDATENAMEDATEPART 来操作使用该数据类型存储的日期值。

数据类型类 %Library.Date%Library.Time%Library.PosixTime%Library.TimeStamp%MV.Date 对于 SqlCategory 的处理方式如下:

0 0
0 146
文章
· 一月 20, 2022 阅读大约需 7 分钟
第二十九章 SQL函数 COALESCE

第二十九章 SQL函数 COALESCE

返回第一个非空表达式的值的函数。

大纲

COALESCE(expression,expression [,...])
  • expression - 要计算的一系列表达式。多个表达式被指定为逗号分隔的列表。此表达式列表限制为140个表达式。

描述

COALESSE函数按从左到右的顺序计算表达式列表,并返回第一个非空表达式的值。如果所有表达式的计算结果都为NULL,则返回NULL

字符串返回时保持不变;保留前导和尾随空格。数字以规范形式返回,去掉了前导零和尾随零。

返回值的数据类型

非数字表达式(如字符串或日期)必须都属于相同的数据类型,并返回该数据类型的值。指定数据类型不兼容的表达式会导致SQLCODE-378错误,并显示DataType不匹配错误消息。可以使用CAST函数将表达式转换为兼容的数据类型。

0 0
0 146
文章
· 五月 23, 2021 阅读大约需 6 分钟
第三章 发送HTTP请求

第三章 发送HTTP请求

发送HTTP请求

创建HTTP请求后,使用以下方法之一发送该请求:

Delete()

method Delete(location As %String = "", 
              test As %Integer = 0, 
              reset As %Boolean = 1) as %Status

发出HTTP DELETE请求。

Get()

method Get(location As %String = "", 
           test As %Integer = 0, 
           reset As %Boolean = 1) as %Status

发出HTTP GET请求。此方法使Web服务器返回请求的页面。

0 0
0 146