|
针对前面提到的SQL,再多说几句:
1、SQl_ID为“c8mwptam0u48c”的SQL,每次执行都会发生24G左右的物理读;
2、SQl_ID为“c8mwptam0u48c”的SQL,只取符合条件的前1000行数据,发生了FTS且发生了这么多物理读,那么,可能有两种情况:
1)KPBZ和SCBZ列上有索引,但选择性比较差;
2)KPBZ和SCBZ列的选择性比较好,但其上没建索引;
如果是第一种情况,那么,SCRQ为null的数据行就比较少,这样,可以考虑在该列上建函数索引(例如:decode(SCRQ,null,1,2),where子句改为where KPBZ = '02' AND SCBZ = '0' AND decode(SCRQ,null,1,2) =1),或者也包含其他两个列,看具体情况;
如果是第二种情况,只需在KPBZ和SCBZ列上建索引即可。
但个人认为第一种情况的可能性更大,由于没有如上该SQL更具体的信息,以上仅为个人推理和猜测,供参考。
|
|