Oracle性能监控常用基础脚本

1. 检测数据库中的事件和等待 SELECT event, total_waits, total_timeouts,time_waited, average_wait FROM v$syste

1. 检测数据库中的事件和等待

       SELECT event, total_waits, total_timeouts,time_waited, average_wait

       FROM v$system_event

2. 查询会话中的事件和等待时间

       select sid, event, total_waits,average_wait

       from v$session_event where sid=10;     

3. 查询等待进程 

       SELECT sid, seq#, event, wait_time, state

       FROM v$session_wait;

4. 监控全局区的性能 

       select * from v$sgastat;

5. 查询命中率

       select gethitratio

       from v$librarycache

       where namespace = ‘SQL AREA’;

6. 当前 sql 语句

       select sql_text, users_executing,

       executions, loads

       from v$sqlarea;

7. 查询高速缓存中的命中率

       select sum(pins) “Executions”, sum(reloads) “Cache Misses”,

       sum(reloads)/sum(pins)

       from v$librarycache;

8. 查询全局字典中的有效装载次数

       select namespace,pins,reloads,invalidations

       from v$librarycache;

9. 回滚段的争用情况

    select name, waits, gets, waits/gets “Ratio”

    from v$rollstat a, v$rollname b

    where a.usn = b.usn;

10. 监控表空间的 I/O 比例

   select df.tablespace_name name,df.file_name “file”,f.phyrds pyr,

    f.phyblkrd pbr,f.phywrts pyw, f.phyblkwrt pbw

    from v$filestat f, dba_data_files df

    where f.file# = df.file_id

    order by df.tablespace_name;

11. 监控文件系统的 I/O 比例

   select substr(a.file#,1,2) “#”, substr(a.name,1,30) “Name”,

    a.status, a.bytes, b.phyrds, b.phywrts

    from v$datafile a, v$filestat b

    where a.file# = b.file#;

12. 在某个用户下找所有的索引

    select user_indexes.table_name, user_indexes.index_name,uniqueness, column_name

    from user_ind_columns, user_indexes

    where user_ind_columns.index_name = user_indexes.index_name

    and user_ind_columns.table_name = user_indexes.table_name

    order by user_indexes.table_type, user_indexes.table_name,

user_indexes.index_name, column_position;

13. 监控 SGA 中字典缓冲区的命中率

    select parameter, gets,Getmisses , getmisses/(gets+getmisses)*100 “miss ratio”,

    (1-(sum(getmisses)/ (sum(gets)+sum(getmisses))))*100 “Hit ratio”

    from v$rowcache

    where gets+getmisses 0

    group by parameter, gets, getmisses;

14. 监控 SGA 中共享缓存区的命中率,,应该小于 1%

    select sum(pins) “Total Pins”, sum(reloads) “Total Reloads”,

    sum(reloads)/sum(pins) *100 libcache

    from v$librarycache;

    select sum(pinhits-reloads)/sum(pins) “hit radio”,sum(reloads)/sum(pins) “reload percent”

    from v$librarycache;

15. 显示所有数据库对象的类别和大小

    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_required

    from dba_object_size

    group by type order by 2;

16. 监控 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) ratio2

    FROM v$latch WHERE name IN (‘redo allocation’, ‘redo copy’);

17. 监控内存和硬盘的排序比率,最好使它小于 .10 ,增加 sort_area_size

SELECT name, value FROM v$sysstat WHERE name IN (‘sorts (memory)’, ‘sorts (disk)’);

18. 监控字典缓冲区

select (sum(pins – reloads)) / sum(pins) “lib cache” from v$librarycache;

    select (sum(gets – getmisses – usage – fixed)) / sum(gets) “row cache” from v$rowcache;

select sum(pins) “executions”, sum(reloads) “cache misses while executing” from v$librarycache;

后者除以前者 , 此比率小于 1%, 接近 0% 为好

select sum(gets) “dictionary gets”,sum(getmisses) “dictionary cache get misses”

from v$rowcache

19. 找 Oracle 字符集

   select * from sys.props$ where;

20. 监控 MTS

    select busy/(busy+idle) “shared servers busy” from v$dispatcher;

    此值大于 0.5 时,参数需加大

   select sum(wait)/sum(totalq) “dispatcher waits” from v$queue where type=’dispatcher’;

    select count(*) from v$dispatcher;

    select servers_highwater from v$mts;

    servers_highwater 接近 mts_max_servers 时,参数需加大

21. 碎片程度

   select tablespace_name,count(tablespace_name) from dba_free_space group by tablespace_name

    having count(tablespace_name)>10;

    alter tablespace name coalesce;

    alter table name deallocate unused;

    create or replace view ts_blocks_v as

    select tablespace_name,block_id,bytes,blocks,’free space’ segment_name from dba_free_space

    union all

    select tablespace_name,block_id,bytes,blocks,segment_name from dba_extents;

    select * from ts_blocks_v;

    select tablespace_name,sum(bytes),max(bytes),count(block_id) from dba_free_space

    group by tablespace_name;

    查看碎片程度高的表

   SELECT segment_name table_name , COUNT(*) extents

    FROM dba_segments WHERE owner NOT IN (‘SYS’, ‘SYSTEM’) GROUP BY segment_name

    HAVING COUNT(*) = (SELECT MAX( COUNT(*) ) FROM dba_segments GROUP BY segment_name);

