zoukankan      html  css  js  c++  java
  • 索引存储原理

    存储基础

    SQL Server内部使用了大量的结构来存储和组织数据。

    SQL Server使用页来存储一切。当数据文件分配给数据库的时候,所有可用空间都会被分割成页,一页8KB (8,192 字节) ,页从0开始编号,依次加1.SQL Server与数据文件的IO交互,最小单位是页。

    页有3个关键部分组成,the page header, records, and the offset array 页头、记录集。

    页头有96字节,记录了页的元数据信息,

    偏移数组,36字节,记录了页内行数据的起始地址指针。

    每当添加一行数据,如下:

    页的基础结构是一样的,但是使用方式却不同,例如数据页、索引结构、大对象。

    扩展

    扩展是另一个基础的结构,就是数据文件内,必须物理连续8页构成的组。有2中类型的扩展,混合和单一。

    创建一个 表时,数据量小于8页,页可以被分配给其他对象,直到大于8页,才会变成一个表的数据。

     页类型会关联在页上指明当前的用途,有哪些?

    • File header page
    • Boot page
    • Page Free Space (PFS) page
    • Global Allocation Map (GAM) page
    • Shared Global Allocation Map (SGAM) page
    • Differential Changed Map (DIFF) page
    • Minimally Logged (ML) page
    • Index Allocation Map (IAM) page
    • Data page
    • Index page
    • Large object (Text and Image) page

    有一些页类型是固定的,

     

    注意:日志文件没有使用“页架构”,只有数据文件才会这样使用。

     使用了组织结构来排序数据,如下:

    • Heap 堆
    • Balanced-tree (B-tree)
    • Columnar

    这些结构会映射为特殊的索引类型。

  • 相关阅读:
    this is a test from windows live writer 11529
    RoR部署方案深度剖析 (转载自javaeye)
    Rails每周一题(六): Security Guide(上) (转载)
    让你大脑变冷静的28句英文
    REST on Rails之自定义路由
    REST on Rails之资源嵌套
    #### 高薪 ##招聘:。。。。。 待遇非常不错。
    JavaEye网站的RoR性能优化经验谈 (转载)
    网页打印的分页问题
    Ruby Metaclass详解
  • 原文地址:https://www.cnblogs.com/PerfectBeauty/p/13132472.html
Copyright © 2011-2022 走看看