• SQL Server 2008数据库的一些基本概念


    以前总是没弄明白这些基本概念,现在整理如下:

    1.区:

    区是SQL Server 中管理空间的基本单位。

    一个区是八个物理上连续的页(即 64 KB),所有页都存储在区中, 这意味着 SQL Server 数据库中每 MB 有 16 个区。
    一旦一个区段已满, 下一条数据Sql server将分配一个区段空间, 防止每次添加都要分配空间.

    2.页(Page):

    页是SQL Server 中数据存储的基本单位, 它是区段的分配单元, 一页8K, 它下面就是数据行了, 但每页的行数不定, 这取决于数据行的大小.

    数据库中的数据文件(.mdf 或 .ndf)分配的磁盘空间可以从逻辑上划分成页(从 0 到 n 连续编号)。磁盘 I/O 操作在页级执行。也就是说,SQL Server 每次读取或写入数据的最少数据单位是数据页。

    每页的开头是 96 字节的标头,用于存储有关页的系统信息。此信息包括页码、页类型、页的可用空间以及拥有该页的对象的分配单元 ID。

    在 SQL Server 中,页的大小为 8 KB。这意味着 SQL Server 数据库中每 MB 有 128 页。依次类推。根据数据库的文件大小,我们可以算出数据库有多少数据页。 

     

    3.页的类型: 数据页, 索引页, Blob页等等.

    4.行: 因为行存于页中,因此, 一行的大小通常最多8K(8060字符, 一页的上限), 一行最大列数为1024列(字段).
    如果是varchar(max), text, image时, 可以跨越多页, 一行最大2GB, 此时, 原始的行用来存放指针及其它列.

    5.全文目录: 虽然和sql server在一起, 但实际上该目录是独立存放在磁盘上的.

    6.索引: 是与表或视图关联的磁盘上的结构,可以加快从表或视图中检索行的速度。

    它包含由表或视图中的一列或多列生成的键。这些键存储在一个结构(B 树)中,使 SQL Server 可以快速有效地查找与键值关联的行。

    7.索引的类型:聚集, 非聚集.

    另外还有唯一索引, 唯一索引确保索引键不包含重复的值,因此,表或视图中的每一行在某种程度上是唯一的。

    聚集索引和非聚集索引都可以是唯一索引。

    8.聚集索引: 根据数据行的键值在表或视图中排序和存储这些数据行。

    每个表只能有一个聚集索引,因为数据行本身只能按一个顺序排序。

    只有当表包含聚集索引时,表中的数据行才按排序顺序存储。如果表具有聚集索引,则该表称为聚集表。

    如果表没有聚集索引,则其数据行存储在一个称为堆的无序结构中。

    即聚集表是有聚集索引的表,堆是没有聚集索引的表。

    索引视图与聚集表具有相同的存储结构。

    聚集索引的叶节点就是实际的数据页。

    聚集索引的平均大小大约为表大小的5%左右。

    9.非聚集索引:这段msdn写的云里雾里的,就不抄了。

    每个表最多可以有249个非聚集索引.

    10.索引的维护:每当修改了表数据后,都会自动维护表或视图的索引。

    11.索引和约束: 对表列定义了 PRIMARY KEY 约束和 UNIQUE 约束时,会自动创建索引。

    例如,如果创建了表并将一个特定列标识为主键,则 数据库引擎自动对该列创建 PRIMARY KEY 约束和索引。

    12.分区表 

    还没搞明白, 也没实际用过.

    13.回家研究一下B 树, 还没太明白索引的原理.

    参考帖子:

    SQL Server 索引基础知识(1)--- 记录数据的基本格式 .
    http://blog.csdn.net/ghj1976/article/details/2010366

  • 相关阅读:
    ios swift 支持cocoaPods
    iOS 国际化
    ios storyboard全解析 (二)
    ios storyboard全解析 (一)
    UML类图的几个关系自我总结,(入门级)
    crypt 病毒
    js思维导向图
    关于索引的使用
    SQL Server 索引结构及其使用
    关于js数组的那些事
  • 原文地址:https://www.cnblogs.com/liuzhendong/p/2207361.html
Copyright © 2020-2023  润新知