IBM Cloud Docs
查询优化器

查询优化器

在数据库管理系统领域,查询优化器在确保数据库查询高效执行方面发挥着关键作用。 查询优化器,是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 语句。