代码之家  ›  专栏  ›  技术社区  ›  elgrego

要运行的第一个SQL命令是什么来解决SQL Server性能问题?

  •  6
  • elgrego  · 技术社区  · 5 年前

    这个问题的目的是,当所有答案都被编译后,其他用户可以通过运行您选择的命令来隔离可能出现问题的位置而受益。 troubleshooting

    如果您推出并运行自己的自定义SQL脚本,
    那你会告诉别人什么吗

    • 目的 剧本是
    • 找出问题所在

    如果你能提供脚本的来源,请发布它。

    sp_lock
    

    我运行以确定是否有任何锁(目的)来返回SQLServer锁信息。由于结果集显示对象ID(所以不太容易被人理解),我通常会浏览结果,看看是否有异常多的锁。


    8 回复  |  直到 14 年前
        1
  •  2
  •   John Sansom    15 年前

    当一张图片值千言万语时,为什么要运行一个查询呢!

    我更喜欢经营免费的 Performance Dashboard Reports .

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

    有一点需要注意的是,我认为这些只在sql2005和更高版本中提供。

        2
  •  1
  •   brendan    15 年前
    sp_who
    

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

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

        3
  •  1
  •   Chris Shaffer    15 年前

    sp_who_3 -在一个不错的输出中提供了许多其他地方可用的信息。也有几个参数允许自定义输出。

        4
  •  1
  •   Einstein    15 年前

    一个自定义查询,它结合了您希望在sp_中使用DBCC INPUTBUFFER(spid)来获取按阻塞/阻塞图排序的每个spid的最后一个查询文本。

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

        5
  •  1
  •   mrdenny    15 年前

        6
  •  1
  •   Jesse C. Slicer    15 年前

    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;
    
        7
  •  1
  •   Russ Cam    15 年前

    DBCC OPENTRAN

    活动事务和最旧事务 分布式和非分布式 复制的事务(如果有), 在指定的数据库中。结果 活动事务或如果数据库 如果出现以下情况,则显示信息性消息: 没有活动事务。

    然后 sp_who2

        8
  •  0
  •   Amr Elgarhy    15 年前