代码改变世界

随笔分类 -  数据库技术(MS SQL)

SQL Server关于predicate、density、selectivity、cardinality名词浅析

2019-03-27 08:45 by 潇湘隐者, 3005 阅读, 收藏, 编辑
摘要: 在SQL Server中,我们要看懂执行计划和统计信息,我们可能需要深刻理解一些关键词,例如密度(Density)、选择性(Selectivity)、谓词(predicate)、基数(Cardinality)。前阵子,对密度和选择性的概念模糊了,刚好看了Query Tuning Fundamentals: Density, Predicates, Selectivity, and Card... 阅读全文

SQL Server移除事务日志后sys.master_files依然存在记录问题

2019-03-19 15:38 by 潇湘隐者, 1063 阅读, 收藏, 编辑
摘要: 在SQL Server中移除了事务日志文件后,使用sys.master_files检查时发现,对应的事务日志文件记录信息依然存在sys.master_files里面,只是状态state_desc为OFFLINE。需要经过一段时间,这条记录在这个系统视图才会消失。 DECLARE @db_name NVARCHAR(32);SET @db_name=N'TEST';SELECT f.dat... 阅读全文

阿里云RDS for SQL Server测试吐槽

2019-03-12 12:53 by 潇湘隐者, 2164 阅读, 收藏, 编辑
摘要: 最近测试了一下阿里云RDS for SQL Server,有些设计简直就是反人类,让人不得不吐槽一番。 1:控制台创建数据库时,数据库名不能包含大小字母。 如上截图所示,数据库名称不能包含大写字母,好吧,这个限制我认了。 但是使用“高权限账号”通过SSMS客户端连接数据库,可以创建包含大写字母的数据库。这个是完全不一致的行为? 实在不明白要弄成前后矛盾!。最坑爹的是,如果你用S... 阅读全文

SQL Server作业报错特殊案例

