经常使用的Oracle监控语句(轉)

本文提供了常用的Oracle监控语句,包括查询操作系统PID、会话信息、等待事件、SQL执行情况等,帮助用户诊断和优化系统性能。

经常使用的Oracle监控语句

轉自http://blog.sina.com.cn/s/blog_546147830100ae2c.html

 

 

--根据FILE_ID & BLOCK_ID获得对象名称
SELECT owner, segment_name, segment_type
  FROM dba_extents
 WHERE file_id = &file_id
   AND &block_id BETWEEN block_id AND block_id + blocks - 1;

--
根据操作系统PID,查询SESSION信息
SELECT a.sid, a.serial#, b.spid, a.terminal, a.machine, a.program, a.osuser
  FROM v$session a, v$process b
 WHERE a.paddr = b.addr AND b.spid = '&SPID';

--
根据SESSION SID,查询操作系统PID
SELECT a.sid, a.serial#, b.spid, a.terminal, a.machine, a.program, a.osuser
  FROM v$session a, v$process b
 WHERE a.paddr = b.addr AND a.sid = '&SID';

--
查询用户正在执行的SQL
SELECT sql_text
  FROM v$sqltext
 WHERE hash_value = (SELECT sql_hash_value
                       FROM v$session
                      WHERE sid = &sid)
 ORDER BY piece;

--
查询当前的系统等待事件
SELECT *
  FROM v$session_wait
 WHERE event NOT LIKE '%SQL*Net%'
   AND event NOT LIKE '%rdbms%'
   AND event NOT LIKE '%timer%'
   AND event NOT LIKE '%jobq%'
 ORDER BY event, seconds_in_wait;

--
查询详细的当前系统等待事件
SELECT s.sid, s.username, w.seq#, w.event, w.p1text, w.p1, w.p2text, w.p2, w.p3text, w.p3,
       w.seconds_in_wait, w.state, s.logon_time, s.osuser, s.program
  FROM v$session s, v$session_wait w
 WHERE s.sid = w.sid
   AND w.event NOT LIKE '%SQL*Net%'
   AND w.event NOT LIKE '%rdbms%'
   AND w.event NOT LIKE '%timer%'
   AND w.event NOT LIKE '%jobq%'
 ORDER BY w.event, w.seconds_in_wait;

--
查询等待db file sequential/scattered readSession正在执行的SQL
SELECT s.sid, s.username, t.hash_value, t.piece, t.sql_text
  FROM v$session s, v$session_wait w, v$sqltext t
 WHERE s.sid = w.sid
   AND s.sql_hash_value = t.hash_value
   AND w.event IN ('db file sequential read', 'db file scattered read')
 ORDER BY s.sid, t.piece;

--
查询等待db file sequential/scattered read对应的数据库对象
SELECT s.sid, s.username, w.seq#, w.event,
       d.segment_type, d.owner || '.' || d.segment_name AS segment_name,
       w.seconds_in_wait, w.state, s.logon_time
  FROM v$session s, v$session_wait w, dba_extents d
 WHERE s.sid = w.sid
   AND d.file_id = w.p1
   AND w.p2 BETWEEN d.block_id AND d.block_id + d.blocks - 1
   AND w.event IN ('db file sequential read', 'db file scattered read')
 ORDER BY w.event, segment_name;

--
查询导致LOCKSID,SPID,LOCKED_OBJECT,LOCK_TYPE等信息
SELECT
       l.sid, p.spid, s.username,s.logon_time, s.osuser, s.program, l.type,
       CASE l.TYPE WHEN 'TM' THEN O.object_name WHEN 'TX' THEN '' END as OBJECT_NAME,
       DECODE (l.lmode, 0, '0=NONE', 1, '1=NULL', 2, '2=RS', 3, '3=RX', 4, '4=S', 5, '5=SRX', 6, '6=X') lmode,
       CASE l.request WHEN 0 THEN '' ELSE 'BLOCKED BY ' || l.id2 END as BLOCKED,
       CASE l.block WHEN 0 THEN '' ELSE l.id2 || ' IS BLOCKING' END as BLOCKING,
       l.request, l.ctime
  FROM v$lock l, v$session s, dba_objects o, v$process p
 WHERE l.type in ('TX', 'TM')
   AND s.paddr = p.addr
   AND l.sid = s.sid
   AND l.id1 = o.object_id(+)
 ORDER BY s.username, l.sid, l.ctime;

