首页 | 互联网 | IT动态 | IT培训 | Cisco | Windows | Linux | Java | .Net | Oracle | 软件测试 | C/C++ | 嵌入式开发 | 存储世界 | 服务器
网络设备 | IDC | 安全 | 求职招聘 | 数字网校 | 网页设计 | 平面设计 | 技术专题 | 电子书下载 | 教学视频 | 源码下载 | 搜索 | 博客 | 论坛
中国IT实验室Oracle频道
中国IT教育
Google
首页 入门基础 安装配置 体系架构 PLSQL 备份恢复 性能调优 开发技术 资讯动态 考试认证 下载 专题 讨论
您现在的位置: 中国IT实验室 >> Oracle >> 性能调优 >> 正文

Oracle数据库维护常用SQL语句集合

        9、查看等待(wait)情况

         SELECT Ws.CLASS, Ws.COUNT COUNT, SUM(Ss.VALUE) Sum_Value
        FROM V$waitstat Ws, V$sysstat Ss
        WHERE Ss.NAME IN ('db block gets', 'consistent gets')
        GROUP BY Ws.CLASS, Ws.COUNT

        10、求process/session的状态

         SELECT p.Pid, p.Spid, s.Program, s.Sid, s.Serial#
        FROM V$process p, V$session s
        WHERE s.Paddr = p.Addr;

        11、求谁阻塞了某个session(10g)

         SELECT Sid, Username, Event, Blocking_Session, Seconds_In_Wait, Wait_Time
        FROM V$session
        WHERE State IN ('WAITING')
        AND Wait_Class != 'Idle';

        12、查会话的阻塞

         col user_name format a32
        SELECT /*+ rule */
        Lpad(' ', Decode(l.Xidusn, 0, 3, 0)) || l.Oracle_Username User_Name,
        o.Owner, o.Object_Name, s.Sid, s.Serial#
        FROM V$locked_Object l, Dba_Objects o, V$session s
        WHERE l.Object_Id = o.Object_Id
        AND l.Session_Id = s.Sid
        ORDER BY o.Object_Id, Xidusn DESC;
        col username format a15
        col lock_level format a8
        col owner format a18
        col object_name format a32
        SELECT /*+ rule */
        s.Username,
        Decode(l.TYPE, 'tm', 'table lock', 'tx', 'row lock', NULL) Lock_Level,
        o.Owner, o.Object_Name, s.Sid, s.Serial#
        FROM V$session s, V$lock l, Dba_Objects o
        WHERE l.Sid = s.Sid
        AND l.Id1 = o.Object_Id(+)
        AND s.Username IS NOT NULL;

        13、求等待的事件及会话信息/求会话的等待及会话信息

         SELECT Se.Sid, s.Username, Se.Event, Se.Total_Waits, Se.Time_Waited,
        Se.Average_Wait
        FROM V$session s, V$session_Event Se
        WHERE s.Username IS NOT NULL
        AND Se.Sid = s.Sid
        AND s.Status = 'ACTIVE'
        AND Se.Event NOT LIKE '%SQL*Net%'
        ORDER BY s.Username;
        SELECT s.Sid, s.Username, Sw.Event, Sw.Wait_Time, Sw.State,
        Sw.Seconds_In_Wait
        FROM V$session s, V$session_Wait Sw
        WHERE s.Username IS NOT NULL
        AND Sw.Sid = s.Sid
        AND Sw.Event NOT LIKE '%SQL*Net%'
        ORDER BY s.Username;

        14、求会话等待的file_id/block_id

         col event format a24
        col p1text format a12
        col p2text format a12
        col p3text format a12
        SELECT Sid, Event, P1text, P1, P2text, P2, P3text, P3
        FROM V$session_Wait
        WHERE Event NOT LIKE '%SQL%'
        AND Event NOT LIKE '%rdbms%'
        AND Event NOT LIKE '%mon%'
        ORDER BY Event;
        SELECT NAME, Wait_Time
        FROM V$latch l
        WHERE EXISTS (SELECT 1
        FROM (SELECT Sid, Event, P1text, P1, P2text, P2, P3text, P3
        FROM V$session_Wait
        WHERE Event NOT LIKE '%SQL%'
        AND Event NOT LIKE '%rdbms%'
        AND Event NOT LIKE '%mon%') x
        WHERE x.P1 = l.Latch#);

        15、求会话等待的对象

         col owner format a18
        col segment_name format a32
        col segment_type format a32
        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;

        16、求出某个进程,并对它进行跟踪

         SELECT s.Sid, s.Serial#
        FROM V$session s, V$process p
        WHERE s.Paddr = p.Addr
        AND p.Spid = &1;
        Exec Dbms_System.Set_Sql_Trace_In_Session(&1, &2, TRUE);
        Exec Dbms_System.Set_Sql_Trace_In_Session(&1, &2, FALSE);

        17、求当前session的跟踪文件

         SELECT P1.VALUE || '/' || P2.VALUE || '_ora_' || p.Spid || '.ora' Filename
        FROM V$process p, V$session s, V$parameter P1, V$parameter P2
        WHERE P1.NAME = 'user_dump_dest'
        AND P2.NAME = 'instance_name'
        AND p.Addr = s.Paddr
        AND s.Audsid = Userenv('SESSIONID')
        AND p.Background IS NULL
        AND Instr(p.Program, 'CJQ') = 0;

        18、求出锁定的对象

        SELECT Do.Object_Name, Session_Id, Process, Locked_Mode
        FROM V$locked_Object Lo, Dba_Objects Do
        WHERE Lo.Object_Id = Do.Object_Id;

上一页  [1] [2] 

【责编:michael】

中国IT教育

相关产品和培训
文章评论
 友情推荐链接
 认证培训
 专题推荐

 ·关于Java框架技术专题
 ·XML全攻略技术专题
 ·JAVA开源技术介绍专题
 ·Java嵌入式开发之J2ME技术专题
 ·超前体验 Oracle 11g的5个新特性…
 ·揭密使用VB.NET的五个实用技巧
 ·Oracle和SQL Server常用函数对比专题…
 ·展现C#世界 C#程序设计专题…
 ·Java入门 Tomcat的配置技巧精华专题…
 ·Oracle RMAN物理备份技术详解…
 今日更新
 社区讨论
 博客论点
 频道精选
 Oracle频道相关导航