专注,勤学,慎思。戒骄戒躁,谦虚谨慎

just do it

导航

随笔分类 - SQL Server 优化

1 2 下一页

sqlserver的表变量在没有预估偏差的情况下,与物理表可join产生的性能问题
摘要:众所周知,在sqlserver中,表变量最大的特性之一就是没有统计信息,无法较为准备预估其数据分布情况,因此不适合参与较为复杂的SQL运算。当SQL相对简单的时候,使用表变量,在某些场景下,即便是对表变量的预估没有产生偏差的情况下,仍旧会有问题。sqlserver的优化引擎对于表变量的支持十分不友好 阅读全文

posted @ 2019-05-11 00:35 MSSQL123 阅读(477) 评论(0) 推荐(0) 编辑

SQLServer中的执行计划缓存由于长时间缓存对性能造成的干扰
摘要:本文出处:http://www.cnblogs.com/wy123/p/7190785.html (保留出处并非什么原创作品权利,本人拙作还远远达不到,仅仅是为了链接到原文,因为后续对可能存在的一些错误进行修正或补充,无他) 先抛出一个性能问题,前几天遇到一个生产环境性能极其低下的存储过程,开发人员 阅读全文

posted @ 2017-07-16 17:17 MSSQL123 阅读(4521) 评论(10) 推荐(6) 编辑

SQL Server中多表连接时驱动顺序对性能的影响
摘要:本文出处:http://www.cnblogs.com/wy123/p/7106861.html (保留出处并非什么原创作品权利,本人拙作还远远达不到,仅仅是为了链接到原文,因为后续对可能存在的一些错误进行修正或补充,无他) 最近在SQL Server中多次遇到开发人员提交过来的有性能问题的SQL, 阅读全文

posted @ 2017-07-02 19:29 MSSQL123 阅读(2501) 评论(2) 推荐(1) 编辑

浅析SQL Server 中的SOS_SCHEDULER_YIELD类型的等待
摘要:本文出处:http://www.cnblogs.com/wy123/p/6856802.html 进程的状态转换 在说明SOS_SCHEDULER_YIELD等待之前,先简要介绍一下进程的状态(迷迷糊糊记得操作系统原理课上讲过,三态五态转换的,比下面这个图要复杂,大部分都还给老师了)。 如下图,分别 阅读全文

posted @ 2017-05-15 16:02 MSSQL123 阅读(1486) 评论(0) 推荐(0) 编辑

SQLServer中使用扩展事件获取Session级别的等待信息以及SQLServer 2016中Session级别等待信息的增强
摘要:本文出处:http://www.cnblogs.com/wy123/p/6835939.html 什么是等待 简单说明一下什么是等待:当应用程序对SQL Server发起一个Session请求的时候,这个Session请求在数据库中执行的过程中会申请其所需要的资源,比如可能会申请内存资源,表上的锁资 阅读全文

posted @ 2017-05-11 09:02 MSSQL123 阅读(1976) 评论(1) 推荐(3) 编辑

SQL Server 中统计信息直方图中对于没有覆盖到谓词预估以及预估策略的变化(SQL2012-->SQL2014-->SQL2016)
摘要:本文出处:http://www.cnblogs.com/wy123/p/6770258.html 统计信息写过几篇了相关的文章了,感觉还是不过瘾,关于统计信息的问题,最近又踩坑了,该问题虽然不算很常见,但也比较有意思。相对SQL Server 2012,发现在新的SQL Server版本(2014, 阅读全文

posted @ 2017-04-26 20:21 MSSQL123 阅读(1221) 评论(1) 推荐(5) 编辑