--
查询导致DDL LOCK的详细信息
SELECT s.sid, p.spid, s.username, a.owner || '.' || a.NAME AS OBJECT_NAME,
       a.TYPE, a.mode_held, a.mode_requested, s.osuser, s.logon_time, s.program
  FROM dba_ddl_locks a, v$session s, v$process p
 WHERE s.sid = a.session_id
   AND s.paddr = p.addr
   AND (a.mode_held = 'Exclusive' OR a.mode_requested = 'Exclusive')
 ORDER BY s.USERNAME, a.NAME;

--
查询事务使用的回滚段
SELECT s.username, s.sid, s.serial#, t.ubafil "UBA filenum",
       t.ubablk "UBA Block number", t.used_ublk "Number of undo Blocks Used",
       t.start_time, t.status, t.start_scnb, t.xidusn rollid, r.name rollname
  FROM v$session s, v$transaction t, v$rollname r
 WHERE s.saddr = t.ses_addr AND t.xidusn = r.usn;
####################################################################################################


--
查询LIBRARY CACHE PIN等待事件等待的对象
--
视图缩写:[K]ernel [G]eneric [L]ibrary Cache Manager [OB]ject
SELECT addr, kglhdadr, kglhdpar, kglnaobj, kglnahsh, kglhdobj
  FROM x$kglob
 WHERE kglhdadr IN (SELECT p1raw
                      FROM v$session_wait
                     WHERE event LIKE '%library%');

--
查询LIBRARY CACHE PIN等待事件中持有被等待对象的SESSION信息
--
视图缩写:[K]ernel [G]eneric [L]ibrary Cache Manager Object [P]i[N]s
SELECT a.SID, a.username, a.program, b.addr, b.kglpnadr, b.kglpnuse,
       b.kglpnses, b.kglpnhdl, b.kglpnlck, b.kglpnmod, b.kglpnreq
  FROM v$session a, x$kglpn b
 WHERE a.saddr = b.kglpnuse
   AND b.kglpnmod <> 0
   AND b.kglpnhdl IN (SELECT p1raw
                        FROM v$session_wait
                       WHERE event LIKE '%library%');

--
查询LIBRARY CACHE PIN等待事件中持有被等待对象的SESSION执行的SQL语句
SELECT sql_text
  FROM v$sqlarea
 WHERE (v$sqlarea.address, v$sqlarea.hash_value) IN (
          SELECT sql_address, sql_hash_value
            FROM v$session
           WHERE SID IN (
                    SELECT SID
                      FROM v$session a, x$kglpn b
                     WHERE a.saddr = b.kglpnuse
                       AND b.kglpnmod <> 0
                       AND b.kglpnhdl IN (SELECT p1raw
                                            FROM v$session_wait
                                           WHERE event LIKE '%library%')));

--
查询哪个SESSION正在使用某个对象(LIBRARY CACHE)
SELECT DISTINCT s.sid,
                s.username,
                s.logon_time,
                s.osuser,
                s.program,
                b.kglnahsh as SQL_HASH_VALUE,
                b.kglnaobj as SQL_TEXT
  FROM v$session s, x$kglpn n, x$kglob b
 WHERE n.kglpnuse = s.saddr
   AND upper(b.kglnaobj) LIKE upper('%&OBJECT_NAME%')
   AND n.kglpnhdl = b.kglhdadr;

