shared_pool_size 值太小了,至少200M
最好能讲一下你的应用情况
最好能讲一下你的应用情况
解决方案 »
- SQL语句的问题,求助!!!
- 怎么将CSV文件导入到ORACLE里面
- 求助:ms sql 左连接 转 oracle
- 针对海量差异的问题探讨!
- 连接ORACLE 时、出现的异常?
- Oracle 与防火墙的问题
- 如何做回滚段??????还有数据段、牵引段、临时段??
- 真失败...关于优化pl/sql的问题
- 在Solaris操作系统下,ORACLE中PRO*C问题,急用(在线等)
- 在P4机子上ORACLE8.0.5 CLIENT NET8 配置问题.........,急!!!!!!!!!!!!!!!!!!
- Oracle managment server 启动问题
- 请教最简单的Oracle9i安装问题,急
如果没有job或快照,这个值可以是0,否则也会占用系统资源
不会用到这么多内存,将db_cache_size的值调小一点?2. 能确定最多的并发session数吗? 假如是100,那么pga_aggregate_target
这个参数的值小了(每个session最少占用3M以上)3. 如果不使用JAVA,将JAVA_POOL_SIZE的值调小一点4. 最后一点,做个statspack report吧,看看你们的Oracle系统是不是
真正需要用这么多内存?
SQL> Create tablespace PERFSTAT
datafile ...
size 100M
autoextend on
next 5M
maxsize 150M;
SQL> alter tablespace PERFSTAT
default storage(
INITIAL 50K
NEXT 50K
MINEXTENTS 2
MAXEXTENTS 50
PCTINCREASE 0);如果出现下面的错误,请参考Action里面提供的解决方法
ORA-03232: unable to allocate an extent of 12 blocks from tablespace 3
Action: Increase the value of NEXT from the tablespace using
alter tablespace default storage or decrease the value of
HASH_MULTIBLOCK_IO_COUNT(0)
2. 运行 spcreate.sql
SQL> @ $ORACLE_HOME/rdbms/admin/spcreate.sql
3. 如果不成功, 先运行 spdrop.sql 删除已建立的 PERFSTAT用户
和该用户的对象,然后重新执行 spcreate.sql
4. 测试是否安装成功
SQL> Connect perfstat/perfstat;
SQL> EXECUTE statspack.snap;
...
如果出现PL/SQL Procedure successfully completed,则说明安装成功
5. 得到统计报告
SQL> @ $ORACLE_HOME/rdbms/admin/spreport.sql
需要输入起止的快照ID
批命令方式:
SQL>Connect perfstat/perfstat;
define begin_snap=1
define end_snap=2
define report_name=batch_run
@ $ORACLE_HOME/rdbms/admin/spreport.sql执行完毕后,产生的报告文件名 batch_run.lst
6. 具体应用
UNIX: Crontab
Oracle: JOB
Example:
VARIABLE jobno number;
BEGIN DBMS_JOBS.SUBMIT ( :jobno ,
' dbms_utility.analyze_schema ( "scott", "estimate", NULL, 20) ; ',
sysdate, 'sysdate+30');
commit;
End;
/
改变JOB执行的时间计划
Execute DBMS_JOB.INTERVAL(1,'SYSDATE +(1/48)') --每半小时执行一次
查看当前用户的JOB
select * from USER_JOBS;
查看当前快照信息
select name,snap_id, to_char(SNAP_TIME,'YYYY-MM-DD HH24:mi:ss') As snap_time
from stats$snapshot,v$database
order by snap_id;
定期删除快照
delete from stats$snapshot where snap_id <2;
7. 改变Level和threshold
level =0: 一般的统计信息
level=5: 还包括sql语句搜集, stats$sql_summary
level=10: 还包括子锁统计信息, stats$latch_children
一般不采用level 10
临时修改:
SQL> execute statspack.snap(i_snap_level=>0);
永久修改:
SQL> execute statspack.snap
(i_snap_level=>10,i_modify_parameter=>'true');
change threshold:
desc stats$statspack_parameter;
select executions_th,parse_calls_th,disk_reads_th,
buffer_gets_th,sharable_mem_th,version_count_th
from stats$statspack_parameter
parameters:
EXECUTIONS_TH: number of executions of the SQL statement (100)
PARSE_CALLS_TH: number of parse calls performed by the SQL
statement (1000)
DISK_READS_TH: number of disk reads performed by the SQL
statement (1000)
BUFFER_GETS_TH: number of buffer gets performed by the SQL
statement (10000)
SHARABLE_MEM_TH: size of sharable memory used by the SQL
statement (1M)
VERSION_COUNT_TH: version count for the SQL statement
如果SQL语句超出了上面列出的极限值,这条语句就会被记录到
stats$sql_summary,因此极限值设的比较低时,会加重系统的负担。
修改极限值:
execute statspack.modify_statspack_parameter
(i_buffer_gets_th=>10000, i_disk_reads_th =>10000);
清除不需要的历史快照
SQL> @ $ORACLE_HOME/rdbms/admin/sppurge.sql
批模式
SQL> connect perfstat/perfstat;
define losnapid=1
define hisnapid=2
@ $ORACLE_HOME/rdbms/admin/sppurge