对于 SQL(用作嵌入式 SQL 时除外),系统会生成可重用代码来访问数据,并将该代码放置在查询缓存中。 (对于嵌入式 SQL,系统也会生成可重用代码,但这包含在生成的 INT 代码中。)
当首次执行 SQL 语句时,IRIS 会优化查询,然后生成并存储检索数据的代码。它将代码以及优化的查询文本存储在查询缓存中。请注意,此缓存是 OBJ 代码的缓存,而不是数据的缓存。
稍后,当执行 SQL 语句时, IRIS 会对其进行优化,然后将该查询的文本与查询缓存中的项目进行比较。如果 IRIS 找到与给定查询匹配的存储查询(除了空格等细微差别),它会使用为该查询存储的代码。
管理门户按架构对查询缓存中的项目进行分组。要查看给定架构的查询缓存,请在管理门户中执行以下操作:
SQL。ulink。门户显示如下:

列表中的每一项都是 OBJ 代码。
默认情况下,IRIS 不会将其生成的例程和 INT 代码保存为该 OBJ 代码的前体。也可以强制 InterSystems IRIS 保存此生成的代码。请参阅 InterSystems SQL 设置。
可以清除缓存的查询(这会强制 IRIS 重新生成此代码)。要清除缓存的查询,请使用操作 > 清除缓存的查询。

对于 IRIS 类,索引不需要任何维护,但有一个例外:如果在已存储该类记录后添加索引,则必须构建该索引。
当查询优化器决定执行特定 SQL 查询的最有效方法时,除其他因素外,它还会考虑以下各项:
仅当使用给定的一个或多个表运行调整表工具时,此信息才可用。此工具计算此数据并将其与类的存储定义一起存储,作为类的 值和存储属性的值。
要使用调谐表功能:
对于 ExtentSize 相对值正确(即小表应设置较小的值,大表应设置较大的值)。