一、实例
一个SQL的服务引擎就是一个SQL实例,每装一次SQL就会产生一次实例。
实例分为命名实例和默认实例,一台Windows服务器可以有多个SQL实例,但是只能有一个默认实例。
不同的实例之间相互不存在干扰,操作系统出现问题才会影响SQL实例。
一台服务器最多可以拥有50个实例。
二、数据库
数据库分为系统数据库和用户数据库
系统数据库有六个,分别为master、msdb、model、tempdb、resource、distribution
resource、distribution一般不显示,只有特定需要时才会出现
master
是用来存放实例级对象:登录名、端点、链接服务器、实例配置
存放数据库引导信息,记录所有数据库文件的路径
一旦损坏,相应的引擎也就起不来了
msdb
是用来存放作业、警报、维护计划、数据库邮件的配置和历史记录
master和msdb需要定期备份
model
该实例创建新数据库的模板,包含数据库大小、排序规则、恢复模式、数据库对象等
用于权限的控制
tempdb
存放临时对象或中间结果集
每次重启服务时自动重建
要求所在磁盘空间足够、性能良好,可以移动路径
在建数据库的时候,最少需要预计三年的数据量,把需要的大小分配给tempdb,这样可以减少碎片,如果有固态硬盘尽量存放在固态硬盘上
tempdb的数据文件个数最好与CPU的个数相同(微软建议)
resource
每个实例唯一的、只读的数据库
存放所有系统对象(sys架构下)
无法使用SQL备份和还原,它是二进制文件,可以直接复制
distribution
用于复制中的分发服务器角色中的分发数据库
例如超市,采用的就是分发数据库,公司总部有一个数据库,各个门店有各自的数据库,在某一个时段或某几个时段,数据库之间进行上传和下载数据
三、架构
架构把对象进行了分组,一个架构是一组数据库对象的集合。
架构是唯一的,不能重复。
四、SQL Server的数据文件限制
数据库文件存储的最小单位是页,一页有8K,但是每页只有8060B用于存放数据
8个连续的页成为一个区,区是用来分配空间的。(建议格式化磁盘时使用64KB/块)
行不跨页:一行记录不允许跨两页存放
行不跨页的例外--大容量的数据类型:
text/ntext/image
varchar(max)/nvarchar(max)/varbinary(max)
xml
SQL2012取消了text/ntext/image这三个字段类型,因此在创建表的时候需要注意
使用查询语句时,尽量不要使用“select *”,因为“select *”不从索引取数,是从表取数,因此会很慢。