查询优化器
在数据库管理系统领域,查询优化器在确保数据库查询高效执行方面发挥着关键作用。 查询优化器,是IBM® watsonx.data,提高了由Presto(C++)引擎。 如果分析认为优化可行,则重写查询;否则,优先使用本机引擎优化。
查询优化器不支持Presto(Java )。
之内watsonx.data,查询优化器作为一个组件运行,负责优化查询。 它接受标准 SQL 查询作为输入,并生成优化的 SQL 等效语句,该语句经过量身定制,可增强执行效果。Presto(C++)。在无法进行优化的情况下,系统将恢复使用原始查询。
查询优化器成为watsonx.data,使用户能够优化他们的查询并提高引擎的性能。
您可以看到 激活查询优化管理器 部分了解更多信息。
优点查询优化器
的查询优化功能Db2利用watsonx.data考虑的关键因素包括:
-
watsonx.data用途Db2作为数十年来磨练的查询优化,以实现最佳性能。
利用广泛的开发、查询优化功能Db2分析您的 SQL 查询并生成最佳执行计划。 考虑的关键因素包括:
- 准确的统计数据:RUNSTATS 收集数据分布和基数估计,以便做出明智的决策。
- 精心设计的索引和约束:这些索引和约束引导优化器走向高效的访问路径并保证数据完整性。
- 复杂查询的高级技术:基于成本的优化和基数估计确保高效处理。
-
增强查询性能:查询优化器有效地优化了查询,从而显著提高了性能。
-
无缝整合:查询优化器与现有无缝集成watsonx.data基础设施,确保采用过程的顺利进行。
-
灵活优化:查询优化器操作灵活,用户可以在全局或会话级别启用和禁用该功能。
-
查询优化器支持 Hive 和Iceberg表。
限制查询优化器
- 查询优化器仅支持PrestoC++。
- 当元存储同步时,所有模式和表都采用大写形式。 例如,
"catalog".SCHEMA.TABLE
。 - 三部分名称查询需要用小写字母将目录名称括起来 (
"catalog".SCHEMA.TABLE
)。否则查询返回错误。 - 为了获得最佳性能,您必须在
Query Optimizer engine
表格同步后。 - 启用查询优化器,当前连接到任何Presto引擎将自动与优化器引擎同步。 但是,启用优化器后后续添加的目录或模式将需要用户手动同步元数据。 參閱 同步查询优化器 了解详细说明。
- 如果目录或架构在查询优化器部署后,其元数据将不会出现在优化引擎中。 为了确保所有对象都按预期存在,用户应使用 同步查询优化器 手动验证并可能同步缺失的元数据。
- 查询优化器功能依赖于至少一个活动Presto你的 C++ 引擎Watsonx.data实例。 试图移除最后剩下的PrestoC++ 引擎查询优化器启用将触发停用查询优化器本身。 用户界面中将显示确认提示,以防止意外停用。
- 查询优化器不支持观点。
- 投影列表中的十进制和浮点数列可能会互换,并可能导致数据类型不匹配。
- 某些查询(完全外连接、反连接)未返回正确的结果。
- 标识符中的特殊字符无法正常工作。
- 查询优化器目前只支持
SELECT
语句。