楼主: liufxiang

请教有关于SHARED_POOL的问题:

[复制链接]
论坛徽章:
31
授权会员
日期:2005-10-30 17:05:332012新春纪念徽章
日期:2012-02-13 15:09:232012新春纪念徽章
日期:2012-02-13 15:09:232012新春纪念徽章
日期:2012-02-13 15:09:232012新春纪念徽章
日期:2012-02-13 15:09:23马上有车
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:142012新春纪念徽章
日期:2012-02-13 15:09:23
31#
发表于 2005-3-15 17:17 | 只看该作者
最初由 husthxd 发布
[B]

aix5.2,oracle 9205,把curosr_sharing改为similar后运行良好 [/B]


我的也是
希望能看到相关不良的测试报告
让我们心里有点底
呵呵

使用道具 举报

回复
论坛徽章:
168
马上加薪
日期:2014-02-19 11:55:142012新春纪念徽章
日期:2012-02-13 15:10:582012新春纪念徽章
日期:2012-01-04 11:49:54蜘蛛蛋
日期:2011-12-05 16:08:56ITPUB十周年纪念徽章
日期:2011-11-01 16:19:41设计板块每日发贴之星
日期:2011-07-22 01:01:02ITPUB官方微博粉丝徽章
日期:2011-06-30 12:30:16管理团队成员
日期:2011-05-07 01:45:082011新春纪念徽章
日期:2011-01-25 15:42:562011新春纪念徽章
日期:2011-01-25 15:42:33
32#
发表于 2005-3-15 17:55 | 只看该作者
最初由 wlidflower 发布
[B]

我的也是
希望能看到相关不良的测试报告
让我们心里有点底
呵呵 [/B]


其实打了补丁,常用的特性的就尽管用,应该没什么问题的

使用道具 举报

回复
论坛徽章:
0
33#
发表于 2005-3-15 19:02 | 只看该作者
学到不少。谢谢。。支持一下!

使用道具 举报

回复
论坛徽章:
1
授权会员
日期:2006-04-17 11:40:06
34#
发表于 2005-3-15 21:03 | 只看该作者
alter system flush share_pool这个行不通.至少我做了.我的版本是8.1.7加大shared_pool后只会延后错误发作的时间.打个patch吧..我没有打patch.在init中加了个修补参数

使用道具 举报

回复
论坛徽章:
13
授权会员
日期:2005-12-23 19:56:14鲜花蛋
日期:2013-04-18 22:03:042013年新春福章
日期:2013-02-25 14:51:24迷宫蛋
日期:2013-02-15 19:14:57ITPUB 11周年纪念徽章
日期:2012-10-09 18:05:37茶鸡蛋
日期:2012-01-08 17:37:03ITPUB十周年纪念徽章
日期:2011-11-01 16:20:282010新春纪念徽章
日期:2010-03-01 11:20:00祖国60周年纪念徽章
日期:2009-10-09 08:28:00ITPUB元老
日期:2009-09-18 14:16:35
35#
发表于 2005-3-15 21:38 | 只看该作者
最初由 axman 发布
[B]alter system flush share_pool这个行不通.至少我做了.我的版本是8.1.7加大shared_pool后只会延后错误发作的时间.打个patch吧..我没有打patch.在init中加了个修补参数 [/B]

什么参数?

使用道具 举报

回复
论坛徽章:
1
授权会员
日期:2006-04-17 11:40:06
36#
发表于 2005-3-15 21:56 | 只看该作者
因为改过后没有记笔记, 明天我去查下init.ora文件. _db.....的一个参数.明天早上上传

使用道具 举报

回复
论坛徽章:
1
授权会员
日期:2006-04-17 11:40:06
37#
发表于 2005-3-15 22:00 | 只看该作者
找到了.
db_handles_cashed = 0
添加了这个参数.就再没有出现ORA-4031的错误了.
因为没有在vms系统下patch bug.所以就修改了init.ora的参数

使用道具 举报

回复
论坛徽章:
1
授权会员
日期:2006-04-17 11:40:06
38#
发表于 2005-3-15 22:07 | 只看该作者
查了笔记:
_db_handles_cashed=0
(buffer handles cached each proces)
我有试过.加了这个参数
select * from v$sgastat where pool = 'shared pool' and upper(name) like '%FRE%'
or upper(name) like '%MISC%'
基本miscellaneous增长比较趋于正常.
看了有关的说明.实际该参数的修补就是针对ORA-4031的补丁

使用道具 举报

回复
论坛徽章:
22
2010新春纪念徽章
日期:2010-03-01 11:08:33马上有对象
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有车
日期:2014-02-19 11:55:142012新春纪念徽章
日期:2012-02-13 15:08:092012新春纪念徽章
日期:2012-02-13 15:08:092012新春纪念徽章
日期:2012-02-13 15:08:092012新春纪念徽章
日期:2012-02-13 15:08:092012新春纪念徽章
日期:2012-02-13 15:08:09
39#
发表于 2005-3-15 22:34 | 只看该作者
使用dbms_shared_pool.keep将经常使用的大的存储过程pin到shared中, 不要一位的加大shared pool si'ze. 感觉这样只是延缓4031错误发生的时间而已.

使用道具 举报

回复
论坛徽章:
27
授权会员
日期:2005-10-30 17:05:33管理团队成员
日期:2011-05-07 01:45:082012新春纪念徽章
日期:2012-02-13 15:11:362012新春纪念徽章
日期:2012-02-13 15:11:362012新春纪念徽章
日期:2012-02-13 15:11:362012新春纪念徽章
日期:2012-02-13 15:11:362012新春纪念徽章
日期:2012-02-13 15:11:36优秀写手
日期:2013-12-18 09:29:13马上有车
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14
40#
发表于 2005-3-16 08:36 | 只看该作者

Re: 做强行绑定肯定不合适

最初由 liufxiang 发布
[B]不做强行绑定,应该怎么办,不会是把所有SQL重写吧 [/B]


既然都已经知道没有使用绑定变量了,为什么不试着去使用绑定变量然后测试性能呢

你可以用下面的语句从SHARE_POOL去抓取最严重的SQL开始分析(取自expert one on one oracle)

create or replace
function remove_constants( p_query in varchar2 )
return varchar2
as
l_query long;
l_char varchar2(10);
l_in_quotes boolean default FALSE;
begin
for i in 1 .. length( p_query )
loop
l_char := substr(p_query,i,1);
if ( l_char = '''' and l_in_quotes )
then
l_in_quotes := FALSE;
elsif ( l_char = '''' and NOT l_in_quotes )
then
l_in_quotes := TRUE;
l_query := l_query || '''#';
end if;
if ( NOT l_in_quotes ) then
l_query := l_query || l_char;
end if;
end loop;
l_query := translate( l_query, '0123456789', '@@@@@@@@@@' );
for i in 0 .. 8 loop
l_query := replace( l_query, lpad('@',10-i,'@'), '@' );
l_query := replace( l_query, lpad(' ',10-i,' '), ' ' );
end loop;
return upper(l_query);
end;
/


create global temporary table sql_area_tmp
on commit preserve rows
as
select sql_text, sql_text sql_text_wo_constants
from v$sqlarea
where 1=0
/


insert into sql_area_tmp (sql_text)
select sql_text from v$sqlarea
/


update sql_area_tmp
set sql_text_wo_constants = remove_constants(sql_text);
/

select sql_text_wo_constants, count(*)
from sql_area_tmp
group by sql_text_wo_constants
having count(*) > 10
order by 2
/

使用道具 举报

回复

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

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表