Beginning Sql Server 2008
系统表:
master数据库,主要用来存放系统数据库对象的一些元信息,不可以删除。一般不建议直接访问,而是通过系统提供的视
图、函数或者存储过程进行访问
model数据库,为其他数据库提供模板,同样必须保留不可以删除
注意,所有其他数据库至少比model数据库的空间大。
msdb数据库,提供给SQL Agent处理存储任务,用来执行定时任务,其他子系统比如SSIS包和基于策略的管理定义都是使
用了msdb的例子
tempdb数据库,作为临时存储的地方,即使你在其他数据库中执行一些任务,在物理存储上依然可能会有一些中间数据存储在tempdb数据库中。不建议直接在tempdb中创建表和数据
ReportServer数据库,随着ReportServer的安装而安装,用于存放ReportServer实例的一些元信息。单独提供给
ReportServer使用
ReportServerTempDB
同上,非持久化,just temp
AdventureWorks2008、AdventureWorksLT2008、AdventureWorksDW2008、The pubs Database、The Northwind Database
数据首先被陷入Transaction Log,然后被写入物理数据文件
数据库对象
1:表
2:索引,用于快速查询定位。
聚集索引,每张表只有一个聚集索引,如果索引被聚集,表示该表一句该聚集索引进行实际的物理存储。打个比方,
如果存储了一本书,那么聚集索引就行目录,就是书的页码。
非聚集索引,每张表可以有多个非聚集索引,通过其他关键信息来定位记录,就好比附录索引一样
任何视图或表格,在拥有非聚集索引之前,必须首先至少拥有聚集索引
3:触发器
仅仅依附于表格而存在,针对CUD操作而自定运行的脚本
4:约束
和触发器一样,保证的数据的完整性。
5:文件组
分为primary filegroup和secondary filegroups
6:图表
ER图
7:视图
虚拟表,一个视图由一个查询逻辑构成。基于安全和封装。可以有索引视图,多表视图如果增加索引,会有更好的查询
性能。视图聚合预先计算,加快索引的生成时间。
当然,弱点就是CD操作会更加麻烦,更加影响性能。开销更大。
8:存储过程
存储过程可以说是数据库的编程平台区,存储过程通过T-SQL语句生成一个单个逻辑单元,允许变量和参数,
a、节省流量带宽
b、预编译,节省编译生成的时间
c、封装处理,可以隐藏复杂细节,以及提供安全权限管理
d、可重用
9:自定义函数
自定义函数和存储过程非常像,除了以下几个方面
a、除了text, ntext, image, cursor, timestamp,可以返回大部分的数据类型
b、没有边际效应,它们不会干越界的事,比如改变表格,发送email,或者改变数据库参数等等
参数全部都是按值传递,可以返回table类型噢!
10:用户和角色
11:自定义数据类型
将.NET的类型映射到SQL Server的列的类型?2008中新增了spatial类型(Geographic and Geometric)也是依据于.NET
程序集的类型。。。注意性能的损耗!
12:全文目录
加速文本块查询,2008中全文目录存储在外部。基础到邮件数据库引擎和存储。全文索引。。。、、、