--
查询V$SESSION_WAIT用户PIN住了哪些对象(LIBRARY CACHE)
SELECT DISTINCT s.sid,
                s.username,
                s.logon_time,
                s.osuser,
                s.program,
                n.kglpnmod,
                b.kglnahsh AS SQL_HASH_VALUE,
                b.kglnaobj AS SQL_TEXT
  FROM v$session s, x$kglpn n, x$kglob b
 WHERE n.kglpnuse = s.saddr
   AND n.kglpnhdl = b.kglhdadr
   AND s.sid IN (SELECT sid
                   FROM v$session_wait
                  WHERE event NOT LIKE '%SQL*Net%'
                    AND event NOT LIKE '%rdbms%'
                    AND event NOT LIKE '%timer%'
                    AND event NOT LIKE '%jobq%')
 ORDER BY s.username;

--
查询哪些大对象被载入SHARED POOL时导致其它对象被老化
SELECT s.sid, s.username, s.logon_time, s.osuser, s.program,
       k.ksmlrcom, k.ksmlrsiz, k.ksmlrnum, k.ksmlrhon, k.ksmlrses
  FROM x$ksmlru k, v$session s
 WHERE s.saddr = k.ksmlrses
   AND ksmlrsiz > 0;
####################################################################################################


--
查询Schema哪些表是全表扫描
SELECT o.name, x.tch
  FROM obj$ o, x$bh x, dba_users u
 WHERE x.obj = o.dataobj#
   AND STANDARD.bitand(x.flag, 524288) > 0
   AND u.username = UPPER('&username')
 ORDER BY x.tch DESC;

--
查询低效率的SQL(BUFFER_GETS排序)
SELECT *
  FROM (SELECT s.sid,
               b.spid,
               s.sql_hash_value,
               q.sql_text,
               q.executions,
               q.buffer_gets,
               ROUND(q.buffer_gets / q.executions) AS buffer_per_exec,
               ROUND(q.elapsed_time / q.executions) AS cpu_time_per_exec,
               q.cpu_time,
               q.elapsed_time,
               q.disk_reads,
               q.rows_processed
          FROM v$session s, v$process b, v$sql q
         WHERE s.sql_hash_value = q.hash_value
           AND s.paddr = b.addr
           AND s.status = 'ACTIVE'
           AND s.TYPE = 'USER'
           AND q.buffer_gets > 0
           AND q.executions > 0
         ORDER BY buffer_per_exec DESC)
 WHERE ROWNUM <= 10;
####################################################################################################


--
监控BufferCache命中率
SELECT a.value + b.value logical_reads, c.value phys_reads,
       ROUND (100 * (1 - c.value / (a.value + b.value)), 4) hit_ratio
  FROM v$sysstat a, v$sysstat b, v$sysstat c
 WHERE a.NAME = 'db block gets'
   AND b.NAME = 'consistent gets'
   AND c.NAME = 'physical reads';

--
监控LibraryCache命中率
SELECT SUM (pins) total_pins, SUM (reloads) total_reloads,
       SUM (reloads) / SUM (pins) * 100 libcache_reload_ratio
  FROM v$librarycache;

--
查询产生的跟踪文件名
SELECT p1.VALUE || '/' || p2.VALUE || '_ora_' || p.spid || '.trc' filename
  FROM v$process p, v$session s, v$parameter p1, v$parameter p2
 WHERE p1.NAME = 'user_dump_dest'
   AND p2.NAME = 'db_name'
   AND p.addr = s.paddr
   AND s.audsid = USERENV ('SESSIONID');

--
删除表中的重复记录
DELETE FROM table_name a
      WHERE ROWID >
               (SELECT MIN (ROWID)
                  FROM table_name b
                 WHERE b.pk_column_1 = a.pk_column_1
                   AND b.pk_column_2 = a.pk_column_2);

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/25530136/viewspace-697959/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/25530136/viewspace-697959/

