前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >解决查询DBA_FREE_SPACE慢的一种方法

解决查询DBA_FREE_SPACE慢的一种方法

作者头像
老虎刘
发布2022-06-22 17:41:42
发布2022-06-22 17:41:42
8140
举报

很多客户的生产系统需要对表空间的剩余空间进行监控,如果你遇到在使用dba_free_space视图进行查询时,出现执行时间较长的情况,你可以尝试使用下面的方法:

找到DBA_FREE_SPACE视图的定义代码,在第三个select后面可能是这样一段hint:/*+ ordered use_nl(u) use_nl(fi) */ (这是11g某个版本view DDL)

你可以重新创建一个新的view,比如tiger_free_space,将上面那段hint的代码,替换成下面内容:

/*+

FULL( "RB")

FULL( "TS")

FULL( "U")

INDEX_RS_ASC( "FI" ("FILE

LEADING( "RB" "TS" "U" "FI" )

USE_HASH( "TS")

USE_NL( "U")

USE_NL( "FI")

*/

用这个view的名字替换dba_free_space,测试一下你原来的表空间监控脚本,看到性能是否有所改善。如果有提高,你就可以在你的监控脚本中使用新的view名字tiger_free_space替换原来dba_free_space了。

某个客户的生产系统,使用新老view的表空间监控SQL执行时间分别是1.6秒和6分钟,对于每天定时执行很多次的SQL,执行效率和节省下来的系统资源也是比较可观的,特别是对DBA的一些即时查询,6分钟的时间确实比较漫长。

这个方法对生产系统完全无损,只是创建了一个自定义的view而已,简单有效。

oracle 的MOS网站也有对这个问题的官方解决方案:

Query Against DBA_FREE_SPACE is Slow After Applying 11.2.0.4 (Doc ID 1904677.1) ,应该也是重建这个view。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2016-08-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 老虎刘谈oracle性能优化 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档