SQL Server 2008数据库的一些基本概念 区、页、行

原文地址:http://www.cnblogs.com/liuzhendong/archive/2011/10/11/2207361.html

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

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

SQL Server 2008数据库的一些基本概念 区、页、行

时间: 2024-08-02 04:22:09

SQL Server 2008数据库的一些基本概念 区、页、行的相关文章

通过SQL Server 2008数据库复制实现数据库同步备份

SQL Server 2008数据库复制是通过发布/订阅的机制进行多台服务器之间的数据同步,我们把它用于数据库的同步备份.这里的同步备份指的是备份服务器与主服务器进行 实时数据同步,正常情况下只使用主数据库服务器,备份服务器只在主服务器出现故障时投入使用.它是一种优于文件备份的数据库备份解决方案. 在选择数据库同步备份解决方案时,我们评估了两种方式:SQL Server 2008的数据库镜像和SQL Server 2008数据库复制.数据库镜像的优点是系统能自动发现主服务器故障,并且自动切换至镜

初学SQL Server 2008数据库_1

前言(也就是一些废话) 在学SQL Server数据库之前,我们老师刚刚讲完了数据库原理这门课,说是讲完,其实只是讲到了第七章的一部分,后面的都没有讲.我们用的教材是施伯乐的那本数据库系统教程第三版,我学的还算是凑合吧,上上机课时,老师用的是Access数据库,所以我对Access也会一点:还有就是去年曾经看过一点点Oracle数据库:学Java时也曾简单的用过MySQL数据库. 平时所说的数据库,是指该数据库相应的管理软件. 曾听人说过,数据库并不算难,难的是如何使用数据库管理软件,的确,如果

SQLServer2008修改sa密码的方法与SQL server 2008数据库的备份与还原

sa密码的修改转载自:http://blog.csdn.net/templar1000/article/details/20211191 SQL server 2008数据库的备份与还原转自 :http://www.cnblogs.com/zgqys1980/archive/2012/07/04/2576382.html 一.SQLServer2008修改sa密码的方法 1. 先用Window身份验证方式登陆进去,选择数据库实例,右键选择属性--安全性:把服务器身份验证选项从"Window身份验

实战 SQL Server 2008 数据库误删除数据的恢复

关键字:SQL Server 2008, recover deleted records 今天有个朋友很着急地打电话给我,他用delete语句误删除了SQL Server 2008数据库中两个表中的所有记录,而这个数据库之前没有任何备份.让我帮他解决一下,不然他要赔偿客户很多钱. SQL Server中误删除数据的恢复本来不是件难事,从事务日志恢复即可.但是,这个恢复需要有两个前提条件: 1. 至少有一个误删除之前的数据库完全备份. 2. 数据库的恢复模式(Recovery mode)是“完整(

使用Oracle Sql Developer将SQL SERVER 2008数据库移植到Oracle 11g

ORACLE官方提供的Sql Developer自带的Oracle Migration Workbench. 什么是Oracle SQL Developer?在官方页面上,是这样介绍它的: Oracle SQL Developer is a free and fully supported graphical tool for database development. With SQL Developer, you can browse database objects, run SQL st

SQL Server 2008数据库视频教程

SQL Server 2008数据库视频教程 SQL Server 一直以来都是大型数据库的代表,一直以来以其查询速度快,性能稳定而闻名.本套教程,由李天生老师亲自授课录制,从最基础的知识讲起,让每一个想学习SQL Server的学员,都可以轻松学会大型数据库管理. 本站最新推出SQL Server 2016视频教程,大家可以看一下http://www.xin3721.com/eschool/sql2016xin3721/ SQL Sever 2008下载地址 第一章 SQL Server基础

php连接sql server 2008数据库

原文:php连接sql server 2008数据库 关于php连接sql server 2008的问题,2000的版本可以直接通过php中的配置文件修改,2005以上的版本就不行了,需要使用微软公司提供的驱动(sql server driver for php). sql server driver for php下载地址:http://www.microsoft.com/en-us/download/details.aspx?id=20098 1. 下载驱动程序:下载完成后安装释放程序,里面

怎么安装SQL Server 2008数据库

怎么安装SQL Server 2008数据库 | 浏览:7126 | 更新:2014-05-18 22:42 1 2 3 4 5 6 7 分步阅读 SQL Server 2008是一个重大的版本,它推出了许多新的特性和关键的改进,使得它成为至今为止的最强大和最全面的SQL Server版本. 在现今数据的世界里,要获得成功和不断发展,他们需要定位主要的数据趋势的愿景.这个数据平台帮助满足这些数据和下一代数据驱动应用程序的需求. 工具/原料 SQL Server 2008 电脑 方法/步骤 1 双

SQL SERVER 2008 数据库隔离级别代码演示

SQL SERVER 2008 数据库隔离级别代码演示 ? 在各种SQL 的教程上一直都强调SQL SERVER 的4个隔离级别(其实这是SQL 工业标) 未提交读 ReadUncommited? 已提交读 ReadCommited? 不可重复读 RepeatableRead? 序列化 Serializable (为什么叫这个么名字?) 这4种隔离级别,本身没有优劣之分,完全取决于应用的场景. 本质上,他们是在 隔离性(紊乱程度) 和 灵活性(并发性) 之间博弈.简单的说,灵活性越高,隔离性越差