阜和教育
        CCNA培训
        CCNP培训
        CCIE直通车培训
        CCIP培训
        CCVP培训
        CCSP培训
        CCIE集中营培训
        windows server 2008培训
        Windows 7培训
        SQL Server 2008培训
        Windows Server 2003培训
        RHCSA培训
        RHCE培训
        RHCVA培训
        RHCDS培训
        RHCSS培训
        RHCA培训
        JBCAA培训
        JBCD培训
        OCA 认证专员培训
        Oracle 10g OCP培训
        Oracle 10g OCM培训
        H3CNA培训
        H3CNE培训
        H3CSE培训
        H3CTE培训
        H3CIE Routing&Switching培训
        BIG-IP培训
        Firepass培训
        ARX培训
        ITIL V3 Foundation培训
        ITIL V3 Capability培训
        ITIL V3 Lifecycle培训
        ITIL V3 Expert培训
        PMP培训
        Junos初级专员培训
        电信运营商科目SP培训
        Junos(SEC)培训
        E系列认证培训
        防火墙VPN认证培训
        入侵检测与防御IDP培训
        SSL认证培训
        WX认证培训
        统一接入控制UAC培训
        企业路由和交换培训
        VCP培训
        VCAP-DCA培训
        VCAP-DCD培训
        VCA-DT培训
        VCP-DT培训
        业务连续性/灾难恢复培训
        存储技师EMCST培训
        存储管理员EMCSA培训
        应用开发EMCApD培训
        系统管理员EMCSysA培训
        产品特定技术培训
    阜和教育-首页> Orale > Oracle数据库维护常用的SQL代码示例(1)
跳过导航链接

Oracle数据库维护常用的SQL代码示例(1)

