需要我们了解的SQL Server阻塞原因与解决方法 上篇说SQL Server应用模式之OLTP系统性能分析.五种角度分析sql性能问题.本章依然是SQL性能 五种角度其一“阻塞与死锁” 这里通过连接在sysprocesses里字段值的组合来分析阻塞源头,可以把阻塞分为以下5种常见的类型(见表).waittype,open_tran,status,都是sysprocesses里的值,“自我修复?”列的意思,就是指阻塞能不能自动消失.  5种常见的阻塞类型 类型 waittype open_tr…
这里通过连接在sysprocesses里字段值的组合来分析阻塞源头,可以把阻塞分为以下5种常见的类型(见表).waittype,open_tran,status,都是sysprocesses里的值,“自我修复?”列的意思,就是指阻塞能不能自动消失. 5种常见的阻塞类型 类型 waittype open_tran status 自我修复 原因/其他特征 1 不为0 >=0 runnable 是的,当语句运行结束后 语句运行的时间比较长,运行时需等待某些系统资源(如硬盘读写.CPU或内存等). 2…
背景知识: 是什么造成了阻塞? 从锁的观点来看.可访问对象前一定要对对象加锁不管你是读还是写,如果用户A以经持有对象,说明A以在对象上加锁,如果这时B 也想访问这个对象.它也要对对象加锁.重点来了如果A用户加的是排它锁,B用户可以做的就是乖乖等A用完再说.B乖乖等这个问题 就是阻塞,是因为这两把锁不可以共存才造成了阻塞. 场景再现: 为在再现场景我们要开三个通向数据的连接.就是说要打开三个managerment studio 或是开三个sqlcmd.我用ssms(SQL Server Manag…
前段时间客户数据服务器断电,开机后发现数据库状态标记为可疑,可能是断电引起的数据库日志文件损坏,修复方法如下: 只有mdf文件,重建日志: --注:example为测试用数据库,相应的Example_log.ldf为测试用的日志文件 use master go alter database example set emergency go --置数据库为单用户模式 alter database example set single_user with rollback immediate go…
[1] 停止SQL Server 服务 和 SQL Server Agent 服务 [2] 以管理员身份打开命令行,单用户模式启动服务.(在单用户模式下启动 SQL Server 可使计算机本地 Administrators 组的任何成员作为 sysadmin 固定服务器角色的成员连接到 SQL Server 实例)C:\Windows\system32>net start MSSQLSERVER /mSQL Server (MSSQLSERVER) 服务正在启动 .SQL Server (MS…
问题:The requested URL /xxxx.html was not found on this server 原因:apache的重写未开启,开启重写后,问题解决, 方法如下: apache 打开 httpd.conf 文件 找到AllowOverride None 改为 AllowOverride All…
毫无疑问,给表添加索引是有好处的,你要做的大部分工作就是维护索引,在数据更改期间索引可能产生碎片,所以一些维护是必要的.碎片可能是你查询产生性能问题的来源. 那么到底什么是索引碎片呢?索引碎片实际上有2种形式:外部碎片和内部碎片.不管哪种碎片基本上都会影响索引内页的使用.这也许是因为页的逻辑顺序错误(即外部碎片)或每页存储的数据量少于数据页的容量(内部错误).无论索引产生了哪种类型的碎片,你都会因为它而面临查询的性能问题. 外部碎片 当 索引页不在逻辑顺序上时就会产生外部碎片.索引创建时,索引键…
USE master; GO DECLARE @SQL VARCHAR(MAX); SET @SQL='' SELECT @SQL=@SQL+'; KILL '+RTRIM(SPID) FROM master..sysprocesses WHERE dbid=DB_ID('数据库名称'); EXEC(@SQL); GO ALTER DATABASE 数据库名称 set MULTI_USER…
问题:System.Data.SqlClient.SqlError: 无法使用备份文件 'D:\20160512.bak',因为原先格式化该文件时所用扇区大小为 512,而目前所在设备的扇区大小为 4096. (Microsoft.SqlServer.Smo) 方法:删除原来那个备份记录就行…
SQL Server阻塞与锁 在讨论阻塞与加锁之前,需要先理解一些核心概念:并发性.事务.隔离级别.阻塞锁及死锁. 并发性是指多个进程在相同时间访问或者更改共享数据的能力.一般情况而言,一个系统在互不干扰的情况下可以激活的并发用户的进程数越多,该系统的并发性就越强.就像通常所说的系统性能表现,系统同时处理的并发用户数越多,说明系统的性能越强.当正在更改数据的进程阻止其他进程读取该数据时,或者当读取数据的进程阻止其它进程更改该数据时,并发行会减弱.另外,当多个进程试图同时更改相同数据时,且无法在不…