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

just do it

导航

2017年4月14日 #

SQL Server 数据库中的几个常见的临界值

摘要: 本文出处:http://www.cnblogs.com/wy123/p/6709520.html 1,SQL语句或者存储过程的最大长度(SQL字符串容量)是多少? 经常有人问,我的SQL语句是拼凑出来的,可能很长,如果太长了,是不是SQL Server支持不动了? SQL语句的或者存储过程的最大长度 阅读全文

posted @ 2017-04-14 17:09 MSSQL123 阅读(2017) 评论(0) 推荐(4) 编辑

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 阅读(11838) 评论(7) 推荐(5) 编辑

2017年4月11日 #

SQL Server 优化---为什么索引视图(物化视图)需要with(noexpand)强制查询提示

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

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

2017年4月7日 #

数据库设计---关于建表的时候选择横表和竖表(纵表)的一点思考

摘要: 本文出处:http://www.cnblogs.com/wy123/p/6677073.html 在做数据统计类数据库设计的时候,在考虑数据存储的时候,经常会遇到逻辑上同一个BusinessID对应多个数据点的情况,比如工资表中的员工ID以及各项工资信息,财务表中的各个报表Id和多个数据点之间的信息 阅读全文

posted @ 2017-04-07 14:02 MSSQL123 阅读(21476) 评论(4) 推荐(6) 编辑

2017年4月5日 #

MySQL查询提示

摘要: MySQL查询提示: 1.LOW_PROPRITY,HIGHT_PRIORITY 作用:指定sql语句的运行优先级,会将加了HIGHT_PROPRITY提示的sql调度到表访问队列的最前面 限制:仅对表级别的锁的引擎有效(MyISAM引擎),对非表级别的引擎的锁无效,比如innodb引擎 用法:up 阅读全文

posted @ 2017-04-05 15:23 MSSQL123 阅读(807) 评论(0) 推荐(0) 编辑

2017年4月1日 #

SQLServer数据库中开启CDC导致“事务日志空间被占满,原因为REPLICATION”的原因分析和解决办法

摘要: 本文出处:http://www.cnblogs.com/wy123/p/6646143.html SQLServer中开启CDC之后,在某些情况下会导致事务日志空间被占满的现象为:在执行增删改语句(产生事务日志)的过程中提示,The transaction log for database '*** 阅读全文

posted @ 2017-04-01 09:32 MSSQL123 阅读(7061) 评论(5) 推荐(7) 编辑

2017年3月28日 #

译:SQL Server的Missing index DMV的 bug可能会使你失去理智---慎重看待缺失索引DMV中的信息

摘要: 注: 本文译自https://www.sqlskills.com/blogs/paul/missing-index-dmvs-bug-that-could-cost-your-sanity/ 原文作者是在SQL Server 2008 SP1下面说的这个问题,本人在SQL Server 2014 S 阅读全文

posted @ 2017-03-28 17:10 MSSQL123 阅读(937) 评论(5) 推荐(0) 编辑

2017年3月26日 #

SQLServer中间接实现函数索引或者Hash索引

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

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

2017年3月24日 #

MySQL缓存分类和配置

摘要: 读书笔记,待补充完善 MySQL缓存分类 InnoDB缓冲池 InnoDB日志文件和MyIsAM数据的操作系统缓存 MyIsAM键缓存 查询缓存 无法手工配置的缓存,二进制日志,表定义文件的操作系统缓存 其它缓存,通常不需要太多内存 InnoDB缓冲池 作用: 1.缓存的对象包括:数据行,索引,插入 阅读全文

posted @ 2017-03-24 10:27 MSSQL123 阅读(663) 评论(0) 推荐(0) 编辑

2017年3月21日 #

MySQL系统变量配置基础

摘要: 本文出处:http://www.cnblogs.com/wy123/p/6595556.html MySQL变量的概念 个人认为可以理解成MySQL在启动或者运行过程中读取的一些参数问题,利用这些参数来启动服务、响应或者支持用户的请求等 变量的配置 如果打算长期使用,应该写入配置文件,而不是在命中指 阅读全文

