您的位置:首页 > 数据库

跟我一起学Microsoft SQL Server 2012 Internals(1.3)

2016-03-12 20:03 435 查看

目录

目录

正确理解SQL Server元数据

参考资料

正确理解SQL Server元数据

每个SQL Server 实例(instance)在正确安装后,均可看到如下4个系统database:

master

model

msdb

tempdb

其中master包含了大量系统维护所需的基础信息表,即系统基表(system base tables),但需注意:这些系统基表不能通过SQL Server Management Studio直接查看,而需通过执行如下T-SQL方式查看;同时这些系统基表也不能直接使用(若直接select查询则会返回Msg 208错误提示),而需通过系统视图、系统函数等方式间接使用或者通过DAC(即Dedicated Admin Connection)连接查看使用

[code]--通过目录视图sys.objects查看系统基表
USE master;
SELECT name FROM sys.objects
WHERE type_desc = 'SYSTEM_TABLE';

--通过系统存储过程sp_help查看系统基表(不推荐)
sp_help


下面我们尝试通过SQL Server Management Studio开启DAC,并通过SQL Server Management Studio建立DAC,然后正确查询系统基表。

1.右点击[SQL Server实例]-然后选择[方面(facets)]



2.如下图所示,选择[外围应用配置器]-然后设置[remotedacenabled]为true,即开启远程DAC功能



3.打开SQL Server Management Studio,并选择[文件]-[新建]-[数据库引擎查询],然后在服务器名称填写:admin:完整计算机名\实例名,注意若SQL Server安装在windows域环境中,则此处应填写含域后缀的完整计算机名。



4.查询系统基表:sysiscols



在通过sp_help查看SQL Server系统基表时,我们会看到很多系统视图与系统存储过程,这些其实都是SQL Server的元数据(metadata)。

SQL Server中的master不仅包含这些系统基表,还包含了主要如下6类元数据,方便SQL Server管理:

兼容性视图(Compatibility views)

目录视图(Catalog views)

动态管理对象(Dynamic Management Objects)

信息架构视图(Information schema views)

系统函数(System functions)

系统存储过程(System stored procedures)

其中动态管理对象又可分成:动态管理视图(DMVs)与动态管理函数。

若想简单区分上述各种类型的元数据,可查看文章”SQL Server 2012 Metadata“。

下图截取自《Microsoft SQL Server 2012 Internals》 - chapter 1,展示了SQL Server2012中各种元数据相互间的层次结构



详细内容可查看SQL Server 2012 System Views Map

参考资料

《Microsoft SQL Server 2012 Internals》 - chapter 1

System Base Tables

https://msdn.microsoft.com/en-us/library/ms179503.aspx

SQL Server 2012 System Views Map

https://www.microsoft.com/en-us/download/details.aspx?id=39083

SQL Server 2012 Metadata

http://www.codeproject.com/Tips/892216/SQL-Server-Metadata

How to: Use the Dedicated Administrator Connection with SQL Server Management Studio

https://technet.microsoft.com/en-us/library/ms178068(v=sql.105).aspx

update by HyperWang at 2016/03/15
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: