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
posted @ 2009-07-16 15:56  不可以  阅读(323)  评论(0编辑  收藏  举报
使用Live Messenger联系我
关闭