数据库存储引擎之 Databases and Database Files
虽然我们平时使用的一个sql server 实例只有少量的数据库,但是sql server 默然安装就包含十几个实例,一个sql server s实例可以包含32767个数据库.
Sql server 数据库属性特征
Sql server 是很多对象集合:例如表,视图,存储过程 ,约束 ,属于单个sql server登陆账号,维护自己的一组用户账号,角色,架构和安全信息,拥有自己的一组系统表和视图来容纳数据库目录。
具有维护和恢复期中各对象之间逻辑一致性的主要单位,主键和外键,事物日志的管理,使用多磁盘驱动器和操作系统文件,自动增长和收缩,也可以通过命令控制其增长和收缩 等…..
Sql server 系统数据库
一个新的数据库默然包含有以下四个数据库 master,model,tempdb msdb 另外还包含5个隐藏的数据库 ,无法使用一般sql 命令来查看,这个数据库被称为resource 数据库,他的实际名字是 mssqlsystemresource
Master 数据库
Master 数据库由一些系统表组成。 Master 数据库一些系统目录能够保存磁盘空间,文件分配的使用,系统层次的配置和信息 端点,登陆账号信息等,当前实例的数据库信息和系统上的其他sql server 的内存信息。
Master 数据库对一个sql server 实例至关重要,我们平时的一些操作都会被记录在master数据库,例如:创建另一个账号,改变配置值 登陆账号的操作都会修改master数据库,在执行这些操作后建议备份master数据库 .
Model 数据库是一个模板数据库,当我们创建新的数据库的时候,sqlserver 都会复制model 数据库作为新数据库的模板,如果希望所有创建的数据库使用相同的模板 或是一些对象权限,可以把这些对象或是权限放在model数据库中。
Tempdb 数据库
Tempdb被作为sql server 的一个工作区,每次sql server 重新启动时都会重建而不是恢复它,创建临时表,存储sql server 查询处理和排序时内部产生中间结果的工作表,填充静态游标和键集游标的键值都会用到tempdb数据库。
每次重新启动sql server Tempdb 都会被重建,所以我们在tempdb建立的权限和对象在重新启动时会全部丢失,替代方法是在model 数据库创建对象,tempdb对数据库的优化有关键的作用。
Mssqlsystemresource 数据库
Mssqlsystemresource 是一个隐藏的数据库,通常对称为resource数据库,系统存储过程和函数都存储resource 数据库中。
Msdb 数据库
我们使用的定时备份数据库 ,订阅发布数据库等,通常的一些job 都会使用到msdb 数据库,server broker 也会用到msdb 数据库,它为sql server 提供可靠的队列消息传递,如果在数据库上不执行备份等一些列的操作我们可以忽略msdb数据库,如果我们需要查看一些备份的历史信息,可以通过msdb数据库来查找,不应该在msdb 中执行添加和删除一些数据,除非你对sql server 有很清楚的了解,实际上是可以删除msdb但是不建议这么做因为它占用的空间为5MB,删除后sql server 实例不具备建立 job 警告 复制 。
出处:http://www.cnblogs.com/liuyong/
作者喜欢研究 Sql Server ,ASP.NET MVC , Jquery WCF 等技术,同时关心分布式架构的设计应用。转载请保留原文链接,谢谢!