2012-10-20 117 views
7

有人请指教我为什么下面的查询被解雇了,什么时候会被解雇。我相信这个查询对性能有巨大的影响。我无法从这个被解雇的地方追踪。Oracle 11g Sys Query

查询:

SELECT SUM (used), SUM (total) 
FROM (SELECT /*+ ORDERED */ 
      SUM (d.BYTES)/(1024 * 1024) - MAX (s.BYTES) used, 
      SUM (d.BYTES)/(1024 * 1024) total 
     FROM (SELECT tablespace_name, SUM (BYTES)/(1024 * 1024) BYTES 
      FROM (SELECT/*+ ORDERED USE_NL(obj tab) */DISTINCT ts.NAME 
        FROM SYS.obj$ obj, SYS.tab$ tab, SYS.ts$ ts 
        WHERE obj.owner# = USERENV ('SCHEMAID') 
        AND obj.obj# = tab.obj# 
        AND tab.ts# = ts.ts# 
        AND BITAND (tab.property, 1) = 0 
        AND BITAND (tab.property, 4194400) = 0) tn, 
      dba_free_space sp 
      WHERE sp.tablespace_name = tn.NAME 
      GROUP BY sp.tablespace_name) s, dba_data_files d 
     WHERE d.tablespace_name = s.tablespace_name 
     GROUP BY d.tablespace_name)  

它正在对SYS.TS $和$ SYS.FILE全表扫描。我相信它正在利用数据库的最大资源。

请帮帮我。

在此先感谢。

+1

[你并不孤单](https://forums.oracle.com/forums/thread.jspa?threadID=2331059),但我认为这可能是Oracle支持的一种。 –

+0

@AlexPoole。感谢您的链接,但无法找到很多信息。请任何其他的指针。 – kanna

+0

仅当检查Oracle支持网站并提出服务请求时(如果没有任何明显的信息)。 –

回答

1

你是否已经在v $ sqlarea中查询过,看看它是否在那里,然后看看它是什么会话/用户?

0

OEM在数据库中发出许多查询以进行预订。此查询将获取表空间上的可用空间,并且可能会在OEM中配置警报以监视它。

0

11.2.0.3中的常见问题。 MOS上有几种解决方法。

查询针对于11.2.0.3 DBA_EXTENTS升级后缓慢(文件ID 1453425.1)

基于成本的优化器使用的100,000行的基数估计此表,而11.2.0.3执行计划是做了全表扫描。如果您有大量的扩展盘区,则此查询可能需要1个多小时才能完成。 对于DBA_EXTENTS上的查询,性能降低时会出现一些未发布的错误。