千家信息网

怎么理解I/O性能

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,本篇内容主要讲解"怎么理解I/O性能",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"怎么理解I/O性能"吧!为了理解I/O性能,你必须要详细了解存储文件的存
千家信息网最后更新 2026年11月01日怎么理解I/O性能

本篇内容主要讲解"怎么理解I/O性能",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"怎么理解I/O性能"吧!

为了理解I/O性能,你必须要详细了解存储文件的存储层次信息。Oracle提供了一组动态性能视国来显示文件到逻辑卷中间层到实际的物理设备之间的映射信息。使用这些动态性能视图,可以找到一个文件的任何数据块所内置的实际物理磁盘。Oracle数据库使用一个名叫FMON的后台进程来管理映射信息。Oracle提供了PL/SQL dbms_storage_map包来将映射操作填充到映射视图中。Oracle数据库文件映射当映射Oracle ASM文件时不需要使用第三方的动态库。另外,Oracle数据库支持在所有操作系统平台上对Oracle ASM文件的映射。

对Oracle ASM文件启用文件映射
为了启用文件映射,需要将参数file_mapping设置为true。数据库实例不必关闭来设置这个参数。可以使用以下alter system语句来设置这个参数:

SQL> alter system set file_mapping=true scope=both sid='*';System altered.

执行合适的dbms_storage_map映射过程
.在冷启动情况下,Oracle数据库在刚刚启动时没有映射操作被调用。可以执行dbms_storage_map.map_all过程来为数据库相关的整个I/O子系统来构建映射信息。例如,下面的命令构建映射信息并且提供10000事件:

SQL> execute dbms_storage_map.map_all(10000);PL/SQL procedure successfully completed.

.在暖启动情况下,Oracle数据库已经构建了映射信息,可以选择执行dbms_storage_map.map_save过程来将映射信息保存在数据字典中。缺省情况下这个过程将被dbms_storage_map.map_all过程调用,这将强制SGA中的所有映射信息被刷新到磁盘。缺省情况下dbms_storage_map.map_save过程将被dbms_storage_map.map_all()。在重启数据库后,使用dbms_storage_map.restore()过程来还原映射信息到SGA中。如果需要,dbms_storage_map.map_all()可以用来刷新映射信息。

由dbms_storage_map包生成的映射信息会被捕获到动态性能视图中。这些视图包括v$map_comp_list,v$map_element,v$map_ext_element,v$map_file,v$map_file_extent,v$map_file_io_stack,v$map_library与v$map_subelement。
可以使用v$map_file来查询文件映射信息:

SQL> select file_map_idx, substr(file_name,1,45), file_type, file_structure from v$map_file;FILE_MAP_IDX SUBSTR(FILE_NAME,1,45)                                                                     FILE_TYPE   FILE_STRU------------ ------------------------------------------------------------------------------------------ ----------- ---------           0 +DATA/CS/DATAFILE/system.272.970601831                                                     DATAFILE    ASMFILE           1 +DATA/CS/DATAFILE/sysaux.273.970601881                                                     DATAFILE    ASMFILE           2 +DATA/CS/DATAFILE/undotbs1.274.970601905                                                   DATAFILE    ASMFILE           3 +DATA/CS/4700A987085B3DFAE05387E5E50A8C7B/DAT                                              DATAFILE    ASMFILE           4 +DATA/CS/4700A987085B3DFAE05387E5E50A8C7B/DAT                                              DATAFILE    ASMFILE           5 +DATA/CS/DATAFILE/users.275.970601909                                                      DATAFILE    ASMFILE           6 +DATA/CS/4700A987085B3DFAE05387E5E50A8C7B/DAT                                              DATAFILE    ASMFILE           7 +DATA/CS/DATAFILE/undotbs2.284.970602381                                                   DATAFILE    ASMFILE           8 +DATA/CS/DATAFILE/test.326.976211663                                                       DATAFILE    ASMFILE           9 +DATA/CS/DATAFILE/jy.331.976296525                                                         DATAFILE    ASMFILE          10 +DATA/CS/6C61AD7B443C2CD2E053BE828A0A2A74/DAT                                              DATAFILE    ASMFILE          11 +DATA/CS/6C61AD7B443C2CD2E053BE828A0A2A74/DAT                                              DATAFILE    ASMFILE          12 +DATA/CS/6C61AD7B443C2CD2E053BE828A0A2A74/DAT                                              DATAFILE    ASMFILE          13 +DATA/CS/ONLINELOG/group_2.277.970601985                                                   LOGFILE     ASMFILE          14 +DATA/CS/ONLINELOG/group_1.278.970601985                                                   LOGFILE     ASMFILE          15 +DATA/CS/ONLINELOG/group_3.285.970602759                                                   LOGFILE     ASMFILE          16 +DATA/CS/ONLINELOG/group_4.286.970602761                                                   LOGFILE     ASMFILE          17 +DATA/CS/ONLINELOG/redo05.log                                                              LOGFILE     ASMFILE          18 +DATA/CS/ONLINELOG/redo06.log                                                              LOGFILE     ASMFILE          19 +DATA/CS/ONLINELOG/redo07.log                                                              LOGFILE     ASMFILE          20 +DATA/CS/ONLINELOG/redo08.log                                                              LOGFILE     ASMFILE          21 +DATA/CS/ONLINELOG/redo09.log                                                              LOGFILE     ASMFILE          22 +DATA/CS/ONLINELOG/redo10.log                                                              LOGFILE     ASMFILE          23 +DATA/CS/TEMPFILE/temp.279.970602003                                                       TEMPFILE    ASMFILE          24 +DATA/CS/67369AA1C9AA3E71E053BE828A0A8262/TEM                                              TEMPFILE    ASMFILE          25 +DATA/CS/6C61AD7B443C2CD2E053BE828A0A2A74/TEM                                              TEMPFILE    ASMFILE          26 +DATA/arch/1_222_970601983.dbf                                                             ARCHIVEFILE ASMFILE          27 +DATA/arch/1_223_970601983.dbf                                                             ARCHIVEFILE ASMFILE          28 +DATA/arch/2_277_970601983.dbf                                                             ARCHIVEFILE ASMFILE          29 +DATA/arch/2_278_970601983.dbf                                                             ARCHIVEFILE ASMFILE          30 +DATA/arch/2_279_970601983.dbf                                                             ARCHIVEFILE ASMFILE          31 +DATA/CS/CONTROLFILE/current.276.970601979                                                 CONTROLFILE ASMFILE31 rows selected.

可以使用dbms_storage_map PL/SQL包中的过程来控制映射操作。例如,可以使用dbms_storage_map.map_object过程通过指定对象名,所有者与类型来对数据库对象来构建映射信息。在dbms_storage_map.map_object过程运行之后,那么可以通过查询map_object视图来查询映射信息

SQL> execute dbms_storage_map.map_object('T1','C##TEST','TABLE');PL/SQL procedure successfully completed.SQL> select io.object_name o_name, io.object_owner o_owner, io.object_type o_type,  2  mf.file_name, me.elem_name, io.depth,  3  (sum(io.cu_size * (io.num_cu - decode(io.parity_period, 0, 0,  4  trunc(io.num_cu / io.parity_period)))) / 2) o_size  5  from map_object io, v$map_element me, v$map_file mf  6  where io.object_name = 'T1'  7  and io.object_owner = 'C##TEST'and io.object_type = 'TABLE'  8    9  and me.elem_idx = io.elem_idx 10  and mf.file_map_idx = io.file_map_idx 11  group by io.elem_idx, io.file_map_idx, me.elem_name, mf.file_name, io.depth, 12  io.object_name, io.object_owner, io.object_type 13  order by io.depth;O_NAME               O_OWNER              O_TYP FILE_NAME                                          ELEM_NAME                 DEPTH     O_SIZE-------------------- -------------------- ----- -------------------------------------------------- -------------------- ---------- ----------T1                   C##TEST              TABLE +DATA/CS/DATAFILE/users.275.970601909              +/dev/asmdisk04               0         64

到此,相信大家对"怎么理解I/O性能"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

信息 数据 文件 过程 数据库 性能 视图 动态 情况 查询 参数 实际 内容 对象 物理 磁盘 存储 学习 合适 实用 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 山东特亿宝互联网科技有限公司 互联网科技保险 善班互联网科技 奇酷互联网络科技 深圳天众互联网科技公司 互联网科技网站 撒么互联网科技公司 隆华科技工业互联网 中国科技互联网公司收入 互联网科技项目计划书材料类 晓花互联网科技有限公司网址 乌鲁木齐新华智原互联网科技学校 互联网科技和法律行业 工业互联网等科技实现智能化赋能 江苏苏星互联网科技有限公司 云南省自由互联网科技有限公司 第三届互联网大会安防黑科技 河南商务圈互联网科技有限公司 北京瑞云互联网科技有限公司 互联网企业和网络科技有限公司 科技与互联网 杭州互联网科技公司 互联网科技公司名称 甘肃拓世互联网科技有限公司 济南华为互联网科技产业总部基地 厦门比较好的科技互联网公司 健康食品互联网创新科技园项目 领航科技大厦互联网公司 互联网科技新闻 恒生科技指数 中概互联网
0