1、用>=比>或<好
2、LIKE ‘%5400%’ 这个条件会产生全表扫描,如果改成YY_BH LIKE ’X5400%’ OR YY_BH LIKE ’B5400%’ 则会利用YY_BH的索引进行两个范围的查询,性能肯定大大提高。
3、用其它相同功能的操作运算代替,如:a is not null 改为 a>0 或a>’’等。不允许字段为空,而用一个缺省值代替空值,如申请中状态字段不允许为空,缺省为申请。
4、采用UNION ALL操作符替代UNION,因为UNION ALL操作只是简单的将两个结果合并后就返回。UNION会去掉重复行
5、如果将SQL的字符串及格式写得完全相同,则ORACLE只会分析一次
6、WHERE后面的条件顺序影响:能排除越多记录的条件放在越前面
7、substr(hbs_bh,1,4)=’5400’,优化处理:hbs_bh like '5400%'
……待添加