对使用数据库通常有3个要求:性能好,数据一致性有保障,数据安全可靠。数据库优化的前提也是这3个要求。有一句玩笑叫做“少做少错,不做不错。”DB优化的思路就是少做:减少请求次数,减少数据传输量,减少运算量(查询,排序,统计)。
以Oracle为例,大体从下面几个方向进行优化。
1>优化物理结构。数据库逻辑设计与物理设计要科学高效,例如分区设置,索引建立,字段类型及长短,沉余设计等。
2>共享SQL,绑定变量,降低高水位。
共享SQL,绑定变量旨在减少SQL语句的编译分析分析时间;降低高水位旨在减少遍历范围,提高查询效率。
3>优化查询器。特殊情况下优化执行计划,指定的执行计划加快查询速度。例如连接查询时指定驱动表,减少表的扫描次数。
4>优化单条SQL。对单条SQL进行优化分析,例如查询条件选择索引列。
5>并行SQL。对数据量巨大的表的数据遍历,用多少个线程分块处理任务。
6>减少资源争用(锁,缓存等)。可以提高IO效率,减少响应时间,从而降低吞吐量来缓解争用,例如用缓存,可以用物理拆分把热点数据分布在不同表空间。
7>优化内存,减少物理IO访问。
SGA(缓存高频访问数据),例如我们把客户信息加载到内存中。
PGA(排序,散列)
AMM(自动内存管理)人工干预
优化IO,进行条带化,读写分离,减少热点等。
注意:
单系统性能分析的思路是通过现象结合监控锁定性能问题(程序,配置,IO等)。
单系统性能调优的思路是减少资源占用,减少请求。
阅读后若有收获,不吝关注,分享,在看等操作!!!