1、避免整表扫描。建立索引‘快表’。
数据库默认状态采取整表扫描。避免方法就是在where字句中涉及的字段建立索引‘快表’。
注意索引有与表同步更新的性能损耗问题,当表比较小时没有必要建索引,当查询的记录数占表大小的10-15%,索引最有效。注意可以建立复合索引。
2、where字句中查询条件的安排,在oracle中是最严格限制条件放在最后,因为查询优化器从后向前分析查询条件。所谓最严格限制条件是返回最少记录集的条件。
3、使用存储过程或函数或触发器或嵌入式sql。
4、尽量避免使用逻辑运算符号OR而用IN代替它。
5、事务日志的备粉影响性能。
6、隔离批量事务处理与用户的事务处理,因为用户的事务处理最终将在与批量事务处理的资源竞争中处于劣势。 最好把二者分开执行。
7、删除索引是提高批量装载或记帐事务性能的一个有效途径,最后再重建索引。
8、经常执行Commit/rollback语句,以定期清空回退段,否则将令数据库停止事务处理。
9、重新分配空间,整理表/索引碎片。表分区、索引分区,把表或索引分布在不同的磁盘,可以降低磁盘i/o的争用,提高查询的速度。
表分区:范围、散列、复合、列表分区,可以属于不同表空间,从而达到分散数据到不同磁盘的目的。
索引分类:唯一索引、复合索引、反向键索引、位图索引、索引组织表。
索引分区:局部分区索引、全局分区索引、全局非分区索引。
注意索引组织表不允许分区。
10、调整用户处理过程的时间片变量。
11、增加cpu/内存