目前很多应用处理的数据量越来越大,对于数据库的优化对于系统性能提升有着重要的作用,但是日常中发现很多人对数据库优化不太重视,其实目前任何数据库其优化的思路是相同的,这里以oracle为例。
时刻不忘:CPU 、MEM、 IO(主要指磁盘)同时得到充分应用。性能问题就是要解决此三者间的矛盾!
一、得到Oracle运行报告
•sqlplus"/as sysdba"
•@?/rdbms/admin/awrrpt.sql
二、得到读IO最多的Top N
•selectdisk_reads,sql_text
•from(select sql_text,disk_reads,
• dense_rank() over
• (order by disk_reads desc) disk_reads_rank
• from v$sql)
•wheredisk_reads_rank<=5;
•但没有disk_writes字段:为什么呢?
•原因很简单:写也是需要读的。读是有方法的,优化的关键之一就是搜索算法----IO减少读。
三、表空间查看
•SELECTA.TABLESPACE_NAME,A.BYTES TOTAL,B.BYTES USED, C.BYTES FREE,
•(B.BYTES*100)/A.BYTES "% USED"
• FROM SYS.SM$TS_AVAIL A,SYS.SM$TS_USEDB,SYS.SM$TS_FREE C
•WHEREA.TABLESPACE_NAME=B.TABLESPACE_NAME AND A.TABLESPACE_NAME=C.TABLESPACE_NAME
IDC就有人把表从一个空间移动到另一个空间,执行速度直接就加快20倍以上
四、
CPU
占用
•selectOSUSER,PROGRAM,USERNAME,SCHEMANAME,B.Cpu_Time,STATUS,B.SQL_TEXT fromV$SESSION A LEFT JOIN V$SQL B ON A.SQL_ADDRESS=B.ADDRESS ANDA.SQL_HASH_VALUE=B.HASH_VALUE order by status, b.cpu_time desc
五、对系统性能有关键作用:
Oracle
系统参数调整
•Altersystem set Pga_aggregate_targe=4G
•Altersystem set sga_max_size =16G
•Altersystem set sga_target=12G
•Altersystem set sort_area_size=2G
•详细作用请自行找查学习了解