日期: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)表最好不要超过