【原创】Microsoft SQL Server 2005技术内幕:T-SQ程序设计 学习笔记
2012-03-08 10:52
561 查看
第一章 逻辑查询处理
1、三值逻辑:True,False,Unknown
Unknown出现在包含Null值的逻辑表达式中,例如下面三个表示(NULL>42; NULL = NULL; X+NULL>Y),
另外否定的Unknown(就是 not Unknown)还是Unknown;
处理方式:所有查询筛选器(on,where,Having)把 Unknown 当 False 处理;
Check约束中当做True处理。(比如一个check约束要就salary列值必须大于0,这时如果向表插入salary
为NULL的行时可以被接受,因为NULL>0 等于Unknown 即True)
注意:(a)UNIQUE约束无法向该表插入值为NULL的两行。
(b)Order By 把NULL排列在一起,Group By 把NULL分在一起。
第三章
1、清空缓存:当需要分析查询性能,必须排除缓存的对结果的影响,需要清楚缓存中的数据与执行计划,
具体方法:a、清空楚缓中的数据 DBCC DROPCLEANBUFFERS; 就是 DBCC DropCleanBuffers
b、清空楚缓中的执行计划 DBCC FREEPROCCACHE; 就是 DBCC FreeProcCache
c、清空特定数据库的执行计划 DBCC FlushProcInDB(<db_id>); 一般不推荐使用此命令
2、语句执行I/O信息:SET Statistics IO ON, 关闭 SET Statistics IO OFF
执行SQL语句后在消息里显示格式如下:
Table 'Orders'. Scan cout 3, logical reads 536, physical reads 2, readahead reads 532,
lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.
含义:表的扫描访问计数 3,从缓存读取的页数 536,从磁盘读取的页数 2 ,从磁盘预读取的页数 532,
与大型对象相关的逻辑读取数与物理读取数。
SQL 2008显示如下:扫描计数 3,逻辑读取 39513 次,物理读取 0 次,预读 0 次,
lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。
3、
1、三值逻辑:True,False,Unknown
Unknown出现在包含Null值的逻辑表达式中,例如下面三个表示(NULL>42; NULL = NULL; X+NULL>Y),
另外否定的Unknown(就是 not Unknown)还是Unknown;
处理方式:所有查询筛选器(on,where,Having)把 Unknown 当 False 处理;
Check约束中当做True处理。(比如一个check约束要就salary列值必须大于0,这时如果向表插入salary
为NULL的行时可以被接受,因为NULL>0 等于Unknown 即True)
注意:(a)UNIQUE约束无法向该表插入值为NULL的两行。
(b)Order By 把NULL排列在一起,Group By 把NULL分在一起。
第三章
1、清空缓存:当需要分析查询性能,必须排除缓存的对结果的影响,需要清楚缓存中的数据与执行计划,
具体方法:a、清空楚缓中的数据 DBCC DROPCLEANBUFFERS; 就是 DBCC DropCleanBuffers
b、清空楚缓中的执行计划 DBCC FREEPROCCACHE; 就是 DBCC FreeProcCache
c、清空特定数据库的执行计划 DBCC FlushProcInDB(<db_id>); 一般不推荐使用此命令
DBCC(database consistenecy checker) 是一个实用命令集,用来检查数据库的逻辑一致性及物理一致性,进行数据库维护。
2、语句执行I/O信息:SET Statistics IO ON, 关闭 SET Statistics IO OFF
执行SQL语句后在消息里显示格式如下:
Table 'Orders'. Scan cout 3, logical reads 536, physical reads 2, readahead reads 532,
lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.
含义:表的扫描访问计数 3,从缓存读取的页数 536,从磁盘读取的页数 2 ,从磁盘预读取的页数 532,
与大型对象相关的逻辑读取数与物理读取数。
SQL 2008显示如下:扫描计数 3,逻辑读取 39513 次,物理读取 0 次,预读 0 次,
lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。
3、
相关文章推荐
- Microsoft SQL Server 2005技术内幕:T-SQL程序设计
- 胡百敬老师为《Microsoft SQL Server 2005技术内幕:T-SQL程序设计》一书中文版所作的推荐序
- 《Microsoft SQL Server 2005技术内幕:T-SQL程序设计》 勘误表
- Microsoft SQL Server 2005技术内幕:T-SQL查询笔记
- Microsoft SQL Server 2005技术内幕:存储引擎笔记
- 作者Itzik为《Microsoft SQL Server 2005技术内幕:T-SQL程序设计》一书中文版所作的序(英文)
- 作者Itzik为《Microsoft SQL Server 2005技术内幕:T-SQL程序设计》一书中文版所作的序(中文)
- Microsoft SQL Server 2008 技术内幕:T-SQL查询 笔记(一)
- 学习《Microsoft SQL Server 2008 技术内幕:T-SQL 语言基础 》之一:学习资料、数据库、数据库脚本准备
- T-SQL 编程与应用----学习笔记一[Microsoft SQL Server 2005]
- Microsoft SQL Server 2005技术内幕:存储引擎
- 笔记-Microsoft SQL Server 2008技术内幕:T-SQL语言基础-08 数据修改
- 《Microsoft SQL Server 2005技术内幕》系列丛书
- 笔记-Microsoft SQL Server 2008技术内幕:T-SQL语言基础-03 联接查询
- 笔记-Microsoft SQL Server 2008技术内幕:T-SQL语言基础-09 事务和并发
- 《Microsoft SQL Server 2005技术内幕》系列资源汇总
- 笔记-Microsoft SQL Server 2008技术内幕:T-SQL语言基础-01 T-SQL查询和编程基础
- 笔记-Microsoft SQL Server 2008技术内幕:T-SQL语言基础-06 集合运算
- 学习Microsoft SQL Server 2008技术内幕:T-SQL语法基础
- 笔记-Microsoft SQL Server 2008技术内幕:T-SQL语言基础-05 表表达式