- Oracle的运行环境中网络稳定性与带宽,硬件性能
- 使用合适的优化器,得到目标 sql 的最佳执行计划
- 合理配置 oracle 实例参数
- 建立合适的索引,减少 IO
- 将索引数据和表数据分开在不同的表空间上,降低 IO 冲突
- 建立表分区,将数据分别存储在不同的分区上
- 根据字段对大表进行逻辑分割
- sql 语句使用占位符语句、sql 大小写统一
- 耗时的操作可以通过存储过程或应用程序控制在用户较少的情况下执行,错开数据库使用的高峰时间,提高性能
- 使用列名,不使用 * 号,因为要转化为具体的列名是要查数据字典,比较耗时
- 多表连接查询,根据 from 从右到左的数据进行的,最好右边的表(基础表)选择数据较少的表
- Oracle 中 Where 字句时从右往左处理的,表之间的连接写在其他条件之前;能过滤掉非常多的数据的条件,放在 where 的末尾
- 注意 where 条件不使用索引的情况:!= 不使用索引、列经过计算不会使用索引、is null、is not null 可能不会使用索引
- 注意 exits、not exits 和 in、not in 对性能的影响
- 合理使用事务,设置合理的事务隔离性