2013-01-10 67 views
0

我從系統登錄到我的應用程序。我從一個用戶執行刷新並從另一個用戶複製粘貼 。刷新主要有一組選擇查詢,並且複製粘貼具有更多的插入查詢。 刷新需要一分鐘或更短時間才能執行,但是當從其他系統執行復制粘貼時,需要花費大量時間或等待複製粘貼完成,然後才能完成。查詢互相阻塞

我正在使用oracle 10g數據庫。我一直在使用oracle sql develepor(監視器會話)來查看實時查詢,但沒有能夠有效地使用它。

能否請你告訴我:

  1. 怎麼看衝突的查詢,如果在所有。
  2. 如何查看variuos查詢獲取的鎖定。
  3. 完成一個查詢需要多長時間。
  4. 任何其他建議或我可能使用的任何其他方法或工具。
+0

您使用的是10g企業版嗎? – ppeterka

回答

0

怎麼看衝突的查詢

企業版,則可以使用企業管理跟蹤bloking會議,並參與查詢。 (Enterprise Manager for 10g documentation

你也可以寫SQL查詢,對於這一點,就像本文詳細說明:Tracking Oracle blocking sessions從文章

SQL(上市阻塞會話):

select blocking_session, sid, serial#, wait_class, seconds_in_wait 
from v$session 
where blocking_session is not NULL 
order by blocking_session; 

清單活動查詢(從Ask Anantha):

SELECT a.USERNAME, a.STATUS, b.sql_text 
FROM V$SESSION a 
INNER JOIN V$SQLAREA b ON a.SQL_ADDRESS= b.ADDRESS; 

如何查看由variuos查詢獲取的鎖定。

這個查詢會告訴你的會話ID(從Oracle forum):

集LINESIZE 150; 套頭; col sid_serial form a13 col ora_user for a15; col object_name for a35;對於a10,col object_type爲 ; col lock_mode for a15;對於a8,col last_ddl爲 ; a10的col狀態;

break on sid_serial;

SELECT l.session_id||','||v.serial# sid_serial, 
    l.ORACLE_USERNAME ora_user, 
    o.object_name, 
    o.object_type, 
    DECODE(l.locked_mode, 
     0, 'None', 
     1, 'Null', 
     2, 'Row-S (SS)', 
     3, 'Row-X (SX)', 
     4, 'Share', 
     5, 'S/Row-X (SSX)', 
     6, 'Exclusive', 
     TO_CHAR(l.locked_mode) 
    ) lock_mode, 
    o.status, 
    to_char(o.last_ddl_time,'dd.mm.yy') last_ddl 
FROM dba_objects o, gv$locked_object l, v$session v 
WHERE o.object_id = l.object_id 
    and l.SESSION_ID=v.sid 
order by 2,3; 

需要多長時間才能完成一個查詢

您可以從SearchOracle

SELECT * 
FROM 
    (select 
     username,opname,sid,serial#,context,sofar,totalwork ,round(sofar/totalwork*100,2) "% Complete" 
    from v$session_longops) 
WHERE "% Complete" != 100 

任何其他建議或任何其他方法或工具與此SQL跟蹤它,我可能使用

那麼,谷歌想到...

+0

該查詢沒有返回任何記錄。但是,只有當多個用戶登錄時,刷新纔會花費很多時間,而某些人執行復制+粘貼。這可能是因爲鎖定和阻塞會話之外的其他原因而發生的。 – jetty

+0

我看到了實時查詢,但他們似乎需要更多時間複製粘貼也同時完成。阻塞會話查詢仍然沒有返回任何記錄。我可以在這裏錯過任何東西嗎? – jetty

+0

那麼,任何性能瓶頸(顧名思義...)都會導致速度緩慢。檢查I/O和內存爭用,以及大小不一的日誌文件,這意味着日誌輪轉過快。 – ppeterka