posted @ 2017-03-21 17:24 MSSQL123 阅读(1079) 评论(2) 推荐(0) 编辑

2017年3月20日 #

MySQL索引统计信息更新相关的参数

摘要: MySQL统计信息相关的参数: 1. innodb_stats_on_metadata(是否自动更新统计信息),MySQL 5.7中默认为关闭状态 仅在统计信息配置为非持久化的时候生效。 也就是说在innodb_stats_persistent 配置为OFF的时候,非持久化存储统计信息的时候,inn 阅读全文

posted @ 2017-03-20 13:39 MSSQL123 阅读(4614) 评论(0) 推荐(0) 编辑

2017年3月18日 #

Sql Server优化---统计信息维护策略

摘要: 本文出处:http://www.cnblogs.com/wy123/p/5748933.html 首先解释一个概念,统计信息是什么: 简单说就是对某些字段数据分布的一种描述,让SQL Server大概知道预期的数据大小,从而指导生成合理执行计划的一种数据库对象 默认情况下统计信息的更新策略: 1,表 阅读全文

posted @ 2017-03-18 17:42 MSSQL123 阅读(5076) 评论(1) 推荐(2) 编辑

2017年2月7日 #

SQL Server 用角色(Role)管理数据库权限

摘要: 当数据库越来越多,连接到数据库的应用程序,服务器,账号越来越多的时候,为了既能达到满足账号操作数据权限需求,又不扩大其操作权限,保证数据库的安全性,有时候需要用角色来参与到权限管理中,通过角色做一个权限与访问用不之前的映射,可以更加方便地管理权限。 用SETUSER 切换到上面建的ReadUser账 阅读全文

posted @ 2017-02-07 14:10 MSSQL123 阅读(7369) 评论(3) 推荐(2) 编辑

sp_executesql 或者 EXECUTE 执行动态sql的权限问题

摘要: 当 sp_executesql 或 EXECUTE 语句执行字符串时,字符串将作为它的自包含批处理执行。SQL Server 会将字符串中的一个或多个 Transact-SQL 语句编译为独立于批处理(包含 sp_executesql 或 EXECUTE 语句)执行计划的执行计划。 跟权限有什么关系 阅读全文

posted @ 2017-02-07 11:25 MSSQL123 阅读(1891) 评论(1) 推荐(0) 编辑

2017年1月10日 #

关于T-SQL重编译那点事,内联函数和表值函数在编译生成执行计划的区别

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

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

2017年1月9日 #

关于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 阅读(8655) 评论(3) 推荐(7) 编辑

2016年12月31日 #

Nested Loops join时显示no join predicate原因分析以及解决办法

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

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

2016年12月24日 #

T-SQL字符串相加之后被截断的那点事

摘要: 本文出处:http://www.cnblogs.com/wy123/p/6217772.html 字符串自身相加, 虽然赋值给了varchar(max)类型的变量,在某些特殊情况下仍然会被“截断”,这到底是varchar(max)长度的问题还是操作的问题? 1,两个不超过8000长度的字符串自身相加 阅读全文

posted @ 2016-12-24 16:49 MSSQL123 阅读(2101) 评论(4) 推荐(2) 编辑

2016年12月17日 #

浅析SQL查询语句未显式指定排序方式,无法保证同样的查询每次排序结果都一致的原因

摘要: 本文出处:http://www.cnblogs.com/wy123/p/6189100.html 标题有点拗口,来源于一个开发人员遇到的实际问题 先抛出问题:一个查询没有明确指定排序方式,那么,第二次执行这个同样的查询的时候,查询结果会不会与第一次的查询结果排序方式完全一样? 答案是不确定的,两个完 阅读全文

posted @ 2016-12-17 15:02 MSSQL123 阅读(4215) 评论(0) 推荐(9) 编辑

2016年11月28日 #

连接SQLServer时,因启用连接池导致孤立事务的原因分析和解决办法

摘要: 本文出处:http://www.cnblogs.com/wy123/p/6110349.html 之前遇到过这么一种情况: 连接数据库的部分Session会出现不定时的阻塞,这种阻塞时长时短,有时候持续较长时间,有时间持续时间较短,没有什么规律。 之后分析相关存储过程和代码写法,发现是阻塞源头的存储 阅读全文

