如何监控oracle的索引是否使用.docx_第1页
如何监控oracle的索引是否使用.docx_第2页
如何监控oracle的索引是否使用.docx_第3页
如何监控oracle的索引是否使用.docx_第4页
如何监控oracle的索引是否使用.docx_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

如何监控oracle的索引是否使用 很多软件开发过程中,没有注意合理规划索引,造成一个表上有N多个索引,为后续的维护和优化带来麻烦。因此有时候需要监控已有的索引是否在使用,oracle提供了监控索引是否使用的工具,很简单,简要介绍一下。首先,我们如果是监控一个表上的所有索引,可以这样先生成监控的命令:SQL select alter index |index_name| monitoring usage; from user_indexes where table_name=upper(mpaymentappl);ALTERINDEX|INDEX_NAME|MONITORINGUSAGE;-alter index IDX_MPAYMENTAPPL_BCODE monitoring usage;alter index MPAYMENTAPPL_FLAGS monitoring usage;alter index MPAYMENTAPPL_PAICODE monitoring usage;然后执行这些脚本就开始监控了,监控信息可通过V$OBJECT_USAGE查看,通过used列可知道这个索引是否被使用:SQL select * from V$OBJECT_USAGE;INDEX_NAME TABLE_NAME MON USE START_MONITORING END_MONITORING- - - - - -IDX_MPAYMENTAPPL_BCODE MPAYMENTAPPL YES NO 03/24/2010 10:55:27MPAYMENTAPPL_FLAGS MPAYMENTAPPL YES NO 03/24/2010 10:55:27MPAYMENTAPPL_PAICODE MPAYMENTAPPL YES NO 03/24/2010 10:55:28取消监控某个索引:SQL ALTER INDEX MPAYMENTAPPL_FLAGS NOMONITORING USAGE;Index altered.SQL select * from V$OBJECT_USAGE2 /INDEX_NAME TABLE_NAME MON USE START_MONITORING END_MONITORING- - - - - -IDX_MPAYMENTAPPL_BCODE MPAYMENTAPPL YES NO 03/24/2010 10:55:27MPAYMENTAPPL_FLAGS MPAYMENTAPPL NO NO 03/24/2010 10:55:27 03/24/2010 10:57:19MPAYMENTAPPL_PAICODE MPAYMENTAPPL YES NO 03/24/2010 10:55:28那些持续关注一定时间没有使用的索引就可以删除了,以提高DML操作效率实际工作中,我们可以选择暂时禁用索引功能,来提高数据表插入、修改效率。因为,在索引起作用的情况下,大量数据的DML操作会带来很多的索引更新和Redo Log的生成。这在批量数据加载的时候是不需要的。所以,可以暂时禁用索引。/Oracle常用监控SQL2012-06-14 11:39:34|分类:oracle技术|举报|字号订阅1.监控事例的等待:select event,sum(decode(wait_time,0,0,1) prev, sum(decode(wait_time,0,1,0) curr,count(*) from v$session_wait group by event order by 4;2.回滚段的争用情况:select name,waits,gets,waits/gets ratio from v$rollstat a,v$rollname b where a.usn=b.usn;3.监控表空间的I/O比例:select df.tablespace_name name,df.file_name ile,f.phyrds pyr,f.phyblkrd pbr,f.phywrts pyw,f.phyblkwrt pbwfrom v$filestat f,dba_data_files dfwhere f.file#=df.file_id4.监空文件系统的I/O比例:select substr(a.file#,1,2) #,substr(,1,30) name,a.status,a.bytes,b.phyrds,b.phywrtsfrom v$datafile a,v$filestat bwhere a.file#=b.file#5.在某个用户下找所有的索引:select user_indexes.table_name, user_indexes.index_name,uniqueness,column_namefrom user_ind_columns, user_indexeswhere user_ind_columns.index_name = user_indexes.index_nameand user_ind_columns.table_name = user_indexes.table_nameorder by user_indexes.table_type, user_indexes.table_name,user_indexes.index_name, column_position;6. 监控 SGA 的命中率select a.value + b.value logical_reads, c.value phys_reads,round(100 * (a.value+b.value)-c.value) / (a.value+b.value) BUFFER HIT RATIOfrom v$sysstat a, v$sysstat b, v$sysstat cwhere a.statistic# = 38 and b.statistic# = 39and c.statistic# = 40;7. 监控 SGA 中字典缓冲区的命中率select parameter, gets,Getmisses , getmisses/(gets+getmisses)*100 miss ratio,(1-(sum(getmisses)/ (sum(gets)+sum(getmisses)*100 Hit ratiofrom v$rowcachewhere gets+getmisses 0group by parameter, gets, getmisses;8. 监控 SGA 中共享缓存区的命中率,应该小于1%select sum(pins) Total Pins, sum(reloads) Total Reloads,sum(reloads)/sum(pins) *100 libcachefrom v$librarycache;select sum(pinhits-reloads)/sum(pins) hit radio,sum(reloads)/sum(pins)reload percentfrom v$librarycache;9. 显示所有数据库对象的类别和大小select count(name) num_instances ,type ,sum(source_size) source_size ,sum(parsed_size) parsed_size ,sum(code_size) code_size ,sum(error_size)error_size,sum(source_size) +sum(parsed_size) +sum(code_size) +sum(error_size)size_requiredfrom dba_object_sizegroup by type order by 2;10. 监控 SGA 中重做日志缓存区的命中率,应该小于1%SELECT name, gets, misses, immediate_gets, immediate_misses,Decode(gets,0,0,misses/gets*100) ratio1,Decode(immediate_gets+immediate_misses,0,0,immediate_misses/(immediate_gets+immediate_misses)*100) ratio2FROM v$latch WHERE name IN (redo allocation, redo copy);11. 监控内存和硬盘的排序比率,最好使它小于 .10,增加 sort_area_sizeSELECT name, value FROM v$sysstat WHERE name IN (sorts (memory),sorts (disk);12. 监控当前数据库谁在运行什么SQL语句SELECT osuser, username, sql_text from v$session a, v$sqltext bwhere a.sql_address =b.address order by address, piece;13. 监控字典缓冲区SELECT (SUM(PINS - RELOADS) / SUM(PINS) LIB CACHE FROMV$LIBRARYCACHE;SELECT (SUM(GETS - GETMISSES - USAGE - FIXED) / SUM(GETS) ROWCACHE FROM V$ROWCACHE;SELECT SUM(PINS) EXECUTIONS, SUM(RELOADS) CACHE MISSESWHILE EXECUTING FROM V$LIBRARYCACHE;后者除以前者,此比率小于1%,接近0%为好。SELECT SUM(GETS) DICTIONARY GETS,SUM(GETMISSES)DICTIONARY CACHE GET MISSESFROM V$ROWCACHE14. 找ORACLE字符集select * from ps$ where name=NLS_CHARACTERSET;15. 监控 MTSselect busy/(busy+idle) shared servers busy from v$dispatcher;此值大于0.5时,参数需加大select sum(wait)/sum(totalq) ispatcher waits from v$queue wheretype=dispatcher;select count(*) from v$dispatcher;select servers_highwater from v$mts;servers_highwater接近mts_max_servers时,参数需加大16. 碎片程度select tablespace_name,count(tablespace_name) from dba_free_spacegroup by tablespace_namehaving count(tablespace_name)10;alter tablespace name coalesce;alter table name deallocate unused;create or replace view ts_blocks_v asselect tablespace_name,block_id,bytes,blocks,free space segment_namefrom dba_free_spaceunion allselect tablespace_name,block_id,bytes,blocks,segment_name fromdba_extents;select * from ts_blocks_v;select tablespace_name,sum(bytes),max(bytes),count(block_id) fromdba_free_spacegroup by tablespace_name;查看碎片程度高的表SELECT segment_name table_name , COUNT(*) extentsFROM dba_segments WHERE owner NOT IN (SYS, SYSTEM) GROUP BYsegment_nameHAVING COUNT(*) = (SELECT MAX( COUNT(*) ) FROM dba_segmentsGROUP BY segment_name);17. 表、索引的存储情况检查select segment_name,sum(bytes),count(*) ext_quan from dba_extentswheretablespace_name=&tablespace_name and segment_type=TABLE group bytablespace_name,segment_name;select segment_

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论