oracle 设置使用磁盘IO模式(DBMS_RESOURCE_MANAGER.CALIBRATE_IO的使用)

oracle 设置使用磁盘IO模式

You can use the FILESYSTEMIO_OPTIONSinitialization parameter to  enable or disable asynchronous I/O or direct I/O on file system files. This  parameter is platform-specific and has a default value that is best for a  particular platform. It can be dynamically changed to update the default  setting.

FILESYTEMIO_OPTIONScan be set to one of the following  values:

  • ASYNCH:enable asynchronous I/O on file system files, which has  no timing requirement for transmission.

  • DIRECTIO:enable direct I/O on file system files, which bypasses  the buffer cache.

  • SETALL:enable both asynchronous and direct I/O on file system  files.

  • NONE:disable both asynchronous and direct I/O on file system  files.


alter system set filesystemio_options='DIRECTIO' scope = spfile;


oracle 11G可以使用DBMS_RESOURCE_MANAGER.CALIBRATE_IO

DECLARE
  lat  INTEGER;
  iops INTEGER;
  mbps INTEGER;
BEGIN
-- DBMS_RESOURCE_MANAGER.CALIBRATE_IO (<DISKS>, <MAX_LATENCY>, iops, mbps, lat);
   DBMS_RESOURCE_MANAGER.CALIBRATE_IO (2, 10, iops, mbps, lat);

  DBMS_OUTPUT.PUT_LINE ('max_iops = ' || iops);
  DBMS_OUTPUT.PUT_LINE ('latency  = ' || lat);
  dbms_output.put_line('max_mbps = ' || mbps);
end;

http://docs.oracle.com/cd/E18283_01/server.112/e16638/iodesign.htm#insertedID3


10G没有CALIBRATE_IO

就做一个插入1000000次的操作

--DIRECTIO
DECLARE
  T1 DATE;
  T2 DATE;
BEGIN
  SELECT SYSDATE  
  INTO   T1  
  FROM   DUAL;
  FOR C IN 1 .. 1000000 LOOP  
    INSERT INTO T    
    VALUES    
      ('你好');  
  END LOOP;
  SELECT SYSDATE  
  INTO   T2  
  FROM   DUAL;
  DBMS_OUTPUT.PUT_LINE((T2 - T1) * 24 * 60 * 60);
  COMMIT;
END;


操作系统使用centos 5.8+10GR2,使用linux的文件系统

结论

--DIRECTIO 46.03秒

--NONE 50.92秒

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值