ORACLE SOS

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4742|回复: 3

shared server 下 cursor sharing force, sql 性能低下

[复制链接]

2

主题

7

帖子

32

积分

新手上路

Rank: 1

积分
32
发表于 2015-2-10 20:34:38 | 显示全部楼层 |阅读模式
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。
3cmtaw63kyb28SELECT 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
回复

使用道具 举报

95

主题

266

帖子

1719

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1719
发表于 2015-2-10 20:38:13 | 显示全部楼层
信息太少无法诊断

另外,你的数据库为什么要使用共享模式?


Q Q:107644445
Tel:13429648788
Email:dba@xifenfei.com
个人Blog(惜分飞)
提供专业ORACLE技术支持(数据恢复,安装实施,升级迁移,备份容灾,故障诊断,系统优化等)
回复 支持 反对

使用道具 举报

2

主题

7

帖子

32

积分

新手上路

Rank: 1

积分
32
 楼主| 发表于 2015-2-10 20:38:23 | 显示全部楼层
对了,补充下,没有DCD, sqlnet.ora没这个文件,本来考虑到virtual circuit准备上DCD,结果SR说不影响,就没弄。有必要吗?
QL>  select server,status,count(*) from v$session group by server,status;

SERVER    STATUS     COUNT(*)
--------- -------- ----------
SHARED    ACTIVE            1
DEDICATED INACTIVE         65
NONE      INACTIVE       1221
DEDICATED ACTIVE           35
回复 支持 反对

使用道具 举报

2

主题

7

帖子

32

积分

新手上路

Rank: 1

积分
32
 楼主| 发表于 2015-2-10 20:48:35 | 显示全部楼层
这个是另一位DBA给我的,高峰期AWR。 如果不行我一会再去取

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|ORACLE SOS 技术论坛

GMT+8, 2024-4-24 14:20 , Processed in 0.023960 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表