sqlserver2008 死锁解决方法及性能优化方法

原文: http://blog.csdn.net/kuui_chiu/article/details/48621939

十步优化SQL Server中的数据访问

http://tech.it168.com/a2009/1125/814/000000814758_2.shtml

关于死锁:

[sql] view plain copy

 
  1. sp_who active  --看看哪个引起的死锁, blk里面即阻塞的spid;
  2. dbcc inputbuffer(@blk) -- 可以查看是那个sql语句造成的死锁;
  3. sp_lock  --看看锁住了那个资源,objid即被锁住的资源id;
  4. select object_name(objid) --可得到受影响的表名;
 

综合以上功能,我们可以写一个自动查找死锁的存储过程,如下:

查找死锁.sql

[sql] view plain copy

 
  1. SET ANSI_NULLS ON
  2. GO
  3. SET QUOTED_IDENTIFIER ON
  4. GO
  5. CREATE PROCEDURE Find_Lock
  6. AS
  7. BEGIN
  8. SET NOCOUNT ON;
  9. declare @spid int,@blk int
  10. DECLARE cur CURSOR FOR
  11. select 0 ,blocked
  12. from (select * from sysprocesses where blocked>0 ) a
  13. where not exists(select * from (select * from sysprocesses where blocked>0 ) b
  14. where a.blocked=spid)
  15. union select spid,blocked from sysprocesses where blocked>0
  16. OPEN cur
  17. FETCH NEXT FROM cur INTO @spid,@blk
  18. WHILE @@FETCH_STATUS = 0
  19. begin
  20. if @spid =0
  21. select '引起死锁的进程号是 : '+ CAST(@blk AS VARCHAR(10)) + ', 其执行的 SQL 语法如下 '
  22. else
  23. select '进程号 SPID :'+ CAST(@spid AS VARCHAR(10))+ '被进程号 SPID : '+ CAST(@blk AS VARCHAR(10)) +'阻塞 , 其当前进程执行的 SQL 语法如下'
  24. DBCC INPUTBUFFER (@blk )
  25. FETCH NEXT FROM cur INTO @spid,@blk
  26. end
  27. CLOSE cur
  28. DEALLOCATE cur
  29. END
  30. GO
  31. --sqlserver性能优化
  32. go
  33. exec sp_configure ”awe enabled”,”1″–内存可以支持64g
  34. exec sp_configure ”lightweight pooling”,”0″–不使用nt纤程
  35. exec sp_configure ”priority boost”,”1″–增加sqlserver优先级
  36. exec sp_configure ”network packet size (b)”,”8192″–增加sqlserver网络包的大小
  37. reconfigure with override
  38. –优化数据库设置
  39. declare @currentdatabase sysname
  40. select @currentdatabase = db_name((select dbid from master.dbo.sysprocesses wherespid = @@spid))
  41. exec sp_dboption @currentdatabase, ‘select into/bulkcopy’, ‘true’ –对大容量数据操作不记录日志
  42. exec  sp_dboption @currentdatabase, ‘trunc. log on chkpt.’, ‘true’ –自动截断日志
  43. exec  sp_dboption @currentdatabase, ‘auto create statistics’, ‘true’–自动创建统计
  44. exec  sp_dboption @currentdatabase, ‘auto update statistics’, ‘true’–自动更新统
  45. go

如果你不做日常维护,请立即开始。

经常用

[sql] view plain copy

 
  1. DBCC showcontig(表名) 查看表的碎片, 主要查看扫描密度 ,如果主要的大表扫描密度 < 40%, 意味着你有严重的碎片可以用
  2. DBCC indexDefrag (数据库名,表名)整理碎片或者用
  3. DBCC DBREINDEX(表名) 重建 index.

http://bbs.51cto.com/thread-1024392-1.html

执行下面的SQL语句就知道了(下面的语句可以在SQL Server 2005及后续版本中运行,用你的数据库名替换掉这里的AdventureWorks):

[sql] view plain copy

 
  1. USE master
  2. go
  3. SELECT
  4. object_name(dt.OBJECT_ID,db_id('AdventureWorks')) Tablename,
  5. si.name
  6. IndexName,dt.avg_fragmentation_in_percent AS ExternalFragmentation,
  7. dt.avg_page_space_used_in_percent AS InternalFragmentation
  8. FROM
  9. (
  10. SELECT object_id,index_id,avg_fragmentation_in_percent,avg_page_space_used_in_percent
  11. FROM sys.dm_db_index_physical_stats (db_id('AdventureWorks'),null,null,null,'DETAILED')
  12. WHERE index_id <> 0
  13. ) AS dt INNER JOIN AdventureWorks.sys.indexes si ON si.object_id=dt.object_id
  14. AND si.index_id=dt.index_id
  15. AND dt.avg_fragmentation_in_percent>10
  16. AND dt.avg_page_space_used_in_percent<75
  17. ORDER BY avg_fragmentation_in_percent DESC

