1. 本际云推荐 - 专业推荐VPS、服务器,IDC点评首页
  2. 云主机运维
  3. VPS运维

解决CBO对TABLE函数基数估算导致的性能问题

解决CBO对TABLE函数基数估算导致的性能问题

你好,我是本际云服务器推荐网的小编小本本。今天为大家分享一篇关于解决CBO对TABLE函数基数估算导致的性能问题的文章。

解决CBO对TABLE函数基数估算导致的性能问题

问题分析与优化建议

TABLE函数在SQL中使用,可以将传入的集合转为普通表使用,与管道函数结合使用,往往能够提高效率,然后在实际应用过程中,发现CBO对TABLE函数的启发式基数估算,往往会导致性能问题。

如果SQL中使用了嵌套表+TABLE函数,ORACLE对TABLE函数的基数估算是固定值:返回8168行,这个值比较大,可以导致执行计划与其他表JOIN的时候可能走错,比如应该走NESTEDLOOPS的走成HASHJOIN,导致部分表无法使用索引访问。

对于在SQL中使用嵌套表和TABLE函数的,如果TABLE函数实际返回的数据量较小,比如返回200行以下,在11g之前只能使用hint:cardinality、opt_estimate,而且必须手动设置比较小的基数,比如100。11g可以使用动态采样,对table函数起作用。对应hint:dynamic

原创文章,作者:小编小本本,如若转载,请注明出处:https://www.benjiyun.com/yunzhujiyunwei/vps-yunwei/6546.html