设为首页 收藏本站
查看: 840|回复: 0

[经验分享] SQL Server 2008连载之存储结构——基本系统视图

[复制链接]

尚未签到

发表于 2018-10-15 13:33:33 | 显示全部楼层 |阅读模式
  原帖首发于it168专稿,链接为http://tech.it168.com/a2010/0902/1098/000001098556_1.shtmlITPUB个人空间i{(Rht ^1X
  之所以写SQL Server 2008存储结构,很大程度上是因为看了《SQL Server 2005技术内幕存储引擎》和《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  ITPUB个人空间 A+fZ5x4TB)O
  如果我们在数据库处点击右键,选择属性,可以在文件处看到:
  每一个数据库无论系统数据库还是用户数据库都是由两类数据库文件构成,即行数据数据库文件和日志文件;而行数据数据库文件则有一个主要数据文件和N个次要数据文件构成。
  我们还可以再考察一下文件组页,每个数据库都有一个Primary主文件组和N个用户定义文件组构成。通过对表对象应用filegroup选项,能够将不同的表分散到不同的磁盘上,以提高系统性能。
  数据库又主要由表、视图、函数、存储过程、触发器、类型、规则、默认值等等构成。
  当然我们主要考察的对象是表,每一个数据库实际上都包含一系列系统表和一系列用户表。
  而表又包括一系列的列、主外键、约束、触发器、索引等。
  SQLServer2008中提供了相当丰富的系统视图,能够从宏观到微观,从静态到动态反应数据库对象的存储结果、系统性能、系统等待事件等等。同时 也保留了与早期版本兼容性的视图,主要差别在于SQLServer2008提供的新系统视图一是更加全面和丰富、二是更注重命名规则。
  SQLServer2008的几乎所有对象信息都存在于sys.objects系统视图中,同时又在不同的系统视图中保留了相应的副本,对于函数、视图、 存储过程、触发器等相应的文本对象,把相应的对象的详细资料存于新的sys.sql_modules视图中。
序号对象类型对象类型描述相关系统表1AF = 聚合函数 (CLR)AGGREGATE_FUNCTIONN/A2C = CHECK 约束CHECK_CONSTRAINTCHECK_CONSTRAINTS3D = DEFAULT(约束或独立)DEFAULT_CONSTRAINTDEFAULT_CONSTRAINTS4F = FOREIGN KEY 约束FOREIGN_KEY_CONSTRAINTFOREIGN_KEYS5FN = SQL 标量函数SQL_SCALAR_FUNCTIONSQL_MODULES6FS = 程序集 (CLR) 标量函数CLR_SCALAR_FUNCTIONN/A7FT = 程序集 (CLR) 表值函数CLR_TABLE_VALUED_FUNCTIONN/A8IF = SQL 内联表值函数SQL_INLINE_TABLE_VALUED_FUNCTIONSQL_MODULES9IT = 内部表INTERNAL_TABLEINTERNAL_TABLES10P = SQL 存储过程SQL_STORED_PROCEDUREPROCEDURES  :Bw3D7r]h `6W(YI6517SQL_MODULES
  &suSA%G|aeU6517
11PC = 程序集 (CLR) 存储过程CLR_STORED_PROCEDUREN/A12PG = 计划指南PLAN_GUIDEPLAN_GUIDES13PK = PRIMARY KEY 约束PRIMARY_KEY_CONSTRAINTKEY_CONSTRAINTS14R = 规则(旧式,独立)RULESQL_MODULES15RF = 复制筛选过程REPLICATION_FILTER_PROCEDURESQL_MODULES16S = 系统基表SYSTEM_TABLEOBJECTS17SN = 同义词SYNONYMSYNONYMS18SQ = 服务队列SERVICE_QUEUESERVICE_QUEUESS19TA = 程序集 (CLR) DML 触发器CLR_TRIGGERN/A20TF = SQL 表值函数SQL_TABLE_VALUED_FUNCTIONSQL_MODULES21TR = SQL DML 触发器SQL_TRIGGERTRIGGERSITPUB个人空间?F%v;C5U(e.J  SQL_MODULES


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-621980-1-1.html 上篇帖子: 常用SQL注入代码 下篇帖子: SQL Server2005数据库复制----数据库高可用性
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表