(官档自学) 通过分割文件来提高IO
隔离文件的决定仅应由I / O速率,可恢复性问题或可管理性问题决定。 (例如,如果您的LVM不支持条带宽度的动态重新配置,那么您可能需要创建较小的条带宽度,以便能够一次添加n个磁盘来创建具有相同配置的新条带。)
在隔离文件之前,请确认瓶颈确实是I / O问题。 调查瓶颈产生的数据可确定哪些文件具有最高的I / O速率。
数据文件:
如果具有较高I / O的文件是属于包含表和索引的表空间的数据文件,请确定是否可以通过调整SQL或应用程序代码来减少这些文件的I / O
如果具有高I / O的文件是属于TEMP表空间的数据文件,则请调查是否要对执行磁盘排序的SQL语句进行调整以避免这种活动,或者对排序进行调整。
调整应用程序以避免不必要的I / O之后,如果I / O布局仍然无法维持所需的吞吐量,则可以考虑隔离高I / O文件。
重做日志文件:
如果高I / O文件是重做日志文件,请考虑将重做日志文件与其他文件分开。
1.将所有重做日志放在一个磁盘上,不包含任何其他文件。 还考虑可用性; 为了可恢复性目的,同一组的成员应位于不同的物理磁盘和控制器上。
2.将每个重做日志组放在不存储任何其他文件的单独磁盘上。
3.使用操作系统分条工具在多个磁盘上分条重做日志文件。 (在这种情况下,无法进行手动分条。)
4.避免将RAID 5用于重做日志。
重做日志文件由Log Writer(LGWR)进程顺序写入。 如果同一磁盘上没有并发活动,则可以使此操作更快。 将单独的磁盘专用于重做日志文件通常可以确保LGWR平稳运行,而无需进一步调整。 如果您的系统支持异步I / O,但当前未配置此功能,请进行测试以查看使用此功能是否有帮助。 与LGWR相关的性能瓶颈很少见。
归档日志文件:
如果归档比较忙,那就要先注意是不是有ARCHIVE PROCESS 和LGWR之间的 I/O contention。(确保归档读和LGWR写是分开的)通过把日志放在另一个驱动上来实现的。
例如,假设系统有四个重做日志组,每个组有两个成员。 要创建单独的磁盘访问,八个日志文件应标记为1a,1b,2a,2b,3a,3b,4a和4b。 这至少需要四个磁盘,再加上一个用于存档文件的磁盘。
在此示例中,LGWR切换出日志组1(成员1a和1b)并写入日志组2(2a和2b)。 同时,存档器进程从组1读取并写入其存档目的地。 注意重做日志文件是如何竞争隔离的。
注意:镜像重做日志文件,或在单独的磁盘上维护每个重做日志文件的多个副本,不会显着降低LGWR的速度。 LGWR并行写入每个磁盘,并等待直到并行写入的每个部分完成为止。 因此,并行写入的时间不会比最长的单磁盘写入时间长。