【问题标题】:Database using excessive proportion of the server disk I/O数据库使用过多比例的服务器磁盘 I/O
【发布时间】:2018-05-23 09:29:06
【问题描述】:

我有一个客户端,其中一个数据库 (SQL Server 2008 R2) 使用了过多比例的服务器磁盘 I/O。他们观察到 300-1000MB/s 的读取一次持续超过 10 分钟,这影响了其他服务。

这确实超出了我的工作范围,我不知道如何解决这个问题。他们想尽量减少这种影响,并想知道任何建议。

如果有人能告诉我从哪里开始分析这种行为,我将不胜感激。

谢谢。

【问题讨论】:

  • 这可能最好在 dba.stackexchange.com 甚至超级用户上询问。但是,如果没有任何进一步的细节,这是完全无法回答的。
  • 对于任何堆栈交换站点来说都太宽泛了。看起来你需要一个 DBA。
  • 那台服务器上除了 SQL Server 之外还有其他东西在运行吗?你确定IO是SQL Server引起的吗?
  • 您好,除了 SQL Server 之外没有其他服务器在运行,是的,它是由 SQL Server 引起的。谢谢
  • 由 Adam Machanic 下载 sp_whoisactive,它应该会为您提供所需的信息。

标签: sql-server database-performance database-administration


【解决方案1】:

试试这个查询看看发生了什么。

SELECT 
    DB_NAME(qs.database_id) AS DBName
    ,qs.database_id
    ,qs.object_id
    ,OBJECT_NAME(qs.object_id,qs.database_id) AS ObjectName
    ,qs.cached_time
    ,qs.last_execution_time
    ,qs.plan_handle
    ,qs.execution_count
    ,total_worker_time
    ,last_worker_time
    ,min_worker_time
    ,max_worker_time
    ,total_physical_reads
    ,last_physical_reads
    ,min_physical_reads
    ,max_physical_reads
    ,total_logical_writes
    ,last_logical_writes
    ,min_logical_writes
    ,max_logical_writes
    ,total_logical_reads
    ,last_logical_reads
    ,min_logical_reads
    ,max_logical_reads
    ,total_elapsed_time
    ,last_elapsed_time
    ,min_elapsed_time
    ,max_elapsed_time
FROM 
    sys.dm_exec_procedure_stats qs
ORDER BY
    total_physical_reads DESC

【讨论】:

  • parceely。谢谢。我会试试的。
猜你喜欢
  • 1970-01-01
  • 2015-05-22
  • 2019-12-07
  • 2014-05-20
  • 1970-01-01
  • 2012-08-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多