where条件的顺序调整一下,把条件越严格的写在后面下面的我也没试过,你试一试吧。 有索引的话,把(rtrim(IND_Last_Name)) like 's%' 写成IND_Last_Name>='s' and IND_Last_Name<='s'把lower(rtrim(App_Last_Name)) like 'S%'写成(App_Last_Name>='s' and App_Last_Name<='s') or App_Last_Name>='S' and App_Last_Name<='S'
lower(rtrim(IND_Last_Name)) like 's%' 改为 ( ind_last_name like 'S%' or ind_last_name like 's%')其余类似
3.5 min looks ok. The key point is whether the USER happy with it or not. If user does not complain, no need for any tuning.
有索引的话,把(rtrim(IND_Last_Name)) like 's%' 写成IND_Last_Name>='s' and IND_Last_Name<='s'把lower(rtrim(App_Last_Name)) like 'S%'写成(App_Last_Name>='s' and App_Last_Name<='s') or App_Last_Name>='S' and App_Last_Name<='S'
改为
( ind_last_name like 'S%' or ind_last_name like 's%')其余类似
那又如何建立函数索引呢?谢谢
1、rtrim 和 lower 函数会使索引失效,有些字段可以使用Varchar2类型替换char类型,这样就可以去掉rtrim了2、可以加大临时表空间或在init.ora中把参数sort_area_size和
sort_area_retained_size 加大,因为你查询中触发排序了