SQL Server数据库的存储过程中定义的临时表,真的有必要显式删除(drop table #tableName)吗?
摘要:本文出处:http://www.cnblogs.com/wy123/p/6704619.html 问题背景 在写SQL Server存储过程中,如果存储过程中定义了临时表,有些人习惯在存储过程结束的时候一个一个显式地删除过程中定义的临时表(drop table #tName),有些人又没有这个习惯, 阅读全文

posted @ 2017-04-14 08:42 MSSQL123 阅读(9674) 评论(6) 推荐(5) 编辑

SQL Server 优化---为什么索引视图(物化视图)需要with(noexpand)强制查询提示
摘要:本文出处:http://www.cnblogs.com/wy123/p/6694933.html 第一次通过索引视图优化SQL语句,以及遇到的一些问题,记录一下。 语句分析 最近开发递交过来一个查询统计的SQL,说是性能有问题,原本执行需要4-5秒钟,这个业务本身对性能要求又比较critical,期 阅读全文

posted @ 2017-04-11 19:13 MSSQL123 阅读(1587) 评论(1) 推荐(0) 编辑

SQLServer中间接实现函数索引或者Hash索引
摘要:本文出处:http://www.cnblogs.com/wy123/p/6617700.html SQLServer中没有函数索引,在某些场景下查询的时候要根据字段的某一部分做查询或者经过某种计算之后做查询,如果使用函数或者其他方式作用在字段上之后,就会限制到索引的使用,不过我们可以间接地实现类似于 阅读全文

posted @ 2017-03-26 00:11 MSSQL123 阅读(5074) 评论(2) 推荐(2) 编辑

关于T-SQL重编译那点事,内联函数和表值函数在编译生成执行计划的区别
摘要:本文出处:http://www.cnblogs.com/wy123/p/6266724.html 最近在学习 WITH RECOMPILE和OPTION(RECOMPILE)在重编译上的区别的时候,无意中发现表值函数和内联表值函数编译生成执行计划的区别下文中将会对此问题展开讨论。简单地说就是:同样一 阅读全文

posted @ 2017-01-10 14:22 MSSQL123 阅读(1600) 评论(1) 推荐(0) 编辑

关于T-SQL重编译那点事,WITH RECOMPILE和OPTION(RECOMPILE)区别仅仅是存储过程级重编译和SQL语句级重编译吗
摘要:本文出处:http://www.cnblogs.com/wy123/p/6262800.html 在考虑重编译T-SQL(或者存储过程)的时候,有两种方式可以实现强制重编译(前提是忽略导致重编译的其他因素的情况下,比如重建索引,更新统计信息等等), 一是基于WITH RECOMPILE的存储过程级别 阅读全文

posted @ 2017-01-09 21:50 MSSQL123 阅读(7177) 评论(3) 推荐(6) 编辑

Nested Loops join时显示no join predicate原因分析以及解决办法
摘要:本文出处:http://www.cnblogs.com/wy123/p/6238844.html 最近遇到一个存储过程在某些特殊的情况下,效率极其低效(同时服务器CPU资源占用急剧上升,导致整个服务器相应缓慢) 至于底下到什么程度我现在都没有一个确切的数据,因为预期很快就可以查询出来结果的SQL,实 阅读全文

posted @ 2016-12-31 12:11 MSSQL123 阅读(929) 评论(0) 推荐(0) 编辑

SELECT TOP 1 比不加TOP 1 慢的原因分析以及SELECT TOP 1语句执行计划预估原理
摘要:本文出处:http://www.cnblogs.com/wy123/p/6082338.html 现实中遇到过到这么一种情况: 在某些特殊场景下:进行查询的时候,加了TOP 1比不加TOP 1要慢(而且是慢很多)的情况, 也就是说对于符合条件的某种的数据,查询1条(符合该条件)数据比查询所有(符合该 阅读全文

posted @ 2016-11-20 14:07 MSSQL123 阅读(19871) 评论(7) 推荐(11) 编辑

SQL Server索引视图以(物化视图)及索引视图与查询重写
摘要:本文出处:http://www.cnblogs.com/wy123/p/6041122.html 经常听Oracle的同学说起来物化视图,物化视图的作用之一就是可以实现查询重写,听起来有一种高大上的感觉, SQL Server也有类似于Oracle物化视图的功能,只不过叫做索引视图。 说实话,还是物 阅读全文

posted @ 2016-11-08 08:52 MSSQL123 阅读(17316) 评论(6) 推荐(5) 编辑

SQL Server 执行计划利用统计信息对数据行的预估原理二(为什么复合索引列顺序会影响到执行计划对数据行的预估)
摘要:本文出处:http://www.cnblogs.com/wy123/p/6008477.html 关于统计信息对数据行数做预估,之前写过对非相关列(单独或者单独的索引列)进行预估时候的算法,参考这里。 今天来写一下统计信息对于复合索引在预估时候的计算方法和潜在问题。 本文原形来自于是个实际业务问题, 阅读全文

posted @ 2016-10-28 17:58 MSSQL123 阅读(1136) 评论(1) 推荐(3) 编辑

SQL Server SQL性能优化之--pivot行列转换减少扫描计数优化查询语句
摘要:原文出处:http://www.cnblogs.com/wy123/p/5933734.html 先看常用的一种表结构设计方式: 那么可能会遇到一种典型的查询方式,主子表关联,查询子表中的某些(或者全部)Key点对应的Value,横向显示(也即以行的方式显示) 这种查询方式很明显的一个却显示多次对字 阅读全文

posted @ 2016-10-06 13:52 MSSQL123 阅读(3624) 评论(1) 推荐(5) 编辑

SQL Server 统计信息更新时采样百分比对数据预估准确性的影响
摘要:统计信息更新,采样百分比,密度 阅读全文

posted @ 2016-09-15 20:27 MSSQL123 阅读(2753) 评论(4) 推荐(6) 编辑

SQL Server 执行计划利用统计信息对数据行的预估原理以及SQL Server 2014中预估策略的改变
摘要:前提 本文仅讨论SQL Server查询时, 对于非复合统计信息,也即每个字段的统计信息只包含当前列的数据分布的情况下, 在用多个字段进行组合查询的时候,如何根据统计信息去预估行数的。 利用不同字段的统计信息做数据行数预估的算法原理,以及SQL Server 2012和SQL Server 2014 阅读全文

posted @ 2016-08-22 08:34 MSSQL123 阅读(1988) 评论(4) 推荐(4) 编辑

SQL Server 并行操作优化,避免并行操作被抑制而影响SQL的执行效率
摘要:为什么我也要说SQL Server的并行: 这几天园子里写关于SQL Server并行的文章很多,不管怎么样,都让人对并行操作有了更深刻的认识。我想说的是:尽管并行操作可能(并不是一定)存在这样或者那样的问题,但是我们不能否认并行,仍然要利用好并行。但是,实际开发中,某些SQL语句的写法会导致用不到 阅读全文

posted @ 2016-07-12 08:45 MSSQL123 阅读(3089) 评论(8) 推荐(14) 编辑

SQL Server创建复合索引时,复合索引列顺序对查询的性能影响
摘要:说说复合索引 写索引的博客太多了,一直不想动手写,有一下两个原因: 一是觉得有炒剩饭的嫌疑,有兄弟曾说:索引吗,只要在查询条件上建索引就行了,真的可以这么暴力吗? 二来觉得,索引是个非常大的话题,很难概括出所有的情况,你不整出点新意来,倒是有抄袭照搬的嫌疑 既然写了,就写一点稍微不一样的东西出来,好 阅读全文

posted @ 2016-06-21 17:43 MSSQL123 阅读(10745) 评论(8) 推荐(6) 编辑

1 2 下一页