已经博主授权,源码载自 https://pan.quark.cn/s/a4b39357ea24 在信息技术领域,特别是软件编程行业,微软公司推出的集成开发环境(IDE)Visual Studio,凭借其卓越的功能和广泛的适用范围,成为了众多程序员的常用工具。不过,在实际操作期间,用户可能会遭遇各种挑战,其中一种较为普遍的挑战是“Visual Studio遭遇了异常情况,这或许与某个附加组件有关”。本文将详细研究这一现象的成因、潜在后果以及最终的应对措施。 ### 原因剖析 Visual Studio通过支持多种插件和附加组件来扩展其功能,这些组件通常由第三方开发者设计,旨在为用户提供更多个性化和专业化的工具。然而,这些插件的质量良莠不齐,部分可能未经过充分的测试或与特定版本的Visual Studio存在兼容性难题,从而在执行时引发异常。异常的出现可能源于以下几个因素: 1. **代码缺陷**:若附加组件中的代码存在逻辑问题或资源管理不当,就可能导致运行时异常。 2. **资源竞争**:多个插件同时占用相同的资源(例如内存、文件句柄等),可能会产生资源冲突,进而触发异常。 3. **依赖不匹配**:插件可能需要特定版本的库或框架,如果系统中安装的版本不一致,也可能导致异常。 4. **安全隐患**:部分插件可能存在安全漏洞,一旦被恶意利用,可能会导致更严重的问题,包括但不限于异常崩溃。 ### 后果分析 当Visual Studio遇到由附加组件引发的异常时,不仅会中断当前的工作进程,降低开发效能,还可能带来以下潜在风险: 1. **数据遗失**:若异常发生在保存操作之前,可能会导致未保存的工作内容遗失。 2. **稳定性减弱**:频繁的异常会导致Visual Stud...
内容概要:本文围绕有源中点箝位(ANPC)三电平并网逆变器,提出并深入研究了一种融合双极性倍频脉宽调制(DPWMA)、正负序分离锁相控制与电网电压前馈控制的高性能一体化并网策略。研究首先系统分析了ANPC三电平逆变器在开关损耗均衡、中点电位稳定、输出谐波含量低等方面的拓扑结构优势,为实现高质量并网奠定了坚实的硬件基础。在此基础上,通过引入DPWMA调制策略,有效提升了等效开关频率,显著优化了输出电压电流的波形质量,降低了谐波畸变。为应对电网电压不平衡、畸变等复杂工况,研究采用了正负序分离锁相技术,实现了对电网正序和负序分量的精确分离与独立控制,从而保障了在非理想电网条件下的精准相位同步。同时,通过叠加电网电压前馈控制,构建了前馈-反馈复合控制体系,提前补偿电网扰动,极大地增强了系统的动态响应速度和抗干扰能力。最终,通过Simulink仿真平台对稳态、电网不平衡及动态扰动等多种工况进行了全面验证,结果表明该复合控制策略能显著提升并网系统的电能质量、稳定性和工况适应性,为新能源发电等大功率并网应用提供了先进的技术解决方案。; 适合人群:具备电力电子、自动控制理论或新能源并网技术等相关专业知识背景,从事相关领域科研或工程开发工作的研究人员,尤其适合高校研究生、青年教师及电力系统仿真与设计工程师。; 使用场景及目标:①应用于对电能质量要求严苛的大功率并网逆变器控制系统设计与优化;②解决电网电压不平衡、谐波畸变等复杂非理想工况下的并网稳定性与同步精度问题;③为ANPC三电平逆变器的先进控制策略开发与性能提升提供详尽的仿真验证方案和技术参考;④支持高水平科研论文的复现、学位论文的课题研究以及重大工程项目前期的技术预研与论证。; 阅读建议:建议读者结合文中详述的系统拓扑、控制架构图及仿真模型,循序渐进地理解各控制模块的设计原理与协同工作机制,重点关注DPWMA调制的实现细节、正负序分离的数学原理与实现方法,以及前馈控制的嵌入方式与参数整定策略,并通过仿真实验与传统控制策略进行对比分析,以深刻掌握该复合控制策略的性能优势与工程应用价值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值