Oracle数据库数据恢复、性能优化

找回密码
注册
搜索
热搜: 活动 交友 discuz
发新帖

47

积分

0

好友

2

主题
1#
发表于 2013-5-25 12:24:55 | 查看: 4502| 回复: 3
操作系统为solaris
数据库版本为11.2.0.3.6
检查发现数据库v$lock视图查询非常慢
11:55:47 SQL> select count(*) from v$lock where block=1;
  COUNT(*)
----------
         0
11:57:10 SQL> 11:57:10 SQL> 11:57:10 SQL>
接近3分钟

检查执行计划:详见执行计划1.txt

看上去似乎执行计划存在问题

通过RBO查询的话速度非常快:
执行计划详见RBO.txt

于是乎我收集了系统的统计信息和动态新能视图的统计信息
exec dbms_stats.gather_fixed_objects_stats
exec DBMS_STATS.GATHER_DICTIONARY_STATS

再次查看执行计划:详见执行计划2.txt

执行计划是发生改变了但是速度没有提升多少

检查该SQL的等待事件:
SQL> select event, p1text, p1 from v$session where sid = 1596;

EVENT                                                            P1TEXT                                                                   P1
---------------------------------------------------------------- ---------------------------------------------------------------- ----------
direct path write temp                                           file number                                                             201
发现等待在direct path write temp

新建文件夹 (2).rar

2.97 KB, 下载次数: 1282

执行计划

2#
发表于 2013-5-25 13:49:43
11.2 是存在这样的问题 由于执行计划不当造成的 v$lock缓慢

http://www.askmaclean.com/archiv ... ath-write-temp.html

见这篇博客

如收集了 DBMS_STATS.GATHER_FIXED_OBJECTS_STATS;  仍无效

可以考虑修改V$LOCk的定义 加入 HINT 来绕过该问题

回复 只看该作者 道具 举报

3#
发表于 2013-5-27 13:07:08
direct path write temp

回复 只看该作者 道具 举报

4#
发表于 2013-5-27 13:08:12
检查下sys用户对应的temp 表空间,其usage是不是过高,可以考虑将sys和应用schema的temp表空间分开

回复 只看该作者 道具 举报

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

QQ|手机版|Archiver|Oracle数据库数据恢复、性能优化

GMT+8, 2024-11-16 15:46 , Processed in 0.060295 second(s), 23 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部
TEL/電話+86 13764045638
Email service@parnassusdata.com
QQ 47079569