Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 12.0.0 (中文) » SQL Anywhere 服务器 - SQL 的用法 » 查询优化与执行 » 查询执行算法 » 算法类型 » 分组算法

 

ClusteredHashGroupBy 算法 (GrByHClust)

在某些情况下,输入表的分组列中的值会聚簇,这样,相似的值便可以靠近在一起显示。例如,如果表包含的列始终设置为当前日期,则具有一个日期的所有行在表中就会相对靠近。ClusteredHashGroupBy 利用这种聚簇。

当为明显大于可用内存的表分组时,优化程序可以使用 ClusteredHashGroupBy。特别是当 HAVING 谓语只返回一小部分行时,该方法十分有效。

如果在更新数据与执行查询同时进行的环境中选择 ClusteredHashGroupBy,则可能导致优化程序部分执行大量无用工作。因此,ClusteredHashGroupBy 最适合于偶尔进行批处理式更新和基于读取的查询的 OLAP 负载。将 optimization_workload 选项设置为 OLAP 以指示优化程序应在其调查的可能性中包括 ClusteredHashGroupBy。请参见optimization_workload 选项

当创建可以在 OLAP 负载中使用的索引或外键时,请指定 FOR OLAP WORKLOAD 子句。该子句可使数据库服务器保留一条由 ClusteredHashGroupBy 所使用的、有关相同键内两行之间的最大页面距离的统计信息。请参见CREATE INDEX 语句CREATE TABLE 语句ALTER TABLE 语句

有关 OLAP 负载的详细信息,请参见OLAP 支持