Chinaunix首页 | 论坛 | 博客
  • 博客访问: 166323
  • 博文数量: 103
  • 博客积分: 2251
  • 博客等级: 大尉
  • 技术积分: 1095
  • 用 户 组: 普通用户
  • 注册时间: 2007-04-03 11:15
文章分类

全部博文(103)

文章存档

2011年(103)

分类: 数据库开发技术

2011-05-04 23:11:38

原帖首发于it168专稿,链接为
|,?LwM7?r)w&AO6517  
之所以写 存储结构,很大程度上是因为看了《SQL Server 内幕存储引擎》和《SQL Server 2008 Internals》,其次主要是为了满足自己的好奇心和虚荣心。

  说实话,了解SQLServer2008的存储结构,也许并不会提高你的SQL技能,也许也不会提升你对SQL Server性能优化的能力。出于好玩的目的,希望能够和大家分享一下。

  本文算是对两本书的阅读笔记,加上自己的动手实践和领悟;如果涉及版权问题和原创问题概不负责。

  从直观的角度出发,我们可以观察到SQL Server的物理存储由若干构成,其中

数据库类别数据库名称数据库描述
系统数据库mastermaster 数据库记录 SQL Server 系统的所有系统级信息。主要包括实例范围的元数据、端点、链接和系统配置设置以及记录了所有其他数据库的存在、数据库文件的位置以及 SQL Server 的初始化信息。
model提供了SQL Server 实例上创建的所有数据库的模板。
msdb主要由 SQL Server 代理用于计划警报和作业
tempdbtempdb 系统数据库是一个全局资源,可供连接到 SQL Server 实例的所有用户使用,并可用于保存显式创建的临时用户对象、SQL Server 数据库引擎创建的内部对象,行版本数据等
户数据库db1/db2 


T O-~"^3@ E-E.RF?7w6517   如果我们在数据库处点击右键,选择属性,可以在文件处看到:

  每一个数据库无论系统数据库还是用户数据库都是由两类数据库文件构成,即行数据数据库文件和日志文件;而行数据数据库文件则有一个主要数据文件和N个次要数据文件构成。

  我们还可以再考察一下文件组页,每个数据库都有一个Primary主文件组和N个用户定义文件组构成。通过对表对象应用filegroup选项,能够将不同的表分散到不同的磁盘上,以提高系统性能。

  数据库又主要由表、视图、函数、存储过程、触发器、类型、规则、默认值等等构成。

  当然我们主要考察的对象是表,每一个数据库实际上都包含一系列系统表和一系列用户表。

  而表又包括一系列的列、主外键、约束、触发器、索引等。

   SQLServer2008中提供了相当丰富的系统视图,能够从宏观到微观,从静态到动态反应数据库对象的存储结果、系统性能、系统等待事件等等。同时 也保留了与早期版本兼容性的视图,主要差别在于SQLServer2008提供的新系统视图一是更加全面和丰富、二是更注重命名规则。

        SQLServer2008的几乎所有对象信息都存在于sys.objects系统视图中,同时又在不同的系统视图中保留了相应的副本,对于函数、视图、 存储过程、触发器等相应的文本对象,把相应的对象的详细资料存于新的sys.sql_modules视图中。

序号对象类型对象类型描述相关系统表
1AF = 聚合函数 (CLR)AGGREGATE_FUNCTIONN/A
2C = CHECK 约束CHECK_CONSTRAINTCHECK_CONSTRAINTS
3D = DEFAULT(约束或独立)DEFAULT_CONSTRAINTDEFAULT_CONSTRAINTS
4F = FOREIGN KEY 约束FOREIGN_KEY_CONSTRAINTFOREIGN_KEYS
5FN = SQL 标量函数SQL_SCALAR_FUNCTIONSQL_MODULES
6FS = 程序集 (CLR) 标量函数CLR_SCALAR_FUNCTIONN/A
7FT = 程序集 (CLR) 表值函数CLR_TABLE_VALUED_FUNCTIONN/A
8IF = SQL 内联表值函数SQL_INLINE_TABLE_VALUED_FUNCTIONSQL_MODULES
9IT = 内部表INTERNAL_TABLEINTERNAL_TABLES
10P = SQL 存储过程SQL_STORED_PROCEDUREPROCEDURES
S4eiv&gPd6517SQL_MODULES
#lg)tj d6517 
11PC = 程序集 (CLR) 存储过程CLR_STORED_PROCEDUREN/A
12PG = 计划指南PLAN_GUIDEPLAN_GUIDES
13PK = PRIMARY KEY 约束PRIMARY_KEY_CONSTRAINTKEY_CONSTRAINTS
14R = 规则(旧式,独立)RULESQL_MODULES
15RF = 复制筛选过程REPLICATION_FILTER_PROCEDURESQL_MODULES
16S = 系统基表SYSTEM_TABLEOBJECTS
17SN = 同义词SYNONYMSYNONYMS
18SQ = 服务队列SERVICE_QUEUESERVICE_QUEUESS
19TA = 程序集 (CLR) DML 触发器CLR_TRIGGERN/A
20TF = SQL 表值函数SQL_TABLE_VALUED_FUNCTIONSQL_MODULES
21TR = SQL DML 触发器SQL_TRIGGERTRIGGERS
6I.Ob5[)@-f3\ fp6517SQL_MODULESITPUB个人空间+^YY:uPB:r
 
22U = 表(用户定义类型)USER_TABLETABLES
23UQ = UNIQUE 约束UNIQUE_CONSTRAINTKEY_CONSTRAINTS
24V = 视图VIEWVIEWS
$T s;v4D9I2cw\6517SQL_MODULESITPUB个人空间ecz vjz
阅读(568) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~