楼主: mypengchen2000

[精华] 存储过程的效率问题!!(今晚在线等)

[复制链接]
论坛徽章:
86
ITPUB元老
日期:2005-02-28 12:57:002012新春纪念徽章
日期:2012-01-04 11:49:542012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:20咸鸭蛋
日期:2012-05-08 10:27:19版主8段
日期:2012-05-15 15:24:112013年新春福章
日期:2013-02-25 14:51:24
41#
发表于 2003-7-2 11:32 | 只看该作者

针对特定的问题

1: 检查代码 和 相关对象,包括索引状况、存储参数设置、目前数据状况等
2: trace session
3:检查 动态性能视图
4:做statspack

找出真正慢在哪里,到底我们的应用在等什么?
然后从这个角度入手去尝试解决问题

按照这个思路理下去,99.99%就能断定:
你的系统可以很好的调整
你的系统无法通过调整达到满意效果(这往往是由于设计开发的时候留下的隐患和现实因素所决定的)

使用道具 举报

回复
论坛徽章:
0
42#
发表于 2003-7-2 11:49 | 只看该作者
楼上是凭什么认为FREELIST要调为20的啊?

使用道具 举报

回复
论坛徽章:
86
ITPUB元老
日期:2005-02-28 12:57:002012新春纪念徽章
日期:2012-01-04 11:49:542012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:20咸鸭蛋
日期:2012-05-08 10:27:19版主8段
日期:2012-05-15 15:24:112013年新春福章
日期:2013-02-25 14:51:24
43#
发表于 2003-7-2 11:54 | 只看该作者

也许是 5或者 10 就可以

我不能断定他的系统并发状况
但一定不能是1 !!!

从现象上看,就是freelist过小的表现(虽然该现象并不100%就是因为freelist过小)
但是增大freelists本身并不会带来额外的开销,甚至都谈不上浪费磁盘空间
那为什么不加大呢?

使用道具 举报

回复
论坛徽章:
0
44#
 楼主| 发表于 2003-7-2 12:06 | 只看该作者
谢谢!!我今天又在跑那个存储过程:
运行select * from v$session_wait;相应session(session id 是56)的结果是:
  56      64600 direct path read                                                 file number                                                              34 0000000000000022 first dba                                                              4910 000000000000132E block cnt                                                                 1 0000000000000001          0               0 WAITING
其中,34对应的是一个临时文件temp03.dbf大小是4g;
运行select * from v$session_event;的结果是这样的:
  56 file open                                                                 36              0           1 0.0277777777          1
同时,查看了sql_text是在做insert表的操作;
同时,在运行存储过程前,我设置了:
execute immediate 'alter session set sort_area_size = 10240000';
execute immediate 'alter session set hash_area_size = 5120000';
因为,我发现物理排序值为7,内存排序是70,所以我加大了sort_area_size的大小;

使用道具 举报

回复
论坛徽章:
0
45#
发表于 2003-7-2 12:06 | 只看该作者
哦,是这么考虑啊,有道理!但是在仔细看了楼主发的存储过程后,发现里面有不少的全表扫描,复杂的JION及很多需要用到索引的地方,这些都是在SQL调优中需要特别留意的地方,不知道是否会因为误删数据文件而对SQL的效率有直接的影响呢?如果有,会是哪些呢?希望楼上明析:)

使用道具 举报

回复
论坛徽章:
0
46#
 楼主| 发表于 2003-7-2 12:09 | 只看该作者
请问biti_rainy,是否我要将库里所有的表和索引的freelists参数都要改过来呢??

使用道具 举报

回复
论坛徽章:
86
ITPUB元老
日期:2005-02-28 12:57:002012新春纪念徽章
日期:2012-01-04 11:49:542012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:20咸鸭蛋
日期:2012-05-08 10:27:19版主8段
日期:2012-05-15 15:24:112013年新春福章
日期:2013-02-25 14:51:24
47#
发表于 2003-7-2 12:27 | 只看该作者

是否要改,是否必须改

最初由 mypengchen2000 发布
[B]请问biti_rainy,是否我要将库里所有的表和索引的freelists参数都要改过来呢?? [/B]


恐怕我不能回答你
只有你自己明白原理后根据应用去调整

使用道具 举报

回复
论坛徽章:
0
48#
 楼主| 发表于 2003-7-2 12:28 | 只看该作者
不好意识:select * from v$session_event order by sid;结果有11条记录:
56 latch free                                                               228            227         389 1.7061403508          2
56 db file scattered read                                                    13              0          32 2.4615384615         13
56 direct path read                                                     1481420              0       89999 0.0607518462          8 56 SQL*Net message from client                                        12              0         296 24.666666666        210
56 SQL*Net message to client                                                 12              0           0            0          0
56 file open                                                                 36              0           1 0.0277777777          1
56 direct path write                                                        308              0         199 0.6461038961         13
56 log file sync                                                              2              0           4            2          3
  56 db file sequential read                                             5573              0        9170 1.6454333393         36
  56 log file switch completion                                            51              4        1792 35.137254901        103

使用道具 举报

回复
论坛徽章:
0
49#
 楼主| 发表于 2003-7-2 12:31 | 只看该作者
更正:select * from v$session_event order by sid;结果有11条记录:
56 latch free                                                               228            227         389 1.7061403508          2
56 db file scattered read                                             13              0          32 2.4615384615         13
56 direct path read                                                    1481420              0       89999 0.0607518462          8
56 SQL*Net message from client                                     12              0         296 24.666666666        210
56 SQL*Net message to client                                                 12              0           0            0          0
56 file open                                                                 36              0           1 0.0277777777          1
56 direct path write                                                        308              0         199 0.6461038961         13
  56 log file sync                                                              2              0           4            2          3
  56 db file sequential read                                              5573              0        9170 1.6454333393         36
  56 log file switch completion                                            51              4        1792 35.137254901        103
  56 log file switch (checkpoint incomplete)                                    2              1         151         75.5        102

使用道具 举报

回复
论坛徽章:
0
50#
 楼主| 发表于 2003-7-2 14:26 | 只看该作者
数据库的版本是8.1.7;数据库的init的参数是8.1.0,用不了freelists
ALTER TABLE UC_LOG_PAY STORAGE(FREELISTS 10)
  2  ;

ALTER TABLE UC_LOG_PAY STORAGE(FREELISTS 10)

ORA-00406: COMPATIBLE parameter needs to be 8.1.6.0.0 or greater

使用道具 举报

回复

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

本版积分规则 发表回复

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