|
hello 各位,
我遇到一个棘手的问题。我有台数据库,11.2.0.3,redhat 6.x , sga 16G, 32Core , 开在shared server mode, 20个server, 5 个dispatchers .
现在前端的性能问题应用卡。
我从AWR看到的情况是两个,1个是virtual circuit wait,但是 ORACLE SR已经否决了,认为没有性能影响。
还有一个是top sql。
3cmtaw63kyb28 | SELECT distinct u.user_id, u.first_name, upper(u.last_name) FROM users u, organizations o, user_pkg_grants upg, packages p, packages parent_pkg WHERE u.realm_code = :"SYS_B_00" AND u.user_id = upg.user_id and upper(u.last_name) like upper(:"SYS_B_01")and upper(u.first_name) like upper(:"SYS_B_02") and u.belongs_to_organization_id = o.organization_id and parent_pkg.parent_package_id is null and (p.parent_package_id = parent_pkg.package_id or p.package_id=parent_pkg.package_id) and upg.package_id = p.package_id and upper(o.organization_name) like upper(:"SYS_B_03") and ( u.status_enum in (:"SYS_B_04", :"SYS_B_05") or u.status_enum=:"SYS_B_06" or u.status_enum=:"SYS_B_07" or u.status_enum=:"SYS_B_08" or u.status_enum=:"SYS_B_09" or u.status_enum=:"SYS_B_10" ) UNION SELECT u.user_id, u.first_name, upper(u.last_name) FROM users u, organizations o WHERE u.realm_code = : "SYS_B_11" AND upper(u.last_name) like upper(:"SYS_B_12")and upper(u.first_name) like upper(:"SYS_B_13") and u.belongs_to_organization_id = o.organization_id and upper(o.organization_name) like upper(:"SYS_B_14") and ( u.status_enum in (:"SYS_B_15", :"SYS_B_16") or u.status_enum=:"SYS_B_17" or u.status_enum=:"SYS_B_18" or u.status_enum=:"SYS_B_19" or u.status_enum=:"SYS_B_20" or u.status_enum=:"SYS_B_21" ) and not exists ( select (:"SYS_B_22") from user_pkg_grants upg where u.user_id=upg.user_id) ORDER BY :"SYS_B_23" |
我的cursor_sharing 是 force,所以上述sql绑定变量很多,原来java代码我也看过了,变量值也是会变的,不是固定变量。
现在share pool使用率是79%,latch 很低。 我觉得可以考虑切回exact模式,看看这个sql情况,因为这样绑定变量,我也没法调优,ACS已经开了,这个sql跑的还不是很好
请问下我的思路正确吗?是否定位有问题?
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
|