22. 表、索引的存储情况检查

    select segment_name,sum(bytes),count(*) ext_quan from dba_extents where

tablespace_name=’&tablespace_name’ and segment_type=’TABLE’ group by tablespace_name,segment_name;

    select segment_name,count(*) from dba_extents where segment_type=’INDEX’ and owner=’&owner’

    group by segment_name;

23 、找使用 CPU 多的用户 session

    12 是 cpu used by this session

    select a.sid,spid,status,substr(a.program,1,40) prog,a.terminal,oSUSEr,value/60/100 value

    from v$session a,v$process b,v$sesstat c

    where c.statistic#=12 and c.sid=a.sid and a.paddr=b.addr order by value desc;

linux

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/1959187.html

(0)
上一篇 2025年2月23日 04:39:08
下一篇 2025年2月23日 04:39:26

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • 在创建交叉表查询时,列标题字段的值显示在交叉表的位置是什么?

    在创建交叉表查询时,列标题字段的值显示在交叉表的位置是:第一行。交叉表查询是将来源于某个表中的字段进行分组,一组列在数据表左侧作为交叉表的行字段,另一组列在数据表的顶端作为交叉表的列字段。 在创建交叉表查询时,用户需要指定3种字段: 一是放…

    2025年2月23日
    100
  • 用于实现数据库各种数据操作的软件是什么?

    用于实现数据库各种数据操作的软件是:数据库管理系统;数据库管理系统能直接操作数据库中的数据。数据库管理系统是一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库;它对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。 数据库管…

    2025年2月23日
    100
  • 对数据库物理存储方式的描述称为什么?

    对数据库物理存储方式的描述称为“内模式”。内模式给出了数据库物理存储结构与物理存取方法,如数据存储的文件结构、索引、集簇及hash等存取方式与存取路径,内模式的物理性主要体现在操作系统及文件级上。  内模式(Internal Schema)…

    2025年2月23日
    100
  • 介绍十步完全理解 SQL

    sql栏目介绍十步完全理解 sql的技巧 推荐(免费):SQL 很多程序员视 SQL 为洪水猛兽。SQL 是一种为数不多的声明性语言,它的运行方式完全不同于我们所熟知的命令行语言、面向对象的程序语言、甚至是函数语言(尽管有些人认为 SQL …

    2025年2月23日
    100
  • 不许不会的 SQL 优化极简法则

    sql教程 作为关系型数据库的标准语言,是it从业人员必不可少的技能之一。sql 本身并不难学,编写查询语句也很容易,但是想要编写出能够高效运行的查询语句却有一定的难度。 推荐(免费):SQL教程 查询优化是一个复杂的工程,涉及从硬件到参数…

    2025年2月23日
    100
  • 数据库中ole对象是什么

    数据库中ole对象是桌面应用程序集成,而且还定义和实现了一种允许应用程序作为软件“对象”(数据集合和操作数据的函数)彼此进行“连接”的机制,这种连接机制和协议称为部件对象模型,简称COM。 本教程操作环境:windows7系统、Micros…

    2025年2月23日
    100
  • 因为一条sql语句产生了自我怀疑!

     故事是这样开始的 在一个月黑风高的夜晚 现场报过来,本该打到新服务的流量,又走到了老服务,老服务的功能不健全,很可能会让现场的用户不能支付。 需要说明一点的是,任何一个从老服务改造到新服务的时候,都不是完全把流量切过去,都需要经过一点时间…

    2025年2月23日
    100
  • 数据库分库分表,何时分?怎样分?

    一. 数据切分 关系型数据库本身比较容易成为系统瓶颈,单机存储容量、连接数、处理能力都有限。当单表的数据量达到1000W或100G以后,由于查询维度较多,即使添加从库、优化索引,做很多操作时性能仍下降严重。此时就要考虑对其进行切分了,切分的…

    2025年2月23日 数据库
    100
  • navicat premium怎么上传数据库

    首先,在Navicat Premium中连接要导出数据库的mysql数据库。 填写好连接数据库的信息后就可以连接到需要导出的数据库了。 打开要导出的数据库。 将数据库的结构和数据导出为SQL文件。 相关推荐:《Navicat for mys…

    2025年2月23日 数据库
    100
  • navicat怎么打开数据库

    1、打开Navicat,点击左上角的‘Conection’按钮。 2、点击后,弹出菜单,我们要选择是哪种类型的数据库,根据你本地部署的数据库类型来选就行了,我这里选择MySql。 3、选择后,弹出窗口,在这个窗口上我们先输入数据库的Host…

    2025年2月23日 数据库
    100

发表回复

登录后才能评论