0 / 0
Go back to the English version of the documentation
收集所有其他数据源的统计信息
Last updated: 2024年11月26日
收集Data Virtualization中所有其他数据源的统计数据

可以使用 DVSYS.COLLECT_STATISTICS 过程,用于收集除对象存储器中定义的对象以外的所有虚拟化对象的统计信息。

以下示例显示如何使用 DVSYS.COLLECT_STATISTICS 过程的 remote-catalog 收集类型来收集统计信息。
call DVSYS.COLLECT_STATISTICS('schema',  'table_name', 'list_of_columns_commonly_used_in_predicates', 1, null, ?);

此调用收集 list_of_columns_commonly_used_in_predicates 自变量中包含的列的表级别统计信息和列级别统计信息。 如果该表有几列,那么可以通过指定空值而不是列列表来收集该表中所有列的统计信息。 要避免收集列统计信息,请改为指定空字符串 ('')。

并非所有数据源都支持 "remote-catalog收集类型,某些支持 "remote-catalog收集类型的数据源也不支持Data Virtualization使用的所有关键统计数据。 在任何一种情况下,都可能需要使用 remote-query 类型的统计信息收集。 以下示例与先前示例类似,但改为使用 remote-query 集合类型。

call DVSYS.COLLECT_STATISTICS('schema', 'table_name', 'list_of_columns_commonly_used_in_predicates', 2, null, ?);
这种类型的统计信息收集可能是资源密集型的,需要很长时间才能完成。 如果虚拟化表具有许多行或收集了许多列的统计信息,请考虑在系统不太繁忙时收集统计信息。 如果表具有超过 1000 行,那么可以使用采样 (指定 TABLESAMPLE 选项) 来减少统计信息收集所使用的资源并提高性能。 以下示例使用 25% 的数据采样率:
call DVSYS.COLLECT_STATISTICS('schema', 'table_name', 'list_of_columns_commonly_used_in_predicates', 2, 'TABLESAMPLE=25', ?);
避免同时调度许多统计信息收集作业。
Generative AI search and answer
These answers are generated by a large language model in watsonx.ai based on content from the product documentation. Learn more