代码改变世界

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

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

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

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

2019-01-11 12:07 by 潇湘隐者, 5507 阅读, 收藏,
摘要: 今天遇到了一个关于数据库一致性错误的案例。海外工厂的一台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 潇湘隐者, 15712 阅读, 收藏,
摘要: 这个案例是前两天出现的,一直没有时间总结,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 潇湘隐者, 1245 阅读, 收藏,
摘要: 数据库服务器(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 潇湘隐者, 1253 阅读, 收藏,
摘要: 之前在这篇“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 潇湘隐者, 3221 阅读, 收藏,
摘要: 上周,在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 潇湘隐者, 645 阅读, 收藏,
摘要: 前阵子一数据库服务器的事务日志开始暴增,当时使用下面脚本检查发现该数据库的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 潇湘隐者, 6507 阅读, 收藏,
摘要: SQL Server的日志传送(log shipping)技术一直比较鸡肋,尤其当SQL Server 推出了Always On技术以后,估计使用日志传送(log shipping)这种技术方案的企业越来越少,但是日志传送也有自己的一些优点,有些特殊场景或业务背景下也有其存在的价值。最近由于特殊业务场景可能需要用到这个技术,所以做了一些测试和验证,比对一些知识做了一下总结、归纳。下面有部分内容... 阅读全文

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

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

SQL Server中通用数据库角色权限处理

2018-09-28 17:33 by 潇湘隐者, 1614 阅读, 收藏,
摘要: SQL Server中通用数据库角色权限处理 最近和同事在做数据库权限清理的事情,主要是删除一些账号;取消一些账号的较大的权限等,例如,有一些有db_owner权限,我们取消账号的数据库角色db_owner,授予最低要求的相关权限。但是这种工作完全是一个体力活,而且是吃力不讨好,而且推进很慢。另外,为了管理方便和细化,我们又在常用的数据库角色外,新增了6个通用的数据库角色。如下截图所示。 ... 阅读全文

Key Lookup开销过大导致聚集索引扫描

2018-09-21 15:11 by 潇湘隐者, 3980 阅读, 收藏,
摘要: 以前总结过一篇文章SQL SERVER中什么情况会导致索引查找变成索引扫描 介绍了几种索引查找(Index Seek)变成索引扫描(Index Scan)的情形。昨天写一篇文章的时候,也遇到了一个让人奇怪的执行计划。一时没有想明白为什么优化器会选择聚集索引扫描。案例详情请见SQL Server OPTION (OPTIMIZE FOR UNKNOWN) 测试总结 。 如下所示,测试环境为SQL ... 阅读全文

SQL Server OPTION (OPTIMIZE FOR UNKNOWN) 测试总结

2018-09-21 00:37 by 潇湘隐者, 5907 阅读, 收藏,
摘要: 关于SQL Server的查询提示OPTION (OPTIMIZE FOR UNKNOWN) ,它是解决参数嗅探的方法之一。 而且对应的SQL语句会缓存,不用每次都重编译。关键在于它的执行计划的准确度问题, 最近在优化的时候,和同事对于这个查询提示(Query Hint)有一点分歧,遂动手实验验证、总结了一些东西。 关于提示OPTION (OPTIMIZE FOR UNKNOWN),它会利... 阅读全文

一次存储过程参数嗅探定位流程总结

2018-09-15 12:30 by 潇湘隐者, 3708 阅读, 收藏,
摘要: 昨天一开发同事反馈一个存储过程很慢,但是重编译后,存储过程就很快了。了解基本情况后,初步判断是参数嗅探问题。那么如何诊断定位、分析问题呢?下面简单介绍一下这次参数嗅探问题定位的流程过程。 首先查看该存储过程的执行计划相关信息: 如下截图所示,此存储过程是2018-09-12 9:03:01缓存的,最后一次执行是2018-09-14 08:58,而且自上次缓存后,执行了24875次。... 阅读全文

Cannot obtain the required interface ("IID_IDBCreateCommand") from OLE DB provider "OraOLEDB.Oracle" for linked server xxxx

2018-09-04 23:13 by 潇湘隐者, 2686 阅读, 收藏,
摘要: 今天遇到了一个关于LINKED SERVER查询报错的案例,链接服务器链接ORACLE数据库,测试没有错误,但是执行脚本的时候,报如下错误: Msg 7399, Level 16, State 1, Line 1 The OLE DB provider "OraOLEDB.Oracle" for linked server "xxxx" reported an error. Ac... 阅读全文

SQL Server如何查找表名或列名中包含空格的表和列

2018-08-28 16:21 by 潇湘隐者, 5587 阅读, 收藏,
摘要: 最近发现一个数据库中的某个表有个字段名后面包含了一个空格,这个空格引起了一些小问题,一般出现这种情况,是因为创建对象时,使用双引号或双括号的时候,由于粗心或手误多了一个空格,如下简单案例所示: USE TEST;GO --表TEST_COLUMN中两个字段都包含有空格CREATE TABLE TEST_COLUMN ( "ID " INT IDENTITY (1,1),... 阅读全文

The log scan number (620023:3702:1) passed to log scan in database 'xxxx' is not valid

2018-08-14 10:23 by 潇湘隐者, 1388 阅读, 收藏,
摘要: 昨天一台SQL Server 2008R2的数据库在凌晨5点多抛出下面告警信息: The log scan number (620023:3702:1) passed to log scan in database 'xxxx' is not valid. This error may indicate data corruption or that the log file (.ldf) ... 阅读全文
上一页 1 2 3 4 5 6 7 8 9 10 ··· 20 下一页