文章目录
- 第五十八章 学习常用技能 - 查看查询缓存
- 查看查询缓存
- 建立索引
- 使用调谐表工具
第五十八章 学习常用技能 - 查看查询缓存
查看查询缓存
对于 SQL
(用作嵌入式 SQL
时除外),系统会生成可重用代码来访问数据,并将该代码放置在查询缓存中。 (对于嵌入式 SQL
,系统也会生成可重用代码,但这包含在生成的 INT
代码中。)
当首次执行 SQL
语句时,IRIS
会优化查询,然后生成并存储检索数据的代码。它将代码以及优化的查询文本存储在查询缓存中。请注意,此缓存是 OBJ
代码的缓存,而不是数据的缓存。
稍后,当执行 SQL
语句时, IRIS
会对其进行优化,然后将该查询的文本与查询缓存中的项目进行比较。如果 IRIS
找到与给定查询匹配的存储查询(除了空格等细微差别),它会使用为该查询存储的代码。
管理门户按架构对查询缓存中的项目进行分组。要查看给定架构的查询缓存,请在管理门户中执行以下操作:
- 选择系统资源管理器 >
SQL
。 - 如果需要,请选择标题区域中的“切换”以选择感兴趣的命名空间。
- 展开缓存查询文件夹。
- 选择架构行中的表
ulink
。 - 在页面顶部,选择缓存查询。
门户显示如下:
列表中的每一项都是 OBJ
代码。
默认情况下,IRIS 不会将其生成的例程和 INT 代码保存为该 OBJ 代码的前体。也可以强制 InterSystems IRIS 保存此生成的代码。请参阅 InterSystems SQL 设置。
可以清除缓存的查询(这会强制 IRIS
重新生成此代码)。要清除缓存的查询,请使用操作 > 清除缓存的查询。
建立索引
对于 IRIS
类,索引不需要任何维护,但有一个例外:如果在已存储该类记录后添加索引,则必须构建该索引。
- 选择系统资源管理器 > SQL。
- 如果需要,请选择标题区域中的“切换”以选择您感兴趣的命名空间。
- 在左侧区域中,选择表。
- 选择操作 > 重建索引。
使用调谐表工具
当查询优化器决定执行特定 SQL
查询的最有效方法时,除其他因素外,它还会考虑以下各项:
- 表中有多少条记录
- 对于查询使用的列,这些列的唯一性有多接近
仅当使用给定的一个或多个表运行调整表工具时,此信息才可用。此工具计算此数据并将其与类的存储定义一起存储,作为类的 <ExtentSize>
值和存储属性的<Selectivity>
值。
要使用调谐表功能:
- 选择系统资源管理器 > SQL。
- 如果需要,请选择标题区域中的“切换”以选择感兴趣的命名空间。
- 在左侧区域中,选择表。
- 选择操作 > 调整表。
对于 <Selectivity> 值,无需再次执行此操作,除非数据字符发生变化。对于 <ExtentSize>,是否有确切的数字并不重要。该值用于比较扫描不同表的相对成本;最重要的是确保表之间的 ExtentSize
相对值正确(即小表应设置较小的值,大表应设置较大的值)。