ORACLE性能初步调整

1. 請在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' 改一下
 另外:对单个表执行统计分析的语句如下:
EXECUTE dbms_stats.gather_table_stats (ownname=>'citic', tabname=>'col_cust_id',estimate_percent=>50,cascade=>true)

 
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;
Current Instance
~~~~~~~~~~~~~~~~
 
   DB Id    DB Name      Inst Num Instance
----------- ------------ -------- ------------
  357371480 COLM                1 colm
 
Instances in this Statspack schema
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   DB Id    Inst Num DB Name      Instance     Host
----------- -------- ------------ ------------ ------------
  357371480        1 COLM         colm         STEVENHUANG3
 
Using  357371480 for database Id
Using          1 for instance number
 
Completed Snapshots
 
                           Snap                    Snap
Instance     DB Name         Id   Snap Started    Level Comment
------------ ------------ ----- ----------------- ----- ----------------------
colm         COLM           1 11 10 2006 21:5     5
                                0
                                         2 11 10 2006 21:5     5
                                0
   
Specify the Begin and End Snapshot Ids
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
输入 begin_snap 的值 :   1
输入 end_snap 的值 2
End   Snapshot Id specified: 2
 
Specify the Report Name
~~~~~~~~~~~~~~~~~~~~~~~
The default report file name is sp_1_2.  To use this name,
press <return> to continue, otherwise enter an alternative.
输入 report_name 的值 report1.txt
 
End of Report

8 . 查看产生的 report1 文档
C:/oracle/ora92/bin/report1.txt
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值