Indexing 给db2一个使用哪个索引的提示?

Indexing 给db2一个使用哪个索引的提示?,indexing,db2,Indexing,Db2,云云 我有一些表的连接,我想给db2数据库一个提示,我希望她使用哪个索引。我知道,这可能会导致查询速度变慢,但我有一个生产数据库和一个测试数据库,我希望这两个数据库中的行为相同(即使在一个数据库中,数据量明显不同,或者(索引)缓存的状态不同) 这是否可能(以及如何实现)?我在在线手册中没有找到任何内容,这可能意味着我有wron搜索标准 非常感谢。这不是DB2通常做的事情。但是,您可以使用。它应该仍在当前版本中。向查询添加选择性子句将影响查询优化器做出的决策 上面提到的Gilbert Le Bla

云云

我有一些表的连接,我想给db2数据库一个提示,我希望她使用哪个索引。我知道,这可能会导致查询速度变慢,但我有一个生产数据库和一个测试数据库,我希望这两个数据库中的行为相同(即使在一个数据库中,数据量明显不同,或者(索引)缓存的状态不同)

这是否可能(以及如何实现)?我在在线手册中没有找到任何内容,这可能意味着我有wron搜索标准


非常感谢。

这不是DB2通常做的事情。但是,您可以使用。它应该仍在当前版本中。向查询添加选择性子句将影响查询优化器做出的决策


上面提到的Gilbert Le Blanc也可以工作。你可以更新和欺骗DB2,以优化对行中不存在的数据量的查询。此外,DB/DBM CFG的其余部分应该匹配(即计算出的磁盘和CPU速度、内存使用相关设置等)。因为在某些情况下,它们可能在某种程度上也很重要。

您可以通过配置文件影响优化器:

  • 最近有人问:
但是,我还没有听说过选择性子句,我认为您应该在创建概要文件之前先尝试此选项。但是您应该在尝试其他选项之后再进行此操作。在影响优化器之前,请按照DeveloperWorks教程中指示的步骤进行操作:

  • 尝试不同的SQL优化类。默认优化类由数据库配置文件中的DFT_QUERYOPT参数控制

  • 尝试通过确保收集了正确的数据库统计信息来解决任何性能问题。统计信息越详细,优化器的性能越好。(请参阅DB2命令参考中的RUNSTATS)

  • 如果糟糕的访问计划是由于表的特征快速变化(即增长非常快,以至于统计数据很快过时)造成的,请尝试使用ALTER table命令将表标记为易失性

  • 尝试在谓词中使用文字值而不是参数标记来解释查询。如果在使用参数标记时获得不同的访问计划,这将帮助您更好地理解性能问题的本质。您可能会发现在应用程序中使用文字将产生更好的计划以SQL编译开销为代价(从而提高性能)

  • 尝试使用DB2的索引顾问(db2advis)查看是否有您可能忽略的有用索引


让DBA将runstats从生产系统复制到测试系统,这将确保DB2选择相同的索引。