随笔- 672
文章- 2
评论- 325
阅读-
281万
08 2016 档案
SqlServer 中如何查看某一个Sql语句是复用了执行计划,还是重新生成了执行计划
摘要:我们知道SqlServer的查询优化器会将所执行的Sql语句的执行计划作缓存,如果后续查询可以复用缓存中的执行计划,那么SqlServer就会为后续查询复用执行计划而不是重新生成一个新的执行计划,因为复用执行计划的性能比生成执行计划的性能要高很多,所以SqlServer的这一特性可以大大提高Sql语
阅读全文
SQLServer出现 '其他会话正在使用事务的上下文' 的问题原因,什么是环回链接服务器?(转载)
摘要:本人经过百度查找并且自己进行测试得到问题原因: MSDN上看了一下说是sql server 不支持在分布式事务处理中存在指向本地的链接服务器(环回链接服务器) 通过上面简单说明大家有可能没完全理解环回链接服务器的意思。下面直接来几段代码相信大家就明白了 1.打开本机SQL Server Manage
阅读全文
ADO.NET中的TransactionScope何时需要启用MSTDC(分布式事务管理)
摘要:我们知道在ADO.NET中可以用TransactionScope来将多个SqlConnection(多个数据库连接)执行的Sql语句放入一个事物中提交或取消,但是使用TransactionScope的时候也要额外小心,因为TransactionScope在特殊情况下需要启动MSDTC(分布式事务管理
阅读全文
SqlServer nvarchar中的中文字符匹配,更改SqlServer实例和数据库排序规则的办法
摘要:我们都知道在SqlServer中的nvarchar类型可以完美的存储诸如中文这种unicode字符,但是我们会发现有时候查询语句去查询nvarchar列的时候查不出来。 为什么nvarchar类型有时候需要前面带N的字符串才能查出结果 比如假如现在有一张表T_UserInfo如下,其中列[Name]
阅读全文
sp_executesql的执行计划会被重用(转载)
摘要:前一段时间,给一位朋友公司做咨询,看到他们的很多的存储过程都存在动态sql语句执行,sp_executesql,即使在没有动态表名,动态字段名的情况下仍然使用sp_executesql,这个做法是不太明智的,会存在一些性能方面的问题。先说说什么场景使用这个系统存储过程吧,sp_executesql,
阅读全文
自己实现FormsAuthentication.SetAuthCookie方法,怎样在ASP.NET服务端代码中删除客户端Cookie
摘要:如何手动设置AuthCookie ASP.NET中实现可以自己实现FormsAuthentication.SetAuthCookie方法,控制更为灵活 我们知道默认情况下Forms认证的Cookie名称是".ASPXAUTH",其实可以在ASP.NET项目的Web.config文件中自定义这个Coo
阅读全文
SqlServer中Index Seek的匹配规则(一)
摘要:我们知道在SqlServer中,索引对查询语句的优化起着巨大的作用,一般来说在执行计划中出现了Index Seek的步骤,我们就认为索引命中了。但是Index Seek中有两个部分是值得我们注意的,我们来查看下面一个查询语句: 该语句从表[DimCustomer]查询列[Title],[FirstN
阅读全文
SqlServer 的提示符(Option/With等提示符)不是什么时候都可以用的
摘要:我们在做SqlServer的查询调优的时候,经常会在语句末尾用到option(loop/merge/hash join)或在join语句前直接声明loop/merge/hash,来强制SqlServer使用某一特定类型的join方式。但是有些时候经过查询优化器优化后的执行计划可能会和你声明的join
阅读全文
SqlServer中使用Select语句给变量赋值的时候需要注意的一个问题
摘要:我们知道在SqlServer中可以用Select语句给变量赋值,比如如下语句就为int类型的变量@id赋值 执行上面的代码会显示下面的查询结果,结果显示最后@id的值为3,那么意味着上面第3行的select语句每返回一行数据记录,sqlserver就用id列为@id进行了一次赋值,而最后一行数据记录
阅读全文
SSAS的维度表之间的关系只能有一个不能有多个
摘要:我们在SSAS中创建维度的时候,有时候可能一个维度需要用到多个表的字段作为维度属性,那么这多个表之间势必存在关联关系,但是切记维度表之间的关联关系有且只能有一个不能有多个,下面我们来看一个例子。 现在我们创建了一个维度Customer,由于该维度中的属性除了用到Customer表的字段以外,还要用到
阅读全文
SqlServer 在创建数据库时候指定的初始数据库大小是不能被收缩的
摘要:当你在SqlServer创建数据库的时候可以指定数据库文件的初始大小,比如下图中我们将新创建的数据库MyDB的大小设置成了1024MB 那么你建好的数据库的确也就会占用1024MB左右的磁盘空间 不过使用存储过程sp_spaceused可以看到其中有1021.85 MB的空间是MyDB占用着并未使用
阅读全文