zss0109211
作者zss01092112013-09-26 10:05
数据库管理员, null

SQL0437W RC "6". SQLSTATE=01602

字数 1456阅读 8864评论 0赞 0

问题:查询或者update返回报警信息
 Performance of this complex query might be sub-optimal.  Reason code: "6".  SQLSTATE=01602
处理过程:
根据报错信息,怀疑是查询台复杂,改成最简单SQL来执行还是报错。
LOAD QUERY TABLE 返回表正常。

对表做runtats失败
解决办法:
对表成功runstats后,SQL执行正常

原因:
from infocenter
如果无法一次收集全套统计信息,那么请对部分对象使用 RUNSTATS 实用程序。如果由于正在对那些对象执行活动而引起不一致性,那么查询优化期间将返回警告消息(SQL0437W,原因码 6)。如果发生这种情况,请再次使用 RUNSTATS 以更新分布统计信息。

要确保索引统计信息与相应的表同步,那么请同时收集表和索引统计信息。如果自从上次收集统计信息以来已对该表作了大量修改,那么只更新该表的索引统计信息将使这两组统计信息相互不同步。

在生产系统上使用 RUNSTATS 实用程序可能会对工作负载的性能产生负面影响。此实用程序现在支持调速选项,在数据库活动级别较高的时间段,可以使用此选项来限制执行 RUNSTATS 对性能的影响。

在分区数据库环境中收集某个表的统计信息时,RUNSTATS 将只对从其中执行该实用程序的数据库分区执行操作。在此数据库分区中获得的结果将被推广到其他数据库分区。如果此数据库分区未包含该表的所需部分,那么该请求将被发送到数据库分区组中第一个包含所需数据的数据库分区。

收集统计视图的统计信息时,将对所有包含该视图所引用的基本表的数据库分区收集统计信息。

请考虑下列技巧来提高 RUNSTATS 的效率以及统计信息的有效性:•仅对用来连接表的列或者 WHERE、GROUP BY 以及查询的类似子句中引用的列收集统计信息。如果已对这些列建立索引,那么可以使用 RUNSTATS 命令的 ONLY ON KEY COLUMNS 子句来指定这些列。
•为特定的表和列定制数据库配置参数 num_freqvalues 和 num_quantiles 的值。
•为已填充的表创建索引时,请使用 COLLECT STATISTICS 子句在创建该索引时创建统计信息。
•在添加或除去大量的表行之后,或者如果已更新要收集其统计信息的列中的数据,请再次使用 RUNSTATS 以更新统计信息。
•因为 RUNSTATS 只对单一数据库分区收集统计信息,所以,如果数据并未一致地分布在所有数据库分区中,那么统计信息可能不太准确。如果您怀疑数据分布不均匀,那么在使用 RUNSTATS 实用程序之前,请考虑使用 REDISTRIBUTE DATABASE PARTITION GROUP 命令在各个数据库分区之间重新分布数据。
•对于 DB2® V9.7 FP1 及更高版本的发行版,可以收集 XML 列的分布统计信息。收集基于 XML 列中所指定 XML 数据的每个索引的分布统计信息。缺省情况下,对每个基于 XML 数据的索引的分布统计信息使用最大值 - 250 个分位数。
收集 XML 列的分布统计信息时,可以更改最大分位数。您可以减小最大分位数,以根据特定数据大小来减少 XML 分布统计信息的空间需求;或者,如果使用 250 个分位数不足以捕获基于 XML 数据的索引的数据集的分布统计信息,那么可以增大最大分位数。

 

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

0

添加新评论0 条评论

Ctrl+Enter 发表

作者其他文章

相关文章

相关问题

相关资料

X社区推广