Hint的使用在OLTP的应用里不多见。但是在OLAP的场景里会用到一些。OLAP里面一般SQL比较复杂,优化器有时候会犯傻。可以如果是动态SQL(OLAP一般都用动态SQL),在SQL语句后面直接加hint即可。使用方法就像6楼举的例子一样。还有的时候,我们可以用selectivity 帮助DB2算出合理一点...
显示全部Hint的使用在OLTP的应用里不多见。但是在OLAP的场景里会用到一些。
OLAP里面一般SQL比较复杂,优化器有时候会犯傻。
可以如果是动态SQL(OLAP一般都用动态SQL),在SQL语句后面直接加hint即可。
使用方法就像6楼举的例子一样。
还有的时候,我们可以用selectivity 帮助DB2算出合理一点的filter factor。比如
select xxx from t where length(c1) =10 。对于这种加函数的条件优化器是估不准,一般就用0.1代替了事。我们可以加个selectivity告诉一下DB2。
select xxx from t where ( length(c1) = 10 selectivity 0.8)。
要使用这两个功能得打开两个设置变量:
DB2_OPTPROFILE=yes和DB2_SELECTIVITY=ALLDB2的hint其实很强大的,一般情况都能应付,就是在DPF不能修改TQ的行为这点让人不爽。
收起