2019-03-08 17:15 by 潇湘隐者, 1612 阅读, 收藏, 编辑
摘要: 一个作业报错,报错信息如下,从错误信息根本看不出为什么出错,手工运行作业又成功了。一时不清楚什么原因导致作业出错。 MessageExecuted as user: NT SERVICE\SQLSERVERAGENT. ...eration. [SQLSTATE 01003] (Message 8153) Mar 6 2019 8:09AM [SQLSTATE 01000] (Mess... 阅读全文

Variable SQLLOGDIR not found

2019-03-01 12:58 by 潇湘隐者, 978 阅读, 收藏, 编辑
摘要: 昨天在一数据库(SQL Server 2008 R2 SP3)上部署了一个作业,今天早上收到告警邮件,作业执行报错“Unable to start execution of step 1 (reason: Variable SQLLOGDIR not found). The step failed”,刚开始有点莫名其妙,后面检查发现出错的原因是因为在高级选项(Advanced)里面的output... 阅读全文

SQL Server查看索引重建、重组索引进度

2019-02-25 14:57 by 潇湘隐者, 8899 阅读, 收藏, 编辑
摘要: 相信很多SQL Server DBA或开发人员在重建或重组大表索引时,都会相当郁闷,不知道索引重建的进度,这个对于DBA完全是一个黑盒子,对于系统负载非常大的系统或维护窗口较短的系统,你会遇到一些挑战。例如,你创建索引的时候,很多会话被阻塞,你只能取消创建索引的任务。查看这些索引维护操作的进度、预估时间对于我们有较大的意义,需要根据这个做一些决策。下面我们来看看看看如何获取CREATE INDEX... 阅读全文

SQL Server 查找统计信息的采样时间与采样比例

2019-02-18 16:39 by 潇湘隐者, 2327 阅读, 收藏, 编辑
摘要: 有时候我们会遇到,由于统计信息不准确导致优化器生成了一个错误的执行计划(或者这样表达:一个较差的执行计划),从而引起了系统性能问题。那么如果我们怀疑这个错误的执行计划是由于统计信息不准确引起的。那么我们如何判断统计信息不准确呢?当然首先得去查看实际执行计划中,统计信息的相关数据是否与实际情况有较大的出入,下面我们抛开这个大命题,仅仅从统计信息层面去查看统计信息的更新时间,统计信息的采样行数、采样比... 阅读全文

SQL Server中是否可以准确获取最后一次索引重建的时间?

2019-02-18 11:03 by 潇湘隐者, 1554 阅读, 收藏, 编辑
摘要: 在SQL Server中,我们能否找到索引的创建时间?最后一次索引重建(Index Rebuild)的时间? 最后一次索引重组(INDEX REORGANIZE)的时间呢? 答案是我们无法准确的找到索引的创建时间、最后一次索引重组时间,最后一次索引重建的时间。 其实就目前SQL Server的各个版本而言,还没有一个系统表或DMV视图有保存索引创建的时间,索引重建的时间、索引重组的时间。但是有些... 阅读全文

SQL Server一致性错误修复案例总结

2019-01-11 12:07 by 潇湘隐者, 5134 阅读, 收藏, 编辑
摘要: 今天遇到了一个关于数据库一致性错误的案例。海外工厂的一台SQL Server 2005(9.00.5069.00 Standard Edition)数据库在做DBCC CHECKDB的时候出现了一致性错误,下面总结一下处理过程。具体的一致性错误信息如下所示: Msg 8992, Level 16, State 1, Line 1 Check Catalog Msg 3853, State ... 阅读全文

There is already an object named '#xxxx' in the database.

2018-12-31 10:23 by 潇湘隐者, 1584 阅读, 收藏, 编辑
摘要: 这个案例是前几天同事遇到的一个案例,在存储过程中“删除”了一个临时表,然后重新创建这个临时表时遇到“There is already an object named 'xxxx' in the database."这样的错误。下面简单演示一下这个案例(不用存储过程,而是直接用简单的SQL语句重现) CREATE TABLE #temp_test( id INT, name VARCHAR... 阅读全文

SQL Server服务没有自动启动原因案例分析

2018-12-28 11:32 by 潇湘隐者, 14402 阅读, 收藏, 编辑
摘要: 这个案例是前两天出现的,一直没有时间总结,25号凌晨4点去处理数据库的故障问题。远程连上公司的局域网,psping检查发现服务器的1433端口不通,数据库连接不上,但是主机又能ping通,登录服务器检查发现SQL Server的SQL Server (MSSQLSERVER) Service 等服务都没有启动.从Zabix检查也发现服务停了, 真是懵了,使用systeminfo命令检查系统的情况,... 阅读全文

Cannot connect to WMI Provider & Invalid class [0x80041010]

2018-12-25 10:42 by 潇湘隐者, 1157 阅读, 收藏, 编辑
摘要: 数据库服务器(Virtual Machine)所在的Nutanix一台主机由于故障,VM自动切换到另一台主机,切换过程中VM会重新启动,但是早上检查的时候,发现点击SQL Server Configuration Manager进去时报如下错误: ”Cannot connect to WMI provider.You do not have permission or the server i... 阅读全文

Failure sending mail: The user or group name 'xxx\xxxx' is not recognized.Mail will not be resent

2018-12-05 17:03 by 潇湘隐者, 856 阅读, 收藏, 编辑
摘要: 一批Reporting Service报表的订阅突然报如下错误: Failure sending mail: The user or group name 'xxx\xxxx' is not recognized.Mail will not be resent. 原因如下,因为开发这批报表的人(也就是报表的创建者)离职了,然后他的NT账号在DC里面被系统管理员删除了。自然就没有权限将订... 阅读全文

如何定位“Operating system error 32(failed to retrieve text for this error. Reason: 15105)”错误中被占用的文件

2018-11-26 16:18 by 潇湘隐者, 1146 阅读, 收藏, 编辑
摘要: 之前在这篇“Operating system error 32(failed to retrieve text for this error. Reason: 15105)”博客里面,介绍了因为AWS的DMS的相关会话进程在读取事务日志备份中内容(跟普通的Replication有点不同),导致事务日志备份出现Operating system error 32错误(The process can... 阅读全文

一个特殊的SQL Server阻塞案例分析

2018-11-26 14:50 by 潇湘隐者, 2722 阅读, 收藏, 编辑
摘要: 上周,在SQL Server数据库下面遇到了一个有意思的SQL阻塞(SQL Blocking)案例。其实个人对SQL Server的阻塞还是颇有研究的。写过好几篇相关文章。 至于这里为什么要总结一下这个案例,因为这个案例有点意思: 1:使用DMV视图捕获到的Blocking SQL为一个查询语句(这个不是真正引起阻塞的源头SQL语句),等待事件为LCK_M_S。 2:出现阻塞的会话非常... 阅读全文

cannot be run because the QueueReader subsystem failed to load

2018-11-22 14:52 by 潇湘隐者, 584 阅读, 收藏, 编辑
摘要: 前阵子一数据库服务器的事务日志开始暴增,当时使用下面脚本检查发现该数据库的log_reuse_wait_desc 一直处于REPLICATION状态, 也就是说在事务复制过程中,与发布相关的事务仍未传递到分发数据库。刚好前一天有个同事配置了AWS的DMS相关作业。 SELECT name, log_reuse_wait_desc FROM sys.databases; 找到具体作业检查发... 阅读全文

SQL Server Log Shipping学习总结

2018-11-13 12:25 by 潇湘隐者, 5659 阅读, 收藏, 编辑
摘要: SQL Server的日志传送(log shipping)技术一直比较鸡肋,尤其当SQL Server 推出了Always On技术以后,估计使用日志传送(log shipping)这种技术方案的企业越来越少,但是日志传送也有自己的一些优点,有些特殊场景或业务背景下也有其存在的价值。最近由于特殊业务场景可能需要用到这个技术,所以做了一些测试和验证,比对一些知识做了一下总结、归纳。下面有部分内容... 阅读全文

SQL Server 更新统计信息出现严重错误,应放弃任何可能产生的结果

2018-10-17 15:00 by 潇湘隐者, 1880 阅读, 收藏, 编辑
摘要: 一台SQL Server 2008 R2版本(具体版本如下所示)的数据库,最近几天更新统计信息的作业出错,错误如下所示: Microsoft SQL Server 2008 R2 (SP2) - 10.50.4000.0 (X64) Jun 28 2012 08:36:30 Copyright (c) Microsoft Corporation Standard... 阅读全文

SQL Server中LIKE %search_string% 走索引查找(Index Seek)浅析

2018-10-17 12:27 by 潇湘隐者, 5459 阅读, 收藏, 编辑
摘要: 在SQL Server的SQL优化过程中,如果遇到WHERE条件中包含LIKE '%search_string%'是一件非常头痛的事情。这种情况下,一般要修改业务逻辑或改写SQL才能解决SQL执行计划走索引扫描或全表扫描的问题。最近在优化SQL语句的时候,遇到了一个很有意思的问题。某些使用LIKE '%' + @search_string + '%'(或者 LIKE @search_strin... 阅读全文

SQL Server实际执行计划COST"欺骗"案例

2018-10-10 15:10 by 潇湘隐者, 1458 阅读, 收藏, 编辑
摘要: 有个系统,昨天Support人员发布了相关升级脚本后,今天发现系统中有个功能不能正常使用了,直接报超时了(Timeout expired)的错误。定位到相关相关存储过程后,然后在优化分析的过程中,又遇到了执行计划COST “欺骗”我们的这种情况,其实在我这篇博客”SQL SERVER中用户定义标量函数(scalar user defined function)的性能问题“有提及这个问题,但是很多时... 阅读全文
上一页 1 2 3 4 5 6 7 8 9 ··· 19 下一页