posted @ 2016-11-28 17:33 MSSQL123 阅读(2388) 评论(6) 推荐(9) 编辑

2016年11月20日 #

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 阅读(22925) 评论(7) 推荐(11) 编辑

2016年11月8日 #

SQL Server索引视图以(物化视图)及索引视图与查询重写

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

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

2016年10月28日 #

SQL Server 执行计划利用统计信息对数据行的预估原理二(为什么复合索引列顺序会影响到执行计划对数据行的预估)

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

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

2016年10月14日 #

SQL Server中公用表表达式 CTE 递归的生成帮助数据,以及递归的典型应用

摘要: 本文出处:http://www.cnblogs.com/wy123/p/5960825.html 我们在做开发的时候,有时候会需要一些帮助数据,必须需要连续的数字,连续间隔的时间点,连续的季度日期等等常见很多人利用master库的spt_values系统表,这个当然没有问题 比如下面这个(没截完,结 阅读全文

posted @ 2016-10-14 16:03 MSSQL123 阅读(1121) 评论(5) 推荐(4) 编辑

SQL Server 存储过程中处理多个查询条件的几种常见写法分析,我们该用那种写法

摘要: 本文出处: http://www.cnblogs.com/wy123/p/5958047.html 最近发现还有不少做开发的小伙伴,在写存储过程的时候,在参考已有的不同的写法时,往往很迷茫,不知道各种写法孰优孰劣,该选用那种写法,以及各种写法优缺点,本文以一个简单的查询存储过程为例,简单说一下各种写 阅读全文

posted @ 2016-10-14 08:50 MSSQL123 阅读(20461) 评论(18) 推荐(22) 编辑

2016年10月6日 #

SQL Server SQL性能优化之--pivot行列转换减少扫描计数优化查询语句

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

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

2016年9月26日 #

SQL Server 通过重建方式还原 master 数据库

摘要: 1,备份master数据库 2,停止服务,直接删除master数据文件 3,用安装程序重建master数据文件 控制台下进入安装目录就不说了 D:\SetUp\sqlserver2012>Setup /QUIET /ACTION=REBUILDDATABASE /INSTANCENAME=sqlse 阅读全文

posted @ 2016-09-26 17:25 MSSQL123 阅读(1951) 评论(2) 推荐(0) 编辑

2016年9月15日 #

SQL Server 统计信息更新时采样百分比对数据预估准确性的影响

摘要: 统计信息更新,采样百分比,密度 阅读全文

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

Windows 下noinstall方式安装 mysql-5.7.5-m15-winx64

摘要: 下载解压不说 我解压在:E:\DBFiles\mysql-5.7.15-winx64\mysql-5.7.15-winx64 添加配置文件E:\DBFiles\mysql-5.7.15-winx64\mysql-5.7.15-winx64\my.ini 配置mysql的bin为环境变量 在zip包中 阅读全文

posted @ 2016-09-15 09:58 MSSQL123 阅读(902) 评论(2) 推荐(0) 编辑

2016年9月7日 #

关于SSMS显示select出来的数据行的疑问

摘要: 调试存储过程时,往往可以用print将存储过程中的变量print出来, 但是print出来的字符串有一定长度限制,刚才专门试了一下,应该是4000个字符 如果超过4000个字符,超长的字符会被自动截断,这一点应该比较清楚。 对于超过4000的字符串没办法print出来的时候,往往可以选择select 阅读全文

posted @ 2016-09-07 15:52 MSSQL123 阅读(801) 评论(0) 推荐(0) 编辑

2016年8月22日 #

SQL Server 执行计划利用统计信息对数据行的预估原理以及SQL Server 2014中预估策略的改变

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

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

2016年7月19日 #

T-SQL---多值模糊查询的处理

摘要: 多值模糊查询的处理 所谓多值模糊查询,就是应用程序中传递过来多个参数,对这些参数做拆分,拆分之后,对拆分结果的key值分别做模糊查询处理 对于精确匹配时,不管是单个Key值还是多个Key值,都很容易处理,备选方案也很多 对于模糊查询,单个key值也很容易,也就是 ……where name like 阅读全文

