Oracle学习

http://www.fwvv.net/info/2008/07/01/20080701-63249.shtml

1. 求当前会话的SID,SERIAL#

SELECT  Sid, Serial#  FROM  V$session  WHERE  Audsid  =  Sys_Context( ' USERENV ' ' SESSIONID ' );

2. 查询session的OS进程ID

 

Code

3. 根据sid查看对应连接正在运行的sql

 

Code

4. 查找object为哪些进程所用

Code

5.查看有哪些用户连接

Code

6、根据v.sid查看对应连接的资源占用等情况

 

SELECT  n.NAME,
       v.VALUE, 
       n.CLASS, 
       n.Statistic#
FROM  V$statname n, V$sesstat v
WHERE  v.Sid  =   & sid
AND  v.Statistic#  =  n.Statistic#
ORDER   BY  n.CLASS, n.Statistic#

 

7、查询耗资源的进程(top session)

Code

8、查看锁(lock)情况

Code

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、查会话的阻塞

 

Code

 

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

 

Code

14、求会话等待的file_id/block_id

 

Code

 

15、求会话等待的对象

 

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、求出某个进程,并对它进行跟踪

 

Code

17、求当前session的跟踪文件

 

Code

 

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 ;

 

19、查看游标状态

 

Code

 

20、查看内存

 

Code

 

21.查看当前用户

 

select  sys_context( ' userenv ' , ' ip_address ' from  dual;


22. 从V$SQLAREA中查询最占用资源的查询,

用buffer_gets列来替换disk_reads列可以得到占用最多内存的sql语句的相关信息。

 

Code


23.列出使用频率最高的5个查询:

select  sql_text,executions
from  ( select  sql_text,
             executions,
             rank() 
over
     (
order   by  executions  desc ) exec_rank
     
from  v$sql)
where  exec_rank  <= 5 ;


24. 消耗磁盘读取最多的sql top5:

Code

 


25.找出需要大量缓冲读取(逻辑读)操作的查询:
Code

25,查看某张表实际物理大小 
Code

26.查询当前会话数

   SELECT  sid,program,prev_exec_start,t.LOGON_TIME  FROM  V$SESSION t  where  username = ' QTEST '   order   by  logon_time  desc


--优化分析
ANALYZE TABLE QTEST.STOCK_TEMP_DAY_HK COMPUTE STATISTICS;
ANALYZE INDEX QTEST.PK_STOCK_TEMP_DAY_SZ ESTIMATE STATISTICS; 
--测试连接数
show parameter processes;
alter system set processes=1000 scope=spfile;
create pfile from spfile;
reboot
select COUNT(DISTINCT  SID) from v$open_cursor where user_name='QTEST' ORDER BY SID;
SELECT * FROM V$SESSION

你可能感兴趣的:(oracle学习)