疯狂java


您现在的位置: 疯狂软件 >> 新闻资讯 >> 正文

oracle优化篇


 替代优化 1 1.1用>=替代> select ui.user_name from user_info ui--员工信息表 where ui.student_id>=10 与 select ui.user_name from user_info ui--员工信息表 where ui.student_id>9 执行时>=会比>执行得要快 2 2.1用UNION替换OR (适用于索引列) select ui.user_name from user_info ui--员工信息表 where ui.student_id=10 union select ui.user_name from user_info ui--员工信息表 where ui.student_id=2 上面语句可有效避免全表查询 select ui.user_name from user_info ui--员工信息表 where ui.student_id=10 or ui.student_id=2 如果坚持要用OR, 可以把返回记录最少的索引列写在最前面 3 3.1用in 代替or select ui.user_name from user_info ui--员工信息表 where ui.student_id=10 or ui.student_id=20 or ui.student_id=30 改成 select ui.user_name from user_info ui--员工信息表 where ui.student_id in (10,20,30) 执行会更有效率 4. 4.1 Union All 与Union Union All重复输出两个结果集合中相同记录 如果两个并集中数据都不一样.那么使用Union All 与Union是没有区别的, select ui.user_name from user_info ui--员工信息表 where ui.student_id=10 union All select ui.user_name from user_info ui--员工信息表 where ui.student_id=2 与 select ui.user_name from user_info ui--员工信息表 where ui.student_id=10 union select ui.user_name from user_info ui--员工信息表 where ui.student_id=2 但Union All会比Union要执行得快 5 5.1分离表和索引 总是将你的表和索引建立在另外的表空间内 决不要将这些对象存放到SYSTEM表空间里