繁体   English   中英

您要运行哪些FIRST SQL命令来解决SQL Server性能问题?

[英]What is your FIRST SQL command to run to troubleshoot SQL Server performance?

当SQL Server(2000/2005/2008)运行缓慢时,您运行的第一个命令是什么,以查看问题所在?

这个问题的目的是,当编译所有答案时,其他用户可以通过运行您选择的命令来分离问题所在的位置。 还有其他有关SQL Server性能的troubleshooting帖子,但它们仅对特定情况有用。

如果您推出并运行自己的自定义SQL脚本,
那你会让别人知道吗

  • 脚本的目的
  • 它返回(返回值)
  • 要找出问题所在

如果您可以提供脚本来源,请发布。

就我而言,

sp_lock

我试着弄清楚是否有任何锁(目的)来返回SQL服务器锁信息。 由于结果集显示对象ID(因此不是人类可读的),我通常会浏览结果以查看是否存在异常多的锁定。


随意更新标签

为什么在图片胜过千言万语时运行单个查询!

我更喜欢运行可自由发布的Performance Dashboard Reports

它们可在几秒钟内提供服务器性能的完整快照概览。 然后,您可以通过单击仪表板上的apporpriate区域选择要调查的特定区域(锁定,当前正在运行的查询,等待请求等)。

http://www.microsoft.com/downloads/details.aspx?FamilyId=1d3a4a0d-7e0c-4730-8204-e419218c1efc&displaylang=en

一个小小的警告,我相信这些仅在SQL 2005及更高版本中可用。

sp_who

http://msdn.microsoft.com/en-us/library/aa260384(SQL.80).aspx

我想看看“谁”,什么机器/用户正在运行什么查询,时间长度等等。我也可以轻松扫描块。

如果某些东西阻塞了一堆其他事务,我可以使用spid在必要时发出kill命令。

sp_who_3 - 提供了很多其他地方可用的信息,但是输出效果很好。 还有几个参数允许自定义输出。

一个自定义查询,它将您在sp_who中所期望的内容与DBCC INPUTBUFFER(spid)结合起来,以获取阻塞/阻塞图所订购的每个spid上的最后一个查询文本。

过程数据可通过master..sysprocesses获得。

sp_who3返回standand sp_who2输出,直到你指定一个特定的spid,然后给出6个关于该spid的不同记录集,包括锁,块,它当前正在做什么,它正在运行的T / SQL,以及当前正在运行的T / SQL中的语句。

Ian Stirk有一个很好的脚本,我喜欢在本文中详细介绍: http//msdn2.microsoft.com/en-ca/magazine/cc135978.aspx

特别是,我喜欢丢失的索引一:

SELECT 
    DatabaseName = DB_NAME(database_id)
    ,[Number Indexes Missing] = count(*) 
FROM sys.dm_db_missing_index_details
GROUP BY DB_NAME(database_id)
ORDER BY 2 DESC;

DBCC OPENTRAN查看最早的活动事务是什么

显示有关指定数据库中最早的活动事务和最早的分布式和非分布式复制事务(如果有)的信息。 仅当存在活动事务或数据库包含复制信息时,才会显示结果。 如果没有活动事务,则显示信息性消息。

然后是sp_who2

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM