返回顶部
首页 > 资讯 > 数据库 >怎么理解I/O性能
  • 161
分享到

怎么理解I/O性能

2024-04-02 19:04:59 161人浏览 安东尼
摘要

本篇内容主要讲解“怎么理解I/O性能”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么理解I/O性能”吧!为了理解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 ASMFILE
31 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性能”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

您可能感兴趣的文档:

--结束END--

本文标题: 怎么理解I/O性能

本文链接: https://lsjlt.com/news/65046.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 怎么理解I/O性能
    本篇内容主要讲解“怎么理解I/O性能”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么理解I/O性能”吧!为了理解I/O性能,你必须要详细了解存储文件的存储层次...
    99+
    2024-04-02
  • 怎么理解I/O的原理
    这期内容当中小编将会给大家带来有关 怎么理解I/O的原理,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。1.IO 软件原理I/O 软件目标设备独立性现在让我们转向对 I/O 软件的研究,I/O 软件设计一个...
    99+
    2023-06-16
  • Cassandra的磁盘I/O性能怎么优化
    要优化Cassandra的磁盘I/O性能,可以考虑以下几个方面: 使用SSD硬盘:Solid State Drive (SSD)硬...
    99+
    2024-05-11
    Cassandra
  • Linux的I/O机制怎么理解
    本篇内容主要讲解“Linux的I/O机制怎么理解”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Linux的I/O机制怎么理解”吧!你真的了解多线程吗如果问你“为什么多线程可以提高程序运行效率”,...
    99+
    2023-06-15
  • Linux高性能I/O框架库Libevent怎么用
    本文小编为大家详细介绍“Linux高性能I/O框架库Libevent怎么用”,内容详细,步骤清晰,细节处理妥当,希望这篇“Linux高性能I/O框架库Libevent怎么用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知...
    99+
    2023-06-27
  • Java I/O API性能实例分析
    本篇内容主要讲解“Java I/O API性能实例分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java I/O API性能实例分析”吧!  一、概述   IO API的可伸缩性对Web应用...
    99+
    2023-06-03
  • AIX 下磁盘 I/O 性能分析
    本文主要介绍在磁盘 I/O 性能的概念以及相关的指标,并介绍 AIX 系统下,衡量和监控磁盘 I/O 性能的方法,以及在 AIX 下,常见的可调整参数。磁盘 I/O 的概念I/O 的概念,从字义来理解就是输入输出。操作系统从上层到底层,各个...
    99+
    2023-06-05
  • 怎么更改Linux I/O调度器来调整性能
    这篇文章主要讲解了“怎么更改Linux I/O调度器来调整性能”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么更改Linux I/O调度器来调整性能”吧!为了从 Linux 服务器榨取尽可...
    99+
    2023-06-16
  • Java I/O API之性能分析 (下)(转)
    四、注册与处理过程详解   接下来我们要分析Connection的register()方法。前面我们总是说用Selector注册的连接,其实这是一种简化的说法。实际上,用Selector注册的是一个java.nio.channels.Soc...
    99+
    2023-06-03
  • 怎么解析Linux-I/O模型
    本篇文章为大家展示了怎么解析Linux-I/O模型,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。I/O介绍I/O通常有内存IO、网络I/O、磁盘I/O等,但我们通常说的是网络I/O以及磁盘I/O。网...
    99+
    2023-06-16
  • 如何分析Kata容器的I/O性能
    这篇文章给大家介绍如何分析Kata容器的I/O性能,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。下面的所有分析是基于Kata容器1.6.2版本,我们将探讨这个主题,以了解在I/O绑定性能和安全性都是关键需求的环境中使用...
    99+
    2023-06-15
  • 数据库I/O上的等待事件怎么理解
    这篇文章主要讲解了“数据库I/O上的等待事件怎么理解”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“数据库I/O上的等待事件怎么理解”吧!SQL> se...
    99+
    2024-04-02
  • Node、PHP、Java和Go服务端I/O性能对比
    本篇内容主要讲解“Node、PHP、Java和Go服务端I/O性能对比”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Node、PHP、Java和Go服务端I/O性能对比”吧!了解应用程序的输入/...
    99+
    2023-06-20
  • 如何优化C++ I/O操作以提高性能?
    为提高 c++++ i/o 性能,可采取多种方法:使用缓冲 i/o 分组数据以减少磁盘访问次数。使用 mmap() 系统调用将文件直接映射到内存,避免频繁磁盘访问。使用并行 i/o 在多...
    99+
    2024-05-08
    c++ i/o优化
  • sql server性能调优 I/O开销的示例分析
    这篇文章主要介绍sql server性能调优 I/O开销的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一.概述IO 内存是sql server最重要的资源,数据从磁盘加载到...
    99+
    2024-04-02
  • Linux中直接I/O原理是什么
    这篇文章主要为大家展示了“Linux中直接I/O原理是什么”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Linux中直接I/O原理是什么”这篇文章吧。什么是缓存 I/O (Buffered I/...
    99+
    2023-06-16
  • 如何进行sql server性能调优 I/O开销的深入解析
    今天就跟大家聊聊有关如何进行sql server性能调优 I/O开销的深入解析,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。一.概述IO 内存是sq...
    99+
    2024-04-02
  • Golang 技术性能优化中如何优化 I/O 操作?
    优化 golang 程序的 i/o 操作可以通过以下方法提升性能:使用缓冲区提高效率,减少系统调用次数。对于高吞吐量 i/o,采用并行处理机制,创建管道并使用 goroutine 并行处...
    99+
    2024-05-11
    golang i/o优化
  • ORION I/O测试工具怎么用
    小编给大家分享一下ORION I/O测试工具怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧! ...
    99+
    2024-04-02
  • Linux中如何调整I/O调度器优化系统性能
    这篇文章给大家分享的是有关Linux中如何调整I/O调度器优化系统性能的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Linux I/O 调度器是Linux内核中的一个组成部分,用户可以通过调整这个调度器来优化系统...
    99+
    2023-06-27
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作