eygle.com   eygle.com
eygle.com eygle
eygle.com  
 

« Invalid Login Using Trusted Authentication 错误原因 | Blog首页 | 2011Oracle技术嘉年华-OTN CHINA TOUR大会 »

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

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

Parse CallsExecutions % Total Parses SQL IdSQL ModuleSQL Text
70,74870,7483.941cjy8v3c0agny   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

以上供参考。

历史上的今天...
    >> 2018-08-29文章:
    >> 2015-08-29文章:
    >> 2012-08-29文章:
    >> 2008-08-29文章:
    >> 2007-08-29文章:
    >> 2006-08-29文章:
           迁址完成 公司的新家
    >> 2005-08-29文章:
    >> 2004-08-29文章:

By eygle on 2011-08-29 08:09 | Comments (0) | Case | 2860 |


CopyRight © 2004~2020 云和恩墨,成就未来!, All rights reserved.
数据恢复·紧急救援·性能优化 云和恩墨 24x7 热线电话:400-600-8755 业务咨询:010-59007017-7040 or 7037 业务合作: marketing@enmotech.com