摘要:
在SQL Server中,会话的状态有运行(Running)、睡眠(Sleeping)、休眠(Dormant)、Preconnect 等状态,有时候你会在数据库中看到很多会话处于睡眠(Sleeping)状态,那么这些睡眠(Sleeping)状态的会话会消耗CPU、Memory资源吗?如果消耗资源的话,那么sleeping会话具体消耗多少内存资源呢? 另外它会影响数据库性能吗? 首先,处于睡... 阅读全文
随笔分类 - 数据库技术(MS SQL)
SQL Server数据库文件与文件组总结
2019-04-25 13:38 by 潇湘隐者, 4017 阅读, 收藏,
摘要:
文件和文件组概念 关于文件与文件组,简单概括如下,详情请参考官方文档“数据库文件和文件组Database Files and Filegroups”或更多相关资料: 数据文件概念: 每个SQL Server数据库至少包含两个作系统文件:一个数据文件(data file)和一个日志文件(log file)。数据文件包含数据和对象,例如表、索引、存储过程和视图....。日志文件包含恢复... 阅读全文
SQL Server使用sp_rename重命名约束注意事项
2019-04-18 16:12 by 潇湘隐者, 3217 阅读, 收藏,
摘要:
在SQL Server中,我们可以使用sp_name这个系统存储过程重命名数据库中对象的名称。 此对象可以是表、 索引、 列、 别名,约束等数据类型(具体可以参考官方文档)。上周在使用这个函数重构数据库中约束的时候,遇到了下面错误,如下所示: USE AdventureWorks2014; GO sp_rename 'ErrorLog.DF_ErrorLog_ErrorTime', 'DF... 阅读全文
LogWriter: Operating system error 21(error not found) encountered
2019-04-15 14:58 by 潇湘隐者, 1028 阅读, 收藏,
摘要:
一台老旧的数据库服务器(SQL Server 2005)突然报如下错误,而且数据库处于RECOVERY PENDING ,检查错误日志,发现这个错误是突然出现的。没有任何其它人为误操作导致 Date 2019/4/15 10:57:47 Log SQL Server (Archive #1 - 2019/4/15 11:16:00) Source ... 阅读全文
SQL Server的Linked Server支持使用SEQUENCE吗?
2019-04-11 16:04 by 潇湘隐者, 818 阅读, 收藏,
摘要:
SQL Server的Linked Server支持使用SEQUENCE吗? SQL Server 2012开始支持序列(SEQUENCE),今天遇到有个同事咨询,能否在LINKED SERVER里面调用SEQENCE, 结果我测试发现不行,但是不管官方文档也好,网上相关资料也罢,都没有说支持,也没有说不支持。 例如官方文档NEXT VALUE FOR (Transact-SQL)中明确表... 阅读全文
SQL Server使用sp_spaceused查看表记录存在不准确的情况
2019-04-09 09:10 by 潇湘隐者, 906 阅读, 收藏,
摘要:
在之前写过一篇博客"关系数据库如何快速查询表的记录数",里面介绍了使用sp_spaceused查看表的记录数是否正确的问题,具体如下: 关于问题3:有多个索引的表,是否记录数会存在不一致的情况? 答案:个人测试以及统计来看,暂时发现多个索引的情况下,sys.partitions中的rows记录数都是一致的。暂时没有发现不一致的情况,当然也不排除有特殊情况。 关于问题5: 分区表的... 阅读全文
SQL Server死锁中的会话隔离级别为序列化(Serializable)实验测试
2019-04-03 09:36 by 潇湘隐者, 1213 阅读, 收藏,
摘要:
最近在分析SQL Server的死锁时,发现一个比较有意思的现象,发现死锁当中一个会话的隔离级别为序列化(Serializable),这个是让人比较奇怪的地方,我们知道SQL Server数据库的默认隔离级别为已提交读(READ COMMITTED),除非人为设置事务隔离级别(TRANSACTION ISOLATION LEVEL),否则事务隔离级别会使用数据库的默认隔离级别。在分析了死锁相关的存... 阅读全文
SQL Server统计信息偏差影响表联结方式案例浅析
2019-03-31 19:54 by 潇湘隐者, 1316 阅读, 收藏,
摘要:
我们知道数据库中的统计信息的准确性是非常重要的。它会影响执行计划。一直想写一篇关于统计信息影响执行计划的相关博客,但是都卡在如何构造一个合适的例子上,所以一直拖着没有写。巧合,最近在生产环境中遇到这么一个案例,下面对案例中的相关信息做了脱敏处理,有些中间步骤也省略了,只关注核心部分SQL。如下所示,同事反馈一个SQL语句执行很慢。 UPDATE bSET b.[Statu... 阅读全文
SQL Server关于predicate、density、selectivity、cardinality名词浅析
2019-03-27 08:45 by 潇湘隐者, 3428 阅读, 收藏,
摘要:
在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 潇湘隐者, 1114 阅读, 收藏,
摘要:
在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 潇湘隐者, 2227 阅读, 收藏,
摘要:
最近测试了一下阿里云RDS for SQL Server,有些设计简直就是反人类,让人不得不吐槽一番。 1:控制台创建数据库时,数据库名不能包含大小字母。 如上截图所示,数据库名称不能包含大写字母,好吧,这个限制我认了。 但是使用“高权限账号”通过SSMS客户端连接数据库,可以创建包含大写字母的数据库。这个是完全不一致的行为? 实在不明白要弄成前后矛盾!。最坑爹的是,如果你用S... 阅读全文
SQL Server作业报错特殊案例
2019-03-08 17:15 by 潇湘隐者, 1712 阅读, 收藏,
摘要:
一个作业报错,报错信息如下,从错误信息根本看不出为什么出错,手工运行作业又成功了。一时不清楚什么原因导致作业出错。 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 潇湘隐者, 1031 阅读, 收藏,
摘要:
昨天在一数据库(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 潇湘隐者, 9230 阅读, 收藏,
摘要:
相信很多SQL Server DBA或开发人员在重建或重组大表索引时,都会相当郁闷,不知道索引重建的进度,这个对于DBA完全是一个黑盒子,对于系统负载非常大的系统或维护窗口较短的系统,你会遇到一些挑战。例如,你创建索引的时候,很多会话被阻塞,你只能取消创建索引的任务。查看这些索引维护操作的进度、预估时间对于我们有较大的意义,需要根据这个做一些决策。下面我们来看看看看如何获取CREATE INDEX... 阅读全文
SQL Server 查找统计信息的采样时间与采样比例
2019-02-18 16:39 by 潇湘隐者, 2446 阅读, 收藏,
摘要:
有时候我们会遇到,由于统计信息不准确导致优化器生成了一个错误的执行计划(或者这样表达:一个较差的执行计划),从而引起了系统性能问题。那么如果我们怀疑这个错误的执行计划是由于统计信息不准确引起的。那么我们如何判断统计信息不准确呢?当然首先得去查看实际执行计划中,统计信息的相关数据是否与实际情况有较大的出入,下面我们抛开这个大命题,仅仅从统计信息层面去查看统计信息的更新时间,统计信息的采样行数、采样比... 阅读全文
SQL Server中是否可以准确获取最后一次索引重建的时间?
2019-02-18 11:03 by 潇湘隐者, 1678 阅读, 收藏,
摘要:
在SQL Server中,我们能否找到索引的创建时间?最后一次索引重建(Index Rebuild)的时间? 最后一次索引重组(INDEX REORGANIZE)的时间呢? 答案是我们无法准确的找到索引的创建时间、最后一次索引重组时间,最后一次索引重建的时间。 其实就目前SQL Server的各个版本而言,还没有一个系统表或DMV视图有保存索引创建的时间,索引重建的时间、索引重组的时间。但是有些... 阅读全文
SQL Server一致性错误修复案例总结
2019-01-11 12:07 by 潇湘隐者, 5426 阅读, 收藏,
摘要:
今天遇到了一个关于数据库一致性错误的案例。海外工厂的一台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 潇湘隐者, 15539 阅读, 收藏,
摘要:
这个案例是前两天出现的,一直没有时间总结,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 潇湘隐者, 1219 阅读, 收藏,
摘要:
数据库服务器(Virtual Machine)所在的Nutanix一台主机由于故障,VM自动切换到另一台主机,切换过程中VM会重新启动,但是早上检查的时候,发现点击SQL Server Configuration Manager进去时报如下错误: ”Cannot connect to WMI provider.You do not have permission or the server i... 阅读全文
浙公网安备 33010602011771号