2011-8-29 10:38:00
文章摘要:Oracle数据库维护是作为一名数据库管理员必须要掌握的技能。数据库维护的操作有很多种,本文我们总结了18种常用的数据库维护操作的SQL代码示例,接下来就让我们一起来了解一下这部分内容吧。 1、求当前会话的SID,SERIAL# 1SELECTSid,Serial# 2FROMV$session 3 ...
Oracle数据库维护是作为一名数据库管理员必须要掌握的技能。数据库维护的操作有很多种,本文我们总结了18种常用的数据库维护操作的SQL代码示例,接下来就让我们一起来了解一下这部分内容吧。
1、求当前会话的SID,SERIAL#
1 SELECT Sid, Serial#  
2 FROM V$session  
3 WHERE Audsid = Sys_Context(’USERENV’, ’SESSIONID’); 
2、查询session的OS进程ID
4 SELECT p.Spid "OS Thread", b.NAME "Name-User", s.Program, s.Sid, s.Serial#,  
5 s.Osuser, s.Machine  
6 FROM V$process p, V$session s, V$bgprocess b  
7 WHERE p.Addr = s.Paddr  
8 AND p.Addr = b.Paddr  
9 And (s.sid=&1 or p.spid=&1)  
10 UNION ALL  
11 SELECT p.Spid "OS Thread", s.Username "Name-User", s.Program, s.Sid,  
12 s.Serial#, s.Osuser, s.Machine  
13 FROM V$process p, V$session s  
14 WHERE p.Addr = s.Paddr  
15 And (s.sid=&1 or p.spid=&1)  
16 AND s.Username IS NOT NULL; 
3、根据sid查看对应连接正在运行的sql
17 SELECT /*+ PUSH_SUBQ */  
18 Command_Type, Sql_Text, Sharable_Mem, Persistent_Mem, Runtime_Mem, Sorts,  
19 Version_Count, Loaded_Versions, Open_Versions, Users_Opening, Executions,  
20 Users_Executing, Loads, First_Load_Time, Invalidations, Parse_Calls,  
21 Disk_Reads, Buffer_Gets, Rows_Processed, SYSDATE Start_Time,  
22 SYSDATE Finish_Time, ’>’ || Address Sql_Address, ’N’ Status  
23 FROM V$sqlarea  
24 WHERE Address = (SELECT Sql_Address  
25 FROM V$session  
26 WHERE Sid = &sid ); 
4、查找object为哪些进程所用
27 SELECT p.Spid, s.Sid, s.Serial# Serial_Num, s.Username User_Name,  
28 a.TYPE Object_Type, s.Osuser Os_User_Name, a.Owner,  
29 a.OBJECT Object_Name,  
30 Decode(Sign(48 - Command), 1, To_Char(Command), ’Action Code #’ || To_Char(Command)) Action,  
31 p.Program Oracle_Process, s.Terminal Terminal, s.Program Program,  
32 s.Status Session_Status  
33 FROM V$session s, V$access a, V$process p  
34 WHERE s.Paddr = p.Addr  
35 AND s.TYPE = ’USER’ 
36 AND a.Sid = s.Sid  
37 AND a.OBJECT = ’&obj’ 
38 ORDER BY s.Username, s.Osuser 
5、查看有哪些用户连接
39 SELECT s.Osuser Os_User_Name,  
40 Decode(Sign(48 - Command),1,To_Char(Command),  
41 ’Action Code #’ || To_Char(Command)) Action,  
42 p.Program Oracle_Process, Status Session_Status, s.Terminal Terminal,  
43 s.Program Program, s.Username User_Name,  
44 s.Fixed_Table_Sequence Activity_Meter, ’’ Query, 0 Memory,  
45 0 Max_Memory, 0 Cpu_Usage, s.Sid, s.Serial# Serial_Num  
46 FROM V$session s, V$process p  
47 WHERE s.Paddr = p.Addr  
48 AND s.TYPE = ’USER’ 
49 ORDER BY s.Username, s.Osuser 
6、根据v.sid查看对应连接的资源占用等情况
50 SELECT n.NAME, v.VALUE, n.CLASS, n.Statistic#  
51 FROM V$statname n, V$sesstat v  
52 WHERE v.Sid = &sid  
53 AND v.Statistic# = n.Statistic#  
54 ORDER BY n.CLASS, n.Statistic# 
7、查询耗资源的进程(top session)
55 SELECT s.Schemaname Schema_Name,  
56 Decode(Sign(48 - Command),  
57 1, To_Char(Command), ’Action Code #’ || To_Char(Command)) Action,  
58 Status Session_Status, s.Osuser Os_User_Name, s.Sid, p.Spid,  
59 s.Serial# Serial_Num, Nvl(s.Username, ’[Oracle process]’) User_Name,  
60 s.Terminal Terminal, s.Program Program, St.VALUE Criteria_Value  
61 FROM V$sesstat St, V$session s, V$process p  
62 WHERE St.Sid = s.Sid  
63 AND St.Statistic# = To_Number(’38’)  
64 AND (’ALL’ = ’ALL’ OR s.Status = ’ALL’)  
65 AND p.Addr = s.Paddr  
66 ORDER BY St.VALUE DESC, p.Spid ASC, s.Username ASC, s.Osuser ASC 
8、查看锁(lock)情况
67 SELECT /*+ RULE */  
68 Ls.Osuser Os_User_Name, Ls.Username User_Name,  
69 Decode(Ls.TYPE,  
70 ’RW’, ’Row wait enqueue lock’, ’TM’, ’DML enqueue lock’,  
71 ’TX’, ’Transaction enqueue lock’, ’UL’, ’User supplied lock’) Lock_Type,  
72 o.Object_Name OBJECT,  
73 Decode(Ls.Lmode,  
74 1, NULL, 2, ’Row Share’, 3, ’Row Exclusive’,  
75 4, ’Share’, 5, ’Share Row Exclusive’, 6, ’Exclusive’,  
76 NULL) Lock_Mode,  
77 o.Owner, Ls.Sid, Ls.Serial# Serial_Num, Ls.Id1, Ls.Id2  
78 FROM Sys.Dba_Objects o,  
79 (SELECT s.Osuser, s.Username, l.TYPE, l.Lmode, s.Sid, s.Serial#, l.Id1,  
80 l.Id2  
81 FROM V$session s, V$lock l  
82 WHERE s.Sid = l.Sid) Ls  
83 WHERE o.Object_Id = Ls.Id1  
84 AND o.Owner <> ’SYS’  
85 ORDER BY o.Owner, o.Object_Name 
9、查看等待(wait)情况
86 SELECT Ws.CLASS, Ws.COUNT COUNT, SUM(Ss.VALUE) Sum_Value  
87 FROM V$waitstat Ws, V$sysstat Ss  
88 WHERE Ss.NAME IN (’db block gets’, ’consistent gets’)  
89 GROUP BY Ws.CLASS, Ws.COUNT 
上一篇:Oracle数据库服务的相关知识详解
下一篇:Oracle 11g回收站recyclebin的使用详解
文章摘要:Oracle11g回收站(recyclebin)的使用是本文我们主要要介绍的内容,我们知道,Flashback是以undosegment中的内容为基础的,因此受限于undo_retenton参数,要使用flashback的特征,必须启动自动撤销表空间。 在Oracle11g中,出现了一个新的特征,oracleflashbackdataarchive(FDA),通过将变化的数据另外存储到创建的一个闪回归档去(flashbackarchive),以和undo区别开,这样可以单独设置存...