技术头条 - 一个快速在微博传播文章的方式     搜索本站
您现在的位置首页 --> Oracle --> XDB sys_nc_oid$递归调用的案例一则

XDB sys_nc_oid$递归调用的案例一则

浏览:740次  出处信息
在某客户数据库中,我们发现有一条SQL占据解析量的4%左右,解析次数很高:

    

Parse Calls Executions % Total Parses SQL Id SQL Module SQL Text
70,748 70,748 3.94 1cjy8v3c0agny   select sys_nc_oid$ from xdb.xd...

    这条SQL的完整内容如下:

    select sys_nc_oid$ from xdb.xdb$resource where rowid = :1

    客户数据库的版本是10.2.0.4.

    经过分析,我们注意到这条SQL和Oracle的XDB选项有关,如果不安装XDB选件,则这类递归SQL将不会出现,所以提请大家注意的是:在初始化数据库安装时,如果有些选件不会用到,则不建议安装。

    这个SQL和递归调用ALL_OBJECTS视图有关,在10.2.0.4中执行以下查询,通过10046跟踪后台调用:

    select count(*) from all_objects;

    在跟踪文件中可以发现如下信息:

    select sys_nc_oid$

    from

    xdb.xdb$resource where rowid = :1

    call     count       cpu    elapsed       disk      query    current        rows

    ------- ------  -------- ---------- ---------- ---------- ----------  ----------

    Parse      435      0.02       0.01          0          0          0           0

    Execute    435      0.18       0.15          0          0          0           0

    Fetch      435      0.03       0.01          0        435          0         435

    ------- ------  -------- ---------- ---------- ---------- ----------  ----------

    total     1305      0.23       0.18          0        435          0         435

    与all_objects有关的BUG请参考类似链接:

     http://www.eygle.com/archives/2011/06/all_objects_xkgldp_xkzspr.html

     根据本案例,我们建议用户在将来的数据库部署中,应当遵循一些基本原则,如:

     1.用户级别的数据字典的查询和访问应当谨慎评估

     2.不安装业务完全不会使用到的选件,如XDB

    

     以上供参考。

QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
© 2009 - 2024 by blogread.cn 微博:@IT技术博客大学习

京ICP备15002552号-1