`
lk215215
  • 浏览: 64417 次
  • 来自: ...
社区版块
存档分类
最新评论

Oracle优化经典文章---磁盘i/o和碎片篇

阅读更多
不平衡的磁盘I/O和撤消会妨碍性能。这里讨论如何正确定位和配置一些与Oracle数据库相关的物理数据文件。 主要讨论以下内容:
[1] 使用磁盘阵列
    选择合理的RAID方式。

[2] 在可用的硬盘之间分布关键数据文件
    要特别注意的文件:system表空间、TEMPORARY表空间、回滚段或UNDO表空间、联机重做日志文件(最好放在最快的磁盘上)、放在ORACLE_HOME文件夹下的关键Oracle文件、经常被访问的表的数据文件、经常被访问的索引的数据文件

    经验总结:把上面提到的数据文件分布在各个可用的磁盘上
              把数据文件和索引文件分开放置
              对于经常连接的表,把他们的数据和索引表空间分开
              把控制文件的多个备份存储到不同的磁盘和控制器上

    避免I/O磁盘争用,用下面的查询确定文件的I/O问题
         select name,phyrds,phywrts,readtim,writetim
         from v$filestat a,v$dbfile b
         where a.file# = b.file#
         order by readtim desc
         说明:在磁盘上的物理写入和读取次数上如果出现很大的差别,就表明肯定有哪个磁盘负载过多!
    如果出现磁盘负载不平衡,可以通过移动数据文件来均衡文件I/O:
         alter tablespace tablespace_name offline;
         $cp /disk1/a.dbf /disk2/a.dbf;
         alter tablespace tablespace_name rename datafile '/disk1/a.dbf' to '/disk2/a.dbf';
         alter tablespace tablespace online;
         $rm /disk1/a.dbf

[3] 使用本地托管的表空间

[4] 在大型表上使用表分区

[5] 使用索引分区
    索引分区与分区表拥有同样的优点。如果正确执行,则通过访问索引的小片段而不是整个表上的索引可以提高性能。

[6] 了解碎片的概念以及如何消除碎片
    经验总结:使用本地托管的统一扩展表空间
              在字典托管的表空间中使用统一的扩展大小(除了SYSTEM表空间外)
              使扩展尺寸是数据库块尺寸的倍数
              不要在字典托管的表空间上设定除0以外的任何PCTINCRREASE值
              把表放在有合适扩展大小的表空间中
              正确设定PCTINCREASE
              避免使用跨越多个不连续的数据文件的位图索引

[7] 使用撤消管理
    如果想使大量的INSERT、UPDATE、DELETE操作速度更快,可以增大日志文件大小(可以增加用于介质恢复的时间),并确保这些文件在最快的磁盘上。

[8] 使用回滚段
    下面查询显示回滚信息:
        select a.name,b.extents,b.rssize,b.xacts,b.waits,b.gets,optsize,stauts
        from v$rollname a,v$rollstat b
        where a.usn = b.usn;
        说明:如果xacts(活动事务)经常超出1,就需要增加回滚段的数目,以避免可能出现的争用。
    把大的事务隔离到它们自己的回滚段上,用下面的语句:
        commit;
        set transation use rollback segment roll_segment_name;
        delete from big_table;
        commit;

[9] 使用更简单的方法:undo表空间
    Oracle 9i新引入的功能。

[10]通过内存排序来减少磁盘I/O

[11]在不同的磁盘和控制器上存放多个控制文件

[12]使用裸设备改善有写操作频繁的数据的I/O
分享到:
评论

相关推荐

    浅谈Oracle 11g数据库性能调整和优化.pdf

    本文的关键词有性能调整和优化、配置优化、磁盘I/O优化、磁盘碎片调整等。 在数据库性能调整和优化中,需要考虑多方面的因素,包括数据库服务器的性能、数据库的配置、网络I/O情况、应用程序性能情况等。在配置...

    让Oracle跑得更快1:Oracle 10g性能分析与优化思路(1)(带详细目录)

    - 增加RAM:更多的内存意味着更少的磁盘I/O操作。 - 快速磁盘阵列:使用高速磁盘提高数据读写速度。 - 网络优化:提高网络带宽,减少网络延迟。 5. **并发控制**: - **锁定机制**:合理设置锁定级别,避免长...

    oracle高性能优化

    这里可能会有关于Oracle数据库优化的最新文章、实战案例和技术分享,对提升个人技能和解决问题都有很大的帮助。 综上所述,Oracle数据库的高性能优化涉及多个方面,需要综合考虑SQL语句优化、数据库结构设计、系统...

    Oracle 数据库性能调优的一些经验与体会.doc

    优化操作系统的设置可以显著提升Oracle数据库的性能,尤其是在内存管理、网络和磁盘I/O方面。 系统参数调整和优化原则包括共享池和Library Cache的调优。共享池存储SQL语句、存储过程等,其碎片管理、内存分配和库...

    oracle性能优化

    例如,增加缓冲池大小可以减少磁盘I/O,而优化共享池可以减少解析SQL语句的时间。 再者,数据库的物理结构优化不可忽视。合理设置表空间、数据文件和重做日志文件的大小和数量,以及使用合适的数据块和行块大小,有...

    基于Oracle的邮件系统的存储优化.pdf

    - 行链接(Row chaining)是由于行过大无法全部存储在一个数据库块中时产生的,增加了读取数据时的磁盘I/O,降低了性能。 4. **监控和优化策略** - 通过查询`USER_EXTENTS`视图可以获取LOB段的相关信息,监控存储...

    ORACLE9i_优化设计与系统调整

    2. **存储优化**:合理分配表空间、数据文件和段的空间管理,有助于减少I/O竞争和磁盘碎片。例如,使用自动段空间管理(ASSM)可以简化存储管理,提高空间利用率。 3. **内存管理**:Oracle 9i强化了SGA(System ...

    1s4yb3i8qnah15mdzzpn.pdf

    - **SGA配置优化**:通过对SGA的各个组成部分(如Buffer Cache、Shared Pool等)进行细致调整,可以有效减少物理I/O操作,进而降低磁盘I/O延迟。 - **案例研究中的应用**:在这个案例中,作者们通过调整SGA的大小...

    网管教程 从入门到精通软件篇.txt

    CHK:由Windows磁盘碎片整理器或磁盘扫描保存的文件碎片 CHM:编译过的HTML文件 CHP:Ventura Publisher章节文件 CHR:字符集(字体文件) CHT:ChartViem文件;Harvard Graphics矢量文件 CIF:Adaptec CD 创建...

Global site tag (gtag.js) - Google Analytics