SQL Server 2005 T-SQL Recipes------Table, Index, View, Function

1. Table数据类型
    char, nchar, ntext, nvarchar,text,varchar等字符类型,有定长和非定长的区别,有最大长度的区别。一个表最多支持1024列,每行的总字节不能超过8060字节。每个数据页是8k
。但是SQL Server通过"Over-Flow"的机制支持超越8060的约束。

2. 计算列
    计算列的取值来源于其他列值的计算。可以通过PERSISTED设定为物理存储列,也可以设定为只是逻辑计算列。
    AvgSharesPerShareholder AS (SharesOutStanding/Shareholders) PERSISTED

3. 查看表信息
    通过系统存储过程sp_help查看特定表相关的信息。

4. 代理键
   没有业务意义,如用IDENTITY类型的列实现。通过DBCC CHECKIDENT查看当前代理键的种子值。

5. 约束
   分为Unique和Default, Check约束。

6. 临时表
   和普通的表没有什么区别,只是自动存储在tempdb中。临时表的实用场景:游标的替代方法;对于复杂的连接查询,创建临时表存储增量的结果集;临时存储重用数据。两种
类型的临时表:本地临时表和全部临时表。本地临时表前面有“#”当作前缀,全局临时表前面有“##”。
   本地临时表只能被当前的连接所实用。内部有一个GUID名称,因此不同连接的临时表的名称是可以雷同的。 使用DROP删除临时表,或者当连接中断时,系统自动删除本地临
时表。全局临时表可以被所有具有权限的连接用户使用。使用Drop Table来删除全局临时表。由于临时表涉及到tempdb,使用不当容易造成性能问题。

7. 表变量
   微软推荐使用表变量来代替临时表。表变量和正常的表以及临时表不同的是,它不能设置索引和外键约束。它的优点是:有明确的使用域,锁时间短,在存储过程中需要较少的
编译。但是,对于数据量大时,不推荐使用表变量。

8. 大数据量表的管理
    采用Partitioning和FileGroup来提高效率。这些功能只在企业版本中才有的功能。分区是把记录按照一定的规则放入特定的地方,但是逻辑上还是一个统一的对象。把某些特定的
分区放入特定的FileGroup。
    采用$PARTITION函数来确定记录位于哪个分区内。在2005中,新增加了中在不同表间移植分区的功能,通过ALTER TABLE... SWITCH命令。

9. 查看索引元数据
    系统存储过程sp_helpindex。

10. Disable索引
     Alter Index实现。但是索引的定义在系统表中仍然是存在的,只是索引将不可用。对于表上的非聚簇索引,索引数据从数据库中删除;对于聚簇索引,索引信息仍然保存。Reenable索引,使用Create Index, Alter Index Rebuild来实现。

11. Drop索引
     索引定义也会被删除。当Drop掉一个包含非聚簇索引的聚簇索引时,会导致非聚簇索引Rebuilt。

12. 索引Build
    索引创建可能是一件耗费事件和资源的操作。企业版中,支持使用SORT_IN_TEMPDB命令时创建过程在temp数据库中完成,提高数据库的并发效率。同时通过ONLINE命令支持在索引创建过程中允许用户访问。

13. 索引选项
    PAD_INDEX,FILLFACTOR,索引页面的填充率。

14. 索引管理
    可以在FileGroup上创建索引,可以进行非聚簇索引分区。

15. 视图的类型
     SQL Server 2005中支持:一般视图,索引视图,分布式分区视图

16. 一般视图
    一般视图本质上是存储过的查询,因此需要像一般查询一样进行优化。避免视图定义中的嵌套。尽量使用存储过程代替视图,因为存储过程能达到性能提升的目的,而视图的执行计划是每次编译的无法重用。

17. 查询视图定义
   通过sys.sql_modules进行查询,也可以通过sys.views, sys.schemas进行连接查询得到视图定义。

18. 刷新视图定义
   当视图依赖的对象改变了,那么视图元信息就过期了。使用sp_refreshview去刷新视图定义。

19. 视图加密
   为了防止客户端对sql进行反向工程,可以对视图或者存储过程的定义进行加密。这样视图的定义就不可见了。

20. 索引视图
   当在视图上创建索引后,基础表上的物理数据并没有受影响,它们是独立的对象。索引视图可以在任意版本的数据库服务器上创建,但是只有在企业版本中,引擎才能自动使用视图上的索引,否则需要采用NOEXPAND选项来指明。索引视图适合在不经常更新的数据上。

21. 分布式索引视图
   允许把数据分布在多个数据库实例上。

22.聚集函数,数学函数,字符串函数,处理NULL的函数,日期函数,CAST, CONVERT数据类型转换函数。

23. Ranking函数
   SQL Servr中的新特性,比如实现取出结果集中某部分子集。

24. 系统相关的函数
    或者称为系统变量,一般以@@为前缀。

25. Waitfor命令
    延迟T-SQL的执行,等待某种输入或者超时。

26. 游标
    T-SQL是一种面向结果集的语言。游标是一行一行的读取记录,会影响性能。只有当while,子查询,临时表,表变量没有办法解决问题的时候,才考虑使用游标。游标有不同的类型,有本地和全局的区别。创建游标时,包含各种选项代表不同功能的游标。

 

 

你可能感兴趣的:(sql server 2005)