摘要:
转自http://blogs.msdn.com/b/apgcdsd/archive/2011/01/17/sql-2008-error-701.aspx某个特定的存储过程在SQL 2008中执行会遇到以下错误:Msg 701, Level 17, State 123, Procedure GetAl... 阅读全文
摘要:
The question invoking the discussion was why did a query elect to use 100+ workers, approximately half the configured worker threads? Before erasing t... 阅读全文
摘要:
Tempdb系统数据库是一个全局资源,供连接到SQL Server实例的所有用户使用。在现在的SQL Server里,其使用频率可能会超过用户的想象。如果Tempdb空间耗尽,许多操作将不能完成。作为一个支持工程师,会被经常问到象“我的Tempdb为什么这么大?” “是谁把我的Tempdb空间用完的... 阅读全文
摘要:
SQL Server 2012 的内存管理和以前的版本相比,有以下的一些变化。一.内存分配器的变化SQL Server 2012以前的版本,比如SQL Server 2008 R2等, 有single page allocator 和multi page allocator。 也就是说, 如果申请的... 阅读全文
摘要:
由于各种各样的原因,我们可能需要通过sp_configure来设置最大并行度,也就是Max Degree of Parallelism (MAXDOP)。常见的场景包括由于并行引起的死锁,由于并行造成的CXPACKET类型的等待,以及由于并行导致的RESOURCE_SEMAPHORE类型的等待。但是... 阅读全文
摘要:
转自http://blogs.msdn.com/b/apgcdsd/archive/2012/05/14/sql-server-2008-spinlock.aspx什么是spinlock呢?Spinlock中文可以称为自旋锁。它是一个轻量级的,用户态的同步对象,和critical section类似... 阅读全文
摘要:
我在做SQL Server 7.0技术支持的时候有客户问我,“我的SQL Server buffer pool很大,有办法知道是哪些对象吃掉我的buffer Pool内存么?比方说,能否知道是哪个数据库,哪个表,哪个index占用了buffer Pool么?”当时我没有找到这个问题的答案,但是我一直... 阅读全文
摘要:
转自http://blogs.msdn.com/b/apgcdsd/archive/2014/04/08/sql-server-worker-threads-max-threads.aspx今天有客户写信问我, 他发现SQL server 的worker threads的总数超过了max worke... 阅读全文
摘要:
转自http://blogs.msdn.com/b/apgcdsd/archive/2013/06/17/sql-server-log-write.aspx我曾经有个客户问我,如果我的磁盘专门放日志,那么格式化磁盘的时候,分配单元大小应该选多大呢?这个问题,其实和SQL server的日志I/O操作... 阅读全文
摘要:
参考文档http://blogs.msdn.com/b/sqlserverstorageengine/archive/tags/tempdb/http://blogs.msdn.com/b/sqlserverstorageengine/archive/2008/03/23/checksum-and-... 阅读全文
摘要:
fromhttp://blogs.msdn.com/b/lcris/archive/2005/06/15/sql-server-2005-procedure-signing-demo.aspxThe ability to sign procedures is my favorite cryptogr... 阅读全文
摘要:
select r.ring_buffer_address,r.ring_buffer_type,dateadd (ms, r.[timestamp] - sysinfo.sqlserver_start_time_ms_ticks, sysinfo.sqlserver_start_time) as r... 阅读全文
摘要:
转自http://blogs.msdn.com/b/apgcdsd/archive/2011/11/24/sql-server-sqlos.aspxSQL Server通过WORKER, SCHEDULER, TASK等来对任务进行调度和处理。了解这些概念,对于了解SQL Server内部是如何工作... 阅读全文
摘要:
一个常见的想法是,能否能够知道目前还在运行的TSQL语句已经运行了多久呢?你可以使用SQL server profiler 捕获语句的开始时间,和现在的时间比较就可以知道已经运行多久了。但是Profiler有时候可能带来一些性能影响。下面介绍如何利用DMV来得到语句已经运行了多久。 在SQL ser... 阅读全文
摘要:
转自http://blogs.msdn.com/b/apgcdsd/archive/2011/07/06/sql-server-resource-semaphore.aspxSQL Server有两类RESOURCE_SEMAPHORE等待事件:RESOURCE_SEMAPHORERESOURCE_... 阅读全文
摘要:
很多DBA都希望能够得到某个存储过程的执行信息,比如:1) 执行了多少次2) 执行的执行计划如何3) 执行的平均读写如何4) 执行平均需要多少时间等等. 幸运的是SQL server 2008 提供了一个这样的DMV,使得我们比较容易就得到上面的信息。这个DMV是sys.dm_exec_proced... 阅读全文
摘要:
转自http://blogs.msdn.com/b/apgcdsd/archive/2012/02/28/sql-server-deadlock.aspx最近遇到了一个看上去很奇怪,分析起来很有意思的死锁问题。这个死锁看上去难以理解。而分析过程中,又使用了很多分析SQL Server死锁的典型方法。... 阅读全文
摘要:
转自 http://blogs.msdn.com/b/apgcdsd/archive/2012/04/16/track.aspx有个script我们很熟悉,是用来去查找当前SQL Server中哪些存储过程变重编译的次数最多的:--Gives you the top 25 stored proced... 阅读全文
摘要:
转自http://blogs.msdn.com/b/apgcdsd/archive/2013/03/13/microsoft-sql-server.aspx停止SQL server有哪些方式呢?这些方式有啥不一样的地方么?先说下停止SQL server的方式.大概下面几种:1)从SQL server... 阅读全文
摘要:
转自http://blogs.msdn.com/b/apgcdsd/archive/2013/09/05/nolock.aspxNOLOCK的作用有的时候还是很强大的。通常我们的理解是NOLOCK不需要申请S锁,从而避免因他人做数据修改引起的阻塞,也就是说NOLOCK理应返回更多的数据才对(比如新插... 阅读全文