2013-01-10 39 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