posted @ 2016-07-19 10:52 MSSQL123 阅读(2548) 评论(0) 推荐(3) 编辑

2016年7月12日 #

SQL Server 并行操作优化,避免并行操作被抑制而影响SQL的执行效率

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

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

2016年6月21日 #

SQL Server创建复合索引时,复合索引列顺序对查询的性能影响

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

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

2016年6月2日 #

Sql Server 聚集索引扫描 Scan Direction的两种方式------FORWARD 和 BACKWARD

摘要: 最近发现一个分页查询存储过程中的的一个SQL语句,当聚集索引列的排序方式不同的时候,效率差别达到数十倍,让我感到非常吃惊由此引发出来分页查询的情况下对大表做Clustered Scan的时候,不同情况下会选择FORWARD 或者 BACKWARD差别,以及建立聚集索引时,选择索引列的排序方式的一些思 阅读全文

posted @ 2016-06-02 14:36 MSSQL123 阅读(3642) 评论(12) 推荐(2) 编辑

2016年5月22日 #

Sql Server 内存相关计数器以及内存压力诊断

摘要: 在数据库服务器中,内存是数据库对外提供服务最重要的资源之一, 不仅仅是Sql Server,包括其他数据库,比如Oracle,MySQL等,都是一类非常喜欢内存的应用. 在Sql Server服务器中,最理想的情况是Sql Server把所有所需的数据全部缓存到内存中,但是这往往也是不现实的,因为数 阅读全文

posted @ 2016-05-22 15:26 MSSQL123 阅读(3243) 评论(7) 推荐(9) 编辑

2016年4月24日 #

通过手动创建统计信息优化sql查询性能案例

摘要: 本质原因在于:SQL Server 统计信息只包含复合索引的第一个列的信息,而不包含复合索引数据组合的信息 来源于工作中的一个实际问题, 这里是组合列数据不均匀导致查询无法预估数据行数,从而导致无法选择合理的执行计划导致性能低下的情况 我这里把问题简单化,主要是为了说明问题 进行如下查询,就是查询那 阅读全文

posted @ 2016-04-24 17:51 MSSQL123 阅读(1651) 评论(2) 推荐(1) 编辑

2016年4月23日 #

对聚集表查询的时候,未显式指定排序列的时候,默认查询结果的顺序一定是按照聚集索引顺序排序的吗

摘要: 本文之外可参考另外一篇文章作为补充:http://www.cnblogs.com/wy123/p/6189100.html 在sql server 中,如果一张表存在聚集索引的时候,大多数情况下,如果进行select * from TableName查询,默认的返回顺序是按照聚集所在列的顺序返回的但 阅读全文

posted @ 2016-04-23 22:46 MSSQL123 阅读(2656) 评论(5) 推荐(4) 编辑

2016年3月13日 #

Buffer cache hit ratio性能计数器真的可以作为SQL Server 内存瓶颈的判断指标吗?

摘要: SQL Server中对于Buffer cache hit ratio的理解: Buffer cache hit ratio官方是这么解释的:“指示在缓冲区高速缓存中找到而不需要从磁盘中读取的页的百分比。” Buffer cache hit ratio被很多人当做判断内存的性能指标之一(当然没说仅仅 阅读全文

posted @ 2016-03-13 18:48 MSSQL123 阅读(5709) 评论(3) 推荐(5) 编辑

2015年9月8日 #

sqlserver 存储过程中使用临时表到底会不会导致重编译

摘要: 曾经在网络上看到过一种说法,SqlServer的存储过程中使用临时表,会导致重编译,以至于执行计划无法重用,运行时候会导致重编译的这么一个说法,自己私底下去做测试的时候,根据profile的跟踪结果,存储过程中使用临时表,如果不是统计信息变更导致导致的重编译,并不会导致重编译,但是现实情况下,对于一 阅读全文

posted @ 2015-09-08 23:01 MSSQL123 阅读(3142) 评论(1) 推荐(4) 编辑