• DB2 9 基本底细基本(730 磨练)认证指南,第 3 部门: 拜候 DB2 数据(2)


    developerWorks








    什么组成了 DB2 数据库?

    数据库的逻辑、物理和功能特性

    DB2 数据库理论上由一个器材集合组成。从用户的角度来看,数据库是一组素日以某种要领干系联的表。

    从数据库经管员(DBA,也便是您)的角度来看,数据库比这要复杂一点儿。理论的数据库包含很多物理器材和逻辑器材:

    • 表、视图、索引、形式
    • 锁、触发器、存储过程、包
    • 缓冲池、日志文件、表空间

    这些器材中的一部门(好比表或视图)帮手选择如何对数据中止组织。其他器材(好比表空间)触及数据库的物理完成。最后,一些器材(好比缓冲池和其他内存器材)只处理惩如何经管数据库功能。

    DBA 应该首先关注数据库的物理完成,而不是间接钻研一切可以或许的参数和器材组合。如何树立数据库并分派它所需的磁盘存储?要正确地答复这个效果,需求领会数据库中的基本器材以及它们如何映射到物理磁盘存储。

    DB2 存储模子

    DB2 哄骗一个逻辑存储模子和一个物理存储模子来处理惩数据。用户垄断的理论数据放在 中。表由行和列组成,用户并不晓得数据的物理示意。这一理想有时辰称为数据的物理独立性

    表本身放在表空间 中。表空间作为数据库与包含理论表数据的容器器材之间的一层。表空间可以包含多个表。

    容器 是一个物理存储配备。它可以由目录名、配备名或文件名标识。容器被分派给表空间。表空间可以跨很多容器,这意味着可以打破垄断琐屑关于一个容器可以包含的数据量的限定。下图申了然一切这些器材之间的干系。

    DB2 存储模子

    固然表是表空间中的基本器材,但是 DBA 必需领会 DB2 琐屑中的其他器材以及它们如何映射到表空间。









    表、索引、长字段和表空间

    表、索引和长字段(有时辰称为二进制除夜器材,BLOB)是在 DB2 数据库中树立的器材。这些器材映射到表空间,表空间本身映射到物理磁盘存储。

    表是数据记实的无序集合。它由列和行组成,行经常也称为记实。表可所以长期的表(基表)、且则的(声明)表或且则的(派生)表。从 DBA 的角度来看,空间都市分派给这些表器材,但是是在差别的表空间中。

    索引 是与一个表干系联的物理器材。索引用来在表中执行专一性(也便是说,确保没有反复的值)以及革新检索信息时的功能。运转 SQL(构造化盘诘言语)语句并不需求索引;但是,要是树立索引来行进盘诘处理惩的速度,您的用户会因此受害!

    长字段(即 BLOB)是表中的一种数据范例。这种数据范例素日由非构造化数据(图像、文档、音频文件)组成,经常包含除夜量的信息。要是在表中存储这种范例的数据,就会在删除、拔出和垄断这些器材时招致过除夜的开支。所以并不是将它们间接放在表的行中,而是存储一个指针,这个指针链接到一个 Large 表空间(过去称为 Long Field 表空间)。DBA 需求领会这种数据范例,从而树立恰当的表空间来包含这些器材。

    另一种不凡的数据范例是 XML(eXtensible Markup Language,可扩展标记言语)。XML 这种数据范例可以存储老手中,也可以存储在与 BLOB 器材雷同的独自的表空间中。XML 数据范例的怪异之处在于,它可以跨一个表中的多个页面,而其他数据范例必需放在与行相反的页面中。DBA 需求哄骗使用顺序贪图器来选择表中存储的 XML 器材应该放在成例(数据)页面中,照样放在本身的独自的表空间中。要是检索功能是严重的要素,DBA 应该哄骗比力除夜的页面大小并将 XML 列放在与成例数据相反的表空间中。

    有了关于这些器材范例的知识,目下当今就可以选择需求分派的空间范例了。









    DMS 和 SMS 表空间

    表空间是数据库与这个数据库中存储的表之间的逻辑层。表空间在数据库中树立,表在表空间中树立。DB2 支撑三种表空间:

    • 琐屑经管的空间(System-Managed Space,SMS):在这里,由垄断琐屑的文件琐屑经管器分派和经管空间。在 DB2 9 之前,要是不带任何参数树立数据库或表空间,就会招致一切表空间作为 SMS 器材树立。

    • 数据库经管的空间(Database-Managed Space,DMS):在这里,由数据库经管顺序节制存储空间。这种表空间本质上是一种不凡用处的文件琐屑完成,可以最好地舒服数据库经管顺序的需求。

    • DMS 的自动存储(Automatic Storage With DMS):自动存储理论上不是一种独自的表空间范例,而是一种处理惩 DMS 存储的分比喻要领。DMS 容器需求比力多的维护(见背面的一节),在 DB2 V8.2.2 中引入了自动存储,作为简化空间经管的要领。

    SMS 表空间需求的维护非常少。但是,与 DMS 表空间比力,SMS 表空间提供的优化选项少并且功能不好。

    那么,应该选择哪种表空间贪图呢?









    DMS、SMS 与自动存储

    固然上面的表并不双方面,但是它包含在 DMS、自动存储和 SMS 表空间之间中止选择时要思索的一些要素。
    特性 SMS DMS 自动存储
    能否分段(Striping)? 是 是 是
    默许范例 Version 8 无 Version 9
    器材经管 垄断琐屑 DB2 DB2
    空间分派 按需添加/收缩 预先分派;大小可以收缩和添加,但是需求 DBA 过问过问过问。 预先分派;可以自动添加。
    经管的简洁性 最好;很少需求调优,乃至不需求 好,但是需求一些调优(比喻, EXTENTSIZE PREFETCHSIZE) 最好;很少需求调优,乃至不需求
    功能 非常好 最好;可颠末哄骗原始容器多获得 5% 到 10% 的收益 最好;但是,可以弗成使原始容器
    表空间最除夜大小 64GB(4K 页面) 2TB(4K 页面) 2TB(4K 页面)

    除了哄骗 SMS 表空间可以简化经管之外,这两种存储模子之间最明显的分比喻是表空间的最除夜大小。在哄骗 SMS 时,DBA 最多只能在表空间中放 64GB 的数据。将页面大小改为 32K,可以将这个限定扩除夜到 512GB,但代价是每个页面上的可用空间可以或许会更少。改为 DMS 模子会将表空间限定扩除夜到 2TB(4K 页面大小的情况下)。要是将页面大小改为 32K,可用空间可以添加到 16TB。固然另有让表大小打破 64GB 限定的其他要领,但是最简略的要领可以或许是一末尾就哄骗 DMS 表空间。









    DMS 与自动存储

    DB2 8.2.2 引入了自动存储的概念。自动存储承诺 DBA 为数据库设置在树立一切表空间容器时可以哄骗的存储途径。DBA 不必显式地定义表空间的职位地方和大小,琐屑将自动地分派表空间。在 DB2 9 中,数据库在树立时将启用自动存储,除非 DBA 显式地覆盖这个设置。

    启用自动存储的数据库有一个或多个干系联的存储途径。表空间可以定义为 “由自动存储中止经管”,它的容器由 DB2 依据这些存储途径中止分派。数据库只能在树立时启用自动存储。关于在最后没有启用自动存储的数据库,不克不及在当前启用这个特性。异样,关于在最后启用了自动存储的数据库,也不克不及在当前禁用这个特性。

    上面的表总结了经管非自动存储和自动存储之间的一些分比喻。
    特性 非自动存储 自动存储
    容器的树立 必需在树立表空间时显式地提供容器。 不克不及在树立表空间时提供容器;它们将由 DB2 自动地分派。
    容器大小的调解 在默许情况下,表空间大小的自动调解是关闭的(AUTORESIZE NO)。 在默许情况下,表空间大小的自动调解是掀开的(AUTORESIZE YES)。
    初始大小 不克不及哄骗 INITIALSIZE 子句指定表空间的初始大小。 哄骗 INITIALSIZE 子句指定表空间的初始大小。
    容器的批改 可以哄骗 ALTER TABLESPACE 语句(ADD、DROP、BEGIN NEW STRIPE SET 等等)执行容器垄断。 不克不及执行容器垄断,由于由 DB2 节制空间经管。
    经管的简洁性 可以哄骗重定向的光复垄断从新定义与表空间干系联的容器。 不克不及哄骗重定向的光复垄断从新定义与表空间干系联的容器,由于由 DB2 节制空间经管。

    引入自动存储模子的主要目标是简化 DMS 表空间的经管,同时坚持其功能特性。有的时分 DBA 必需定义哄骗的表空间的一切特性,但是很多使用顺序都市从自动存储提供的简化经管获益。









    DB2 存储模子小结

    我们在本节讨论了很多内容。我们来总结一下已经学到的 DB2 数据库知识。

    • 数据库是一个器材集合,器材包括表、索引、视图和长器材。
    • 这些器材存储在表空间中,表空间由容器组成。
    • 表空间可以由垄断琐屑经管(SMS),也可以由 DB2 经管(DMS,自动存储)。
    • 应该主要依据功能和维护要素选择要哄骗的表空间范例。

    既然已经驾驭了分比喻范例的表空间,就该树立第一个数据库了。下一节将声明注解如何树立数据库。




    版权声明: 原创作品,承诺转载,转载时请务必以超链接体式格局标明文章 原始情由 、作者信息和本声明。不然将追查功令责任。

  • 相关阅读:
    浏览器报错:unexpected end of input 解决方法
    MySQL 分库分表方案,总结的非常好!
    打给比较形象的比方,就是你拿着大白菜去大街上卖。这大白菜就你自己(预估自己的价格:价格喊高了,把白菜价当灵芝价卖,把买家都吓跑了,也就无人问津了。报价过低,则委屈了自己),要提前写出月薪范围,节省双方时间
    一张图弄明白开源协议-GPL、BSD、MIT、Mozilla、Apache和LGPL 之间的区别
    一个简单的C++性能测试工具(ms级别)
    VS2005下第一个ATL
    Boost::thread库的使用
    简易安装python统计包
    pip安装包报错:Microsoft Visual C++ 9.0 is required Unable to find vcvarsall.bat
    Parallel.Invoke并行你的代码
  • 原文地址:https://www.cnblogs.com/zgqjymx/p/1972965.html
Copyright © 2020-2023  润新知