当数据库变慢时的解决方法有哪些.docx
- 文档编号:11781367
- 上传时间:2023-04-01
- 格式:DOCX
- 页数:6
- 大小:17.86KB
当数据库变慢时的解决方法有哪些.docx
《当数据库变慢时的解决方法有哪些.docx》由会员分享,可在线阅读,更多相关《当数据库变慢时的解决方法有哪些.docx(6页珍藏版)》请在冰豆网上搜索。
当数据库变慢时的解决方法有哪些
当数据库变慢时的解决方法有哪些
当数据库变慢时的解决方法有哪些加城,本文测重于Unix环境。
第一章检查系统的状态
通过操作系统的一些工具检查系统的状态,比方CPU、内存、交换、磁盘的利用率,根据经历或与系统正常时的状态相比对,有时系统外表上看起来看空闲,这可以能不是一个正常的状态,由于cpu可能正等待IO的完成。
除此之外,还应观注那些占用系统资源(cpu、内存)的进程。
1.1使用sar来检查操作系统能否存在IO问题
#sar-u210--即每隔2秒检察一次,共执行20次。
结果示例:
注:
在redhat下,%system就是所谓的%wio。
Linux2.4.21-20.ELsmp(YY075)05/19/2005
10:
36:
07AMCPU%user%nice%system%idle
10:
36:
09AMall0.000.000.1399.87
10:
36:
11AMall0.000.000.00100.00
10:
36:
13AMall0.250.000.2599.49
10:
36:
15AMall0.130.000.1399.75
10:
36:
17AMall0.000.000.00100.00
其中:
%usr指的是用户进程使用的cpu资源的百分比;
%sys指的是系统资源使用cpu资源的百分比;
%wio指的是等待io完成的百分比,这是值得观注的一项;
%idle即空闲的百分比。
假如wio列的值很大,如在35%以上,讲明系统的IO存在瓶颈,CPU花费了很大的时间去等待I/O的完成。
Idle很小讲明系统CPU很忙。
像以上的示例,能够看到wio平均值为11,讲明I/O没什么十分的问题,而idle值为零,讲明cpu已经满负荷运行了。
当系统存在IO问题时,能够从下面几个方面解决:
联络相应的操作系统的技术支持对这方面进行优化,比方hp-ux在划定卷组时的条带化等方面。
查找Oracle中不合理的sql语句,对其进行优化;
对Oracle中访问量频繁的表除合理建索引外,再就是把这些表分表空间存放以免访问上产生热门,再有就是对表合理分区。
1.2关注内存
常用的工具便是vmstat,对于hp-unix来讲,能够用glance。
Aix来讲能够用topas。
当发现vmstat中pi列非零,memory中的free列的值很小,glance、topas中内存的利用率多于80%时,这时讲明内存方面应该调节一下。
方法大体有下面几项:
划给Oracle使用的内存不要超过系统内存的1/2,一般保在系统内存的40%为益。
为系统增加内存;
假如你的连接十分多,能够使用MTS的方式;
打全补丁,防止内存漏洞。
1.3找到使用资源十分大的Oracle的session及其执行的语句
Hp-unix能够用glance或top。
IBMAIX能够用topas。
此外能够使用ps的命令。
通过这些程序能够找到点用系统资源十分大的这些进程的进程号,就能够通过下面的sql语句发现这个pid正在执行哪个sql,这个sql最好在pl/sqldeveloper、toad等软件中执行:
SELECTa.username,a.machine,a.program,a.sid,a.serial#,a.status,
c.piece,c.sql_text
FROMv$sessiona,v$processb,v$sqltextc
WHEREb.spid=ORCL
ANDb.addr=a.paddr
ANDa.sql_address=c.address(+)
ORDERBYc.piece;
能够把得到的这个sql分析一下,看一下它的执行计划能否走索引。
对其优化避免全表扫描,以减少IO等待,进而加快语句的执行速度。
提示:
在做优化sql时,经常碰到使用in的语句,这时一定要用exists把它给换掉,由于Oracle在处理In时是按Or的方式做的,即便使用了索引也会很慢。
比方:
SELECTcol1,col2,col3FROMtable1a
WHEREa.col1NOTIN(SELECTcol1FROMtable2)
能够换成:
SELECTcol1,col2,col3FROMtable1a
WHERENOTEXISTS
(SELECTxFROMtable2bWHEREa.col1=b.col1)
1.4查找前十条性能差的sql语句
SELECT*FROM(SELECTparsing_user_id,executions,sorts,command_type,
disk_reads,sql_textFROMv$sqlarea
ORDERBYdisk_readsDESC)
WHEREROWNUM
第二章检查会话状态
要快速发现OracleServer的性能问题的原因,能够求助于v$session_wait视图,看系统的这些session在等什么,使用了多少的IO。
下面是参考脚本:
--脚本讲明:
查看占I/O较大的正在运行的session:
SELECTse.sid,se.serial#,pr.spid,se.username,se.status,se.terminal,
se.program,se.module,se.sql_address,st.event,st.p1text,
si.physical_reads,si.block_changes
FROMv$sessionse,v$session_waitst,v$sess_iosi,v$processpr
WHEREst.sid=se.sidANDst.sid=si.sid
ANDse.PADDR=pr.ADDR
ANDse.sid6
ANDst.wait_time=0
ANDst.eventNOTLIKE%SQL%
ORDERBYphysical_readsDESC;
对检索出的结果的几点讲明:
1.以上是按每个正在等待的session已经发生的物理读排的序,由于它与实际的I/O相关。
2.能够看一下这些等待的进程都在忙什么,语句能否合理?
SELECTsql_addressFROMv$sessionWHEREsid=;
SELECT*FROMv$sqltextWHEREaddress=;
执行以上两个语句便能够得到这个session的语句。
也以用altersystemkillsessionsid,serial#把这个session杀掉。
3.应观注一下event列,这是调优的关键一列,下面对常出现的event做以扼要的讲明:
1)bufferbusywaits,freebufferwaits这两个参数所标识是dbwr能否够用的问题,与IO很大相关的,当v$session_wait中的freebufferwait的条目很小或没有时,讲明系统的dbwr进程决对够用,不用调整;freebufferwait的条目很多,系统感觉起来一定很慢,这时讲明dbwr已经不够用了,它产生的wio已经成为数据库性能的瓶颈,这时的解决办法如下:
增加写进程,同时要调整db_block_lru_latches参数:
示例:
修改或添加如下两个参数
db_writer_processes=4
db_block_lru_latches=8
开异步IO。
IBM这方面简单得多,hp则费事一些,能够与Hp工程师联络。
2)dbfilesequentialread,指的是顺序读,即全表扫描,这也是应尽量减少的部分,解决方法就是使用索引、sql调优,同时能够增大db_file_multiblock_read_count这个参数。
3)dbfilescatteredread参数指的是通过索引来读取,同样能够通过增加db_file_multiblock_read_count这个参数来提高性能。
4)latchfree与栓相关,需要专门调节。
5)其他参数能够不十分观注
补充:
解决系统变慢的常用技巧方法
1、在我的电脑窗口,右击要清理的盘符―属性―清理磁盘--勾选要删除的文件--确定--是。
2、右键阅读器e――属性――点2个删除1个去除(都要逐一确定)――确定。
3、把C:
\WINDOWS\Prefetch(预读文件)把里面的文件全部删除
4、用优化大师或超级兔子清理注册表和垃圾文件。
5、开场――运行中输入msconfig――确定――启动――除了输入法ctfmon以外的勾全去掉。
6、右键我的电脑――属性――点高级――点启动和故障恢复中的设置――去掉所有的勾――写入调试信息选择无――确定――点高级下面错误报告――点禁用――2次确定。
7、开场..打开控制面板中的文件夹选项..点查看..点去末项自动搜索文件夹前面的勾..确定。
8、右键我的电脑――属性――硬件――设备管理器――双击IDE控制器――次要通道――高级设置――传送形式都选DMA――设备类型选无――确定――主要通道也同样设置――确定。
9、右键C盘进行磁盘清理和其它选项中的系统复原清理。
10、删除不用的程序软件。
当数据库变慢时的解决方法有哪些
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 变慢时 解决方法 哪些