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

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

29

积分

0

好友

5

主题
1#
发表于 2012-6-25 10:32:07 | 查看: 4103| 回复: 2
所用版本win2003x86 ,数据库是10.2.0.4
EventWaitsTime(s)Avg Wait(ms)% Total Call TimeWait Class
CPU time 94 44.9
direct path write temp12,73375635.5User I/O
direct path read temp12,73533315.5User I/O
control file parallel write1,24616137.4System I/O
log file parallel write1,056984.2System I/O

发现有一个会话的查询发生大量hash和sort,临时表空间发生大量读写。想通过手工修改参数,但修改后无效。
另外,该查询使用in,导致共享池内存太大。详见附件,谢谢!
SQL> alter session set workarea_size_policy=manual;

Session altered

Executed in 0 seconds

SQL> show parameter sort

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
nls_sort                             string      
sort_area_retained_size              integer     0
sort_area_size                       integer     65536

SQL> alter session set sort_area_size=10240000;

Session altered

Executed in 0 seconds

SQL> alter session set sort_area_size=10240000;

Session altered

Executed in 0.015 seconds

SQL> alter session set sort_area_size=10240000;

Session altered

Executed in 0 seconds

SQL> show parameter sort_area

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
sort_area_retained_size              integer     0
sort_area_size                       integer     65536
我alter了三次还是没变

awrrpt_1_2614_2615.html

284.97 KB, 下载次数: 643

3#
发表于 2012-6-28 10:45:36
原来是因为在plsql developer命令窗口设置就不行,我在sqlplus里只需要设置一次就可以生效的.

回复 只看该作者 道具 举报

2#
发表于 2012-6-25 22:46:03
无重现你的问题:
SQL> select * from v$version;

BANNER
----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bi
PL/SQL Release 10.2.0.5.0 - Production
CORE    10.2.0.5.0      Production
TNS for Linux: Version 10.2.0.5.0 - Production
NLSRTL Version 10.2.0.5.0 - Production


SQL> set linesize 200 pagesize 2000
SQL>
SQL>
SQL>
SQL> alter session set workarea_size_policy=manual;

Session altered.

SQL>
SQL> alter session set sort_area_size=10240000;

Session altered.

SQL>
SQL>  show parameter sort

NAME                                 TYPE                             VALUE
------------------------------------ -------------------------------- ------------------------------
nls_sort                             string
sort_area_retained_size              integer                          0
sort_area_size                       integer                          10240000



你是否使用  sys用户alter session ?   是否在同一个session内?   做个10046 trace来看一下

回复 只看该作者 道具 举报

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

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

GMT+8, 2024-11-15 23:23 , Processed in 0.055912 second(s), 25 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

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