日期:2014-05-16 浏览次数:20451 次
由于数据仓库系统存储大量的历史数据和当前数据,并且数据量在不断增加,为了提高数据存储、检索的运行效率,建立一个优良的数据仓库系统,数据仓库设计人员和开发人员需要掌握Oracle优化理论方面的知识,这有助于设计、开发出高性能的数据仓库系统。
1 外部优化原则
CPU是直接影响数据库性能的外部因素,同时Oracle的内存大小也会影响SQL查询的
效率,大量的Net8通信同样会使SQL的性能变差。
下面介绍外部优化原则的具体调整方法。
1) 适当增加服务器CPU的数量,服务器的性能会受CPU的限制,最好的方法就是为服务器增加额外的CPU,或者关闭很多等待处理资源的各种组件,以减少CPU资源的浪费。
2) 当内存分页时,如果内存容量不足,最好的方法就是增加更多的内存,减小SGA的大小,或者关闭Oracle多线程服务器,以提高数据库系统的运行效率。
2 SQL优化基本规则
1) 在对大表进行全表搜索时,为了避免不必要的全表搜素而导致的大量I/O操作,最常见的调优方法是适量增加索引,加快查询的速度,以提高数据库运行的效率。
2) 保证最优的索引使用,对于改善查询的速度和提高数据库的性能是至关重要的。在某些情况下也可以选择多个索引进行查询,还包括位图索引和基于函数索引的使用。
3 SQL使用规范
1) 尽量避免使用游标。因为游标的效率较差,如果游标操作的数据超过1W行,那么就应该采用其他的方法:如果使用了游标,还要尽量避免在游标循环中再进行表连接的操作。
2) 不要在where子句中的”=”左边进行函数、算术运算或其他表达式运算,否则数据库系统可能无法正常使用索引。
3) 尽量使用exists代替select count(*)语句来判断表中是否存在满足条件的记录。Count函数只有统计表中所有行数时才使用,而且count(1)或count(‘X’)比count(*)更有效率。
4) 注意表之间关联字段的数据类型,避免使用不同类型的字段作为关联条件进行多表连接。
4 索引使用规范
1) 索引的创建要与实际应用情况结合考虑,建议大的联机事务处理系统(OLTP)表最好不要超过