sqlserver2008 死锁解决方法及性能优化方法的更多相关文章

  1. DevExpress ChartControl大数据加载时有哪些性能优化方法

    DevExpress ChartControl加载大数据量数据时的性能优化方法有哪些? 关于图表优化,可从以下几个方面解决: 1.关闭不需要的可视化的元素(如LineMarkers, Labels等) ...

  2. Linux 下网络性能优化方法简析

    概述 对于网络的行为,可以简单划分为 3 条路径:1) 发送路径,2) 转发路径,3) 接收路径,而网络性能的优化则可基于这 3 条路径来考虑.由于数据包的转发一般是具备路由功能的设备所关注,在本文中 ...

  3. (摘录)26个ASP.NET常用性能优化方法

    数据库访问性能优化 数据库的连接和关闭 访问数据库资源需要创建连接.打开连接和关闭连接几个操作.这些过程需要多次与数据库交换信息以通过身份验证,比较耗费服务器资源. ASP.NET中提供了连接池(Co ...

  4. 26个ASP.NET常用性能优化方法

    数据库访问性能优化 数据库的连接和关闭 访问数据库资源需要创建连接.打开连接和关闭连接几个操作.这些过程需要多次与数据库交换信息以通过身份验证,比较耗费服务器资源. ASP.NET中提供了连接池(Co ...

  5. redmine在linux上的mysql性能优化方法与问题排查方案

    iredmine的linux服务器mysql性能优化方法与问题排查方案     问题定位:   客户端工具: 1. 浏览器inspect-tool的network timing工具分析   2. 浏览 ...

  6. .NET 性能优化方法总结==转

    .NET 性能优化方法总结 目录 目录 1. C#语言方面... 4 1.1 垃圾回收... 4 1.1.1 避免不必要的对象创建... 4 1.1.2 不要使用空析构函数 ★... 4 1.1.3 ...

  7. Linux网络性能优化方法简析

    Linux网络性能优化方法简析 2010-12-20 10:56 赵军 IBMDW 字号:T | T 性能问题永远是永恒的主题之一,而Linux在网络性能方面的优势则显而易见,这篇文章是对于Linux ...

  8. 5种kafka消费端性能优化方法

    摘要:带你了解基于FusionInsight HD&MRS的5种kafka消费端性能优化方法. 本文分享自华为云社区<FusionInsight HD&MRSkafka消费端性能 ...

  9. HBase性能优化方法总结(转)

    本文主要是从HBase应用程序设计与开发的角度,总结几种常用的性能优化方法.有关HBase系统配置级别的优化,这里涉及的不多,这部分可以参考:淘宝Ken Wu同学的博客. 1. 表的设计 1.1 Pr ...

随机推荐

  1. Devc++编译系统分配给int多少字节

    我看的是<C语言程序设计>..谭浩强的PDF版 里面只讲了VC和TC 的,没有Devc++的..(我的是5.10版) 还有这是什么意思? 经过查阅我进行了这样的测试: 得到了这样的结果: ...

  2. Python:树的遍历

    各种遍历顺序如下图所示: 树的最大深度  # class TreeNode(object): # def __init__(self, x): # self.val = x # self.left = ...

  3. kafka搭建笔记

    环境CentOS7.0,JDK1.8 一.下载安装 在kafka官网 http://kafka.apache.org/downloads下载到最新的kafka安装包 下载 2.0.0 release, ...

  4. BZOJ2178:圆的面积并——题解

    https://www.lydsy.com/JudgeOnline/problem.php?id=2178 给出N个圆,求其面积并. simpson,将圆劈成两半,假设上面的叫上壳,下面的叫下壳,对这 ...

  5. BZOJ4815 [CQOI2017]小Q的表格 【数论 + 分块】

    题目链接 BZOJ4815 题解 根据题中的式子,手玩一下发现和\(gcd\)很像 化一下式子: \[ \begin{aligned} bf(a,a + b) &= (a + b)f(a,b) ...

  6. 配置好solr搜索引擎服务器后java后台如何将商品信息导入索引库

    首先,在配置文件目录中添加solr 服务器的bean 配置文件 solr服务器的url可以写在配置文件中: url地址其实就是我们网页可以访问的solr地址: 然后我们写 service packag ...

  7. Python中的结构化数据分析利器-Pandas简介

    Pandas是python的一个数据分析包,最初由AQR Capital Management于2008年4月开发,并于2009年底开源出来,目前由专注于Python数据包开发的PyData开发tea ...

  8. bzoj 1113 [Poi2008]海报PLA 单调栈

    [Poi2008]海报PLA Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 1304  Solved: 896[Submit][Status][Dis ...

  9. iostat和iowait详细解说

    简单的说,sar -u看出来的cpu利用率iowait 不实用,iostat -x 中的 svctm   和util 参数 命令形式: iostat -x 1 每隔一秒输出下 其中的svctm参数代表 ...

  10. Moodle插件开发系列——XMLDB编辑器

    Moodle插件开发系列——XMLDB编辑器 位置:网站管理>开发> XML编辑器 l  XML编辑器是制作install.xml文件的工具,而install.xml是指定Moodle建立 ...