博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【原创】Microsoft SQL Server 2005技术内幕:T-SQ程序设计 学习笔记
阅读量:5227 次
发布时间:2019-06-14

本文共 1215 字,大约阅读时间需要 4 分钟。

第一章 逻辑查询处理

  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、

 

转载于:https://www.cnblogs.com/tangqs/archive/2012/03/08/2384854.html

你可能感兴趣的文章
c#连接excel2007未安装ISAM解决
查看>>
Mono 异步加载数据更新主线程
查看>>
初识lua
查看>>
我是插件狂人,jDuang,jValidator,jModal,jGallery
查看>>
张季跃 201771010139《面向对象程序设计(java)》第四周学习总结
查看>>
如何解除循环引用
查看>>
android中fragment的使用及与activity之间的通信
查看>>
字典【Tire 模板】
查看>>
jquery的contains方法
查看>>
python3--算法基础:二分查找/折半查找
查看>>
Perl IO:随机读写文件
查看>>
Perl IO:IO重定向
查看>>
转:基于用户投票的排名算法系列
查看>>
WSDL 详解
查看>>
[转]ASP数组全集,多维数组和一维数组
查看>>
C# winform DataGridView 常见属性
查看>>
逻辑运算和while循环.
查看>>
Nhiberate (一)
查看>>
c#后台计算2个日期之间的天数差
查看>>
安卓开发中遇到的小问题
查看>>