在User Schema 上, 用人工指定方式指定 Tmp 的tablespace . 換句話說要人工定義一個tmp 的tablespace 給user schema.——为colm6v这个user单独开一个临时表空间, 个人认为调整之后效果不会有很明显的变化临时表空间的作用是当sql语句中出现order by, group by(也就是需要排序的时候),如果排序的数据比较少,就会在内存中排序;排序的数据量很大时,oracle会把排序的任务放在临时表空间中完成, 内存中排序(逻辑排序)比在磁盘上排序(物理排序)理论上快1000倍!所以临时表空间很大并不是一件好事情,说明sql中存在大量排序的动作,sql语句需要优化! 所以深圳那里需要看一下临时表空间的大小!
当然johanna的意见也会有一定的作用,临时表空间独立出来之后,就不会和sys,system等一系列oracle 内部使用临时表空间的操作产生资源竞争!
2. 請檢查SQL 使用到的where 條件是否均有定index, 除此以外, 檢查使用到的where 條件最好以index 之順序來寫——这部分比较复杂,也是性能最关键的地方,几乎所有的oracle专家都认为70%以上的性能调整都和sql语句优化有关,需要check所有的sql语句where后面的条件是否有用到index的必要, 工程量比较浩大!需要一个个小心谨慎的check!
3. 把index 做一次 dbms_stats dbms.stats 是oracle内部的api, 可以对index,table进行分析,收集统计信息,这样oracle优化器就会有一个非常好的的选择,使性能达到非常好的方法如下:
SQL>select tt.table_name,tt.num_rows,tt.blocks,tt.empty_blocks,tt.avg_row_len from dba_tables tt where tt.owner='COLMTEST'; SQL>select ttt.index_name,ttt.num_rows,ttt.distinct_keys,ttt.avg_leaf_blocks_per_key,ttt.clustering_factor from dba_indexes ttt where ttt.owner='COLMTEST';
执行上述两条命令之后会发现除了table_name和index_name,其余列的统计信息都是不完全的。
SQL>execute dbms_stats.gather_schema_stats(ownname =>'COLMTEST',cascade=>true);
执行完dbms_stats,再调用上述两句语句,会发现所有的列基本上都已经被填充!
PS:执行统计比较慢,相当于所有table,index都扫描一遍的时间,'COLMTEST'改一下另外:对单个表执行统计分析的语句如下:
4. 做過以上處理之後, 再看情形, 再依情況放參數。
——参数暂时不用调整!
5.建议做一个STATSPACK通过Statspack我们可以很容易的确定Oracle数据库的瓶颈所在,记录数据库性能状态,迅速了解数据库运行状况。
方法如下:
1. 安装Statspack安装Statspack拥有SYSDBA(connect / as sysdba)权限的用户登陆。需要在本地安装或者通过telnet登陆到服务器。——客户端登录不可以
2.必要条件:先创建名称为perfstat的表空间,至少100M
3.在那台oracle数据库上用colmv6登录SQL*PLUS, 然后输入SQL> connect sys/sys@(你们那里的sid) as sysdba;SQL> alter system set timed_statistics = true;System altered——使用statspack收集统计信息时建议将该值设置为 TRUE,否则收集的统计信息大约只能起到10%的作用
SQL> @C:\oracle\ora92\rdbms\admin\spcreate.sql;输入 perfstat_password 的值: perfstat输入default_tablespace的值: perfstat输入temporary_tablespace 的值: temp
NOTE:SPCPKG complete. Please check spcpkg.lis for any errors.——需要出现上述语句才算成功,否则请查看。lis文件并执行,进行重建SQL> @C:\oracle\ora92\rdbms\admin\spdrop.sql SQL> @C:\oracle\ora92\rdbms\admin\spcreate.sql;
4.查看文件夹会产生三个文件C:\oracle\ora92\bin spcpkg.lis spctab.lis spcusr.lis
——从下面开始都可以在客户端SQL_PLUS进行操作5.手动执行STATSPACK收集统计信息SQL> show user USER为"PERFSTAT" SQL> execute statspack.snap; ——快照1
6. 然后需要经过4-5个小时(跑批需要包含在里面),再执行SQL> execute statspack.snap; ——快照2
7.最后生成STATSPACK调整报告
SQL> @C:\oracle\ora92\rdbms\admin\spreport.sql;
8.查看产生的report1文档C:\oracle\ora92\bin\report1.txt