Oracle 11g系统查询

7

请问有人能告诉我为什么下面的查询会被触发以及何时会被触发。我相信这个查询对性能有很大影响。我无法追踪它是从哪里触发的。

查询:

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
你并不孤单,但我认为这可能需要向Oracle支持团队寻求帮助。 - Alex Poole
@AlexPoole。谢谢你提供的链接,但是没有找到太多有用的信息。请问还有其他的指引吗? - kanna
只需检查Oracle支持网站,如果没有明显的解决方案,请提出服务请求。 - Alex Poole
根据@AlexPoole的评论和此处提到的内容:slow-access-to-dba_free_space,尝试运行:purge dba_recyclebin; - planben
2
这里再次投票支持PURGE DBA_RECYCLEBIN。里面有几十个对象可以绝对破坏DBA_FREESPACE视图的性能。 - Morbo
3个回答

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查询性能缓慢的问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接