科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道性能调优:ORACLE性能初步调整

性能调优:ORACLE性能初步调整

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

在User Schema 上, 用人工指定方式指定 Tmp 的tablespace . ?句??要人工定?一?tmp 的tablespace ?user schema.――为colm6v这个user单独开一个临时表空间。

作者:中国IT实验室 来源:中国IT实验室 2007年10月7日

关键字: 性能调优 数据库 ORACLE

  • 评论
  • 分享微博
  • 分享邮件

    在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

    Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1458290

 

查看本文来源

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章