摘要: 在之前的随笔中我提到过参数嗅探,这是非常重要的概念。下面我们深入的研究一下参数嗅探… 首先我们知道批处理可以是参数化的或者非参数化。参数化的批处理计划有两种类型:“Prepared” 或者“Proc”。前者对应带有至少一个参数的sys.sp_executesql的执行,并且从T-SQL批处理,或者应 阅读全文
posted @ 2016-05-25 22:10 DB乐之者 阅读(903) 评论(0) 推荐(2)
摘要: 项目中使用BIGINT来存放时间,以下代码用来转换时间类型和BIGINT类型 阅读全文
posted @ 2016-05-25 14:45 DB乐之者 阅读(2845) 评论(1) 推荐(0)
摘要: 前面一篇我介绍了执行计划缓存以及执行之前批处理经过的流程。这篇将用几个最普通的例子介绍查询的几种执行方式。 请看下面这个我使用的这个查询: 这是一个简单的检索指定国家的顾客的查询。现在我们来测试前面这个查询,并且展示七个不同的查询方式。同时介绍执行方法对计划缓存和计划重用的影响。 为了检测影响,我们 阅读全文
posted @ 2016-05-19 22:02 DB乐之者 阅读(1231) 评论(0) 推荐(2)
摘要: 简介 很多时候,当我执行查询调优的时候,引发查询性能糟糕的问题一般都是与参数化相关的。一方面,参数化是查询处理器核心的基本主题。它能显著影响查询性能。另一方面,大家很少对这一主题进行详尽的了解。 因此我准备写一个系列的随笔来介绍关于参数化的问题。第一篇我将介绍关于计划缓存的内容。为了理解参数化,有必 阅读全文
posted @ 2016-05-17 00:30 DB乐之者 阅读(856) 评论(0) 推荐(3)
摘要: 今天我将介绍在SQLServer 中的三种连接操作符类型,分别是:循环嵌套、哈希匹配和合并连接。主要对这三种连接的不同、复杂度用范例的形式一一介绍。 本文中使用了示例数据库AdventureWorks ,下面是下载地址:http://msftdbprodsamples.codeplex.com/re 阅读全文
posted @ 2016-04-28 19:53 DB乐之者 阅读(7796) 评论(0) 推荐(2)
摘要: 先说下安装吧!感觉这东西跟mongodb差不多,安装和布置挺简单, 下载地址:https://github.com/dmajkic/redis/downloads 下载下来的包里有两个, 一个是32位的,一个是64位的。根据自己的实情情况选择,我的是32bit, 把这个文件夹复制到其它地方,比如D: 阅读全文
posted @ 2016-04-22 11:17 DB乐之者 阅读(531) 评论(0) 推荐(0)
摘要: 简介 什么是死锁? 我认为,死锁是由于两个对象在拥有一份资源的情况下申请另一份资源,而另一份资源恰好又是这两对象正持有的,导致两对象无法完成操作,且所持资源无法释放。 什么又是阻塞? 阻塞是由于资源不足引起的排队等待现象。比如同时两个进程去更新一个表。 这里我们可以把阻塞作为死锁的必要条件。下面我们 阅读全文
posted @ 2016-02-25 15:19 DB乐之者 阅读(3261) 评论(2) 推荐(6)
摘要: 理解TOP子句众所周知,TOP子句可以通过控制返回行的数量来影响查询。我们知道TOP子句能很容易的满足返回指定行数的子集,接下来有一些例子来展示什么情况下使用TOP子句来返回一个结果集;你打算返回的恰好是一个记录的子集来验证你代码;你仅仅需要确定至少一行数据满足特定的Where条件;你的业务需求指示... 阅读全文
posted @ 2016-01-24 22:44 DB乐之者 阅读(626) 评论(0) 推荐(2)
摘要: 在推出SQLServer2005之后,微软定义了一个新的查询架构叫做公共表表达式--CTE。CTE是一个基于简单查询的临时结果集,在一个简单的插入、更新、删除或者select语句的执行范围内使用。再本篇中,我们将看到如何定义和使用CTE。定义和使用CTE通过使用CTE你能写和命名一个T-SQL se... 阅读全文
posted @ 2015-12-27 21:50 DB乐之者 阅读(1552) 评论(0) 推荐(3)
摘要: 之前的一篇已经介绍了如何配置复制,介绍了发布者、分发者和订阅者以及事务日志运行的简单关系。其中提到了复制代理,我们这篇将详细介绍复制代理,它是什么?在事务复制的步骤中起到了什么作用?代理和工作首先我们要知道事务复制不是被SQLServer数据库引擎执行的,而是被其他外部的服务。这些服务中就包括了SQ... 阅读全文
posted @ 2015-12-09 23:53 DB乐之者 阅读(2076) 评论(0) 推荐(4)