SQL Server 2008 CPU 使用率高

2024-01-02

我们有一个 Windows 2008 R2 Server,其中有一个 SQL Server 2008。该服务器有多个 .net 站点,其中包含 SQL Server 数据库。

目前,我们的平均 CPU 使用率为 95%,其中大部分是由 SQL Server 造成的。

我想确定哪个网站对此负责,以便我们可以对其进行优化或将其移动到另一台服务器。但我没有找到任何直接的方式来看待这个问题。

我一直在寻找是否可以找到:

  • 获得 CPU 密集型查询最多的数据库
  • 负责CPU密集型查询的进程

让事情变得复杂的一件事是我们有多个站点和使用相同数据库的“crons”。因此,一旦我确定了数据库,我还需要获得一些关于哪个站点/cron 负责它的提示。

我真的很感激任何有关此问题的帮助,因为这个问题使我们的网站变得非常慢......

Thanks


您可以使用 DMV 识别成本高昂的查询(以及与它们关联的数据库),例如来自这篇 TechNet 文章 http://msdn.microsoft.com/en-us/magazine/cc135978.aspx:

SELECT TOP 50
 [Average CPU used] = total_worker_time / qs.execution_count,
 [Total CPU used] = total_worker_time,
 [Execution count] = qs.execution_count,
 [Individual Query] = SUBSTRING (qt.text,qs.statement_start_offset/2, 
         (CASE WHEN qs.statement_end_offset = -1 
            THEN LEN(CONVERT(NVARCHAR(MAX), qt.text)) * 2 
          ELSE qs.statement_end_offset END - 
qs.statement_start_offset)/2)
,[Parent Query] = qt.text
,DatabaseName = DB_NAME(qt.dbid)
FROM sys.dm_exec_query_stats qs
CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) as qt
ORDER BY [Average CPU used] DESC;

这些将告诉您有关重型查询的信息,但不幸的是,它不会查明可能具有大量小型查询的数据库,这些小型查询单独使用少量 CPU,但总体使用大量 CPU。您可以使用此查询来做到这一点来自 Glenn Allan Berry 的 DMV 查询 http://sqlserverperformance.wordpress.com/tag/dmv-queries/:

WITH DB_CPU_Stats
AS
(SELECT DatabaseID, DB_Name(DatabaseID) AS [DatabaseName], 
  SUM(total_worker_time) AS [CPU_Time_Ms]
 FROM sys.dm_exec_query_stats AS qs
 CROSS APPLY (SELECT CONVERT(int, value) AS [DatabaseID] 
              FROM sys.dm_exec_plan_attributes(qs.plan_handle)
              WHERE attribute = N'dbid') AS F_DB
 GROUP BY DatabaseID)
SELECT ROW_NUMBER() OVER(ORDER BY [CPU_Time_Ms] DESC) AS [row_num],
       DatabaseName, [CPU_Time_Ms], 
       CAST([CPU_Time_Ms] * 1.0 / SUM([CPU_Time_Ms]) 
       OVER() * 100.0 AS DECIMAL(5, 2)) AS [CPUPercent]
FROM DB_CPU_Stats
WHERE DatabaseID > 4 -- system databases
AND DatabaseID <> 32767 -- ResourceDB
ORDER BY row_num OPTION (RECOMPILE);

这些查询都无法识别运行它们的应用程序,并且使用的 DMV 不会存储该信息(您必须捕获实际的查询并记下 sys.dm_exec_sessions 中的应用程序名称,或查看跟踪)。

当然,您可以使用市场上的各种第 3 方性能工具自动执行此工作(免责声明:我为其中之一的 SQL Sentry 工作,该工具生产绩效顾问 http://www.sqlsentry.net/performance-advisor/sql-server-performance.asp,它执行上述所有操作,包括跟踪高成本查询并维护有关它们在哪个数据库中运行以及哪个应用程序调用它们的信息)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SQL Server 2008 CPU 使用率高 的相关文章

  • 适用于 SQL Server 的 Microsoft ODBC 驱动程序 13:用户“sa”登录失败

    我正在安装 Informatica 的 MDM MDM 10 2 Jboss 6 4 EAP SQL Server 11 Windows Server 2008 R2 在创建模式 sip ant bat create bpm 期间 我收到此
  • 从 JavaScript 数组中获取对象值的最大值和最小值

    从 JavaScript 对象数组中获取最大值和最小值的最佳方法是什么 Given var a x 1 y 0 x 1 y 10 x 12 y 20 x 61 y 10 var minX Infinity maxX Infinity for
  • isinstance(foo,types.GeneratorType)还是inspect.isgenerator(foo)?

    Python中似乎有两种方法来测试一个对象是否是生成器 import types isinstance foo types GeneratorType or import inspect inspect isgenerator foo 本着
  • 时间序列数据的键值存储?

    我一直在使用 SQL Server 存储数十万个对象的历史时间序列数据 每天观察大约 100 次 我发现查询 给我时间 t1 和时间 t2 之间对象 XYZ 的所有值 太慢 对于我的需要 慢超过一秒 我按时间戳和对象 ID 建立索引 我考虑
  • Elasticsearch 聚合过滤器

    因为我在谷歌上找不到任何东西 是否可以在elasticsearch中过滤聚合 我正在考虑这样的事情 获取 SOME object X gt 100 的所有对象 提前致谢 编辑 样本数据 我有以下文档结构 docKey 1 value 2 d
  • 通过 JDBC 将“daterange”字段值插入 PostgreSQL 表

    我在 PostgreSQL 9 3 有一个表日期范围 http www postgresql org docs 9 3 static rangetypes html字段类型 我可以像使用 JDBC 的字符串一样选择此字段 但无法将其插入表中
  • PostgreSQL 中字符串列类型的索引数组

    是否可以在类型为的列上创建索引文本数组 尝试使用GIN索引 但查询似乎没有使用这些索引 Example CREATE TABLE users name VARCHAR 100 groups TEXT Query SELECT name FR
  • 恢复 SQL Server 数据库 - 主密钥未打开

    我必须制作远程 SQL Server 数据库的本地副本 我通过使用 Management Studio 中的 任务 gt 备份 来完成此操作 然后 我在本地恢复了备份 该备份似乎包含了所有内容 表 用户 对称密钥和证书 当我尝试执行需要打开
  • 从视频创建缩略图 - 提高速度性能 - AVAsset - iPhone [重复]

    这个问题在这里已经有答案了 我正在使用基于以下线程中的代码的代码来生成视频缩略图 从 iPhone SDK 中的视频 URL 或数据获取缩略图 https stackoverflow com questions 1347562 gettin
  • 根据表sql中的行替换字符串中的字符

    我需要用一些映射的字符替换字符串中的字符列表 我有一个表 dbo CharacterMappings 有 2 列 CharacterToFilter 和 ReplacementCharacter 假设这个表中有3条记录 Filter Rep
  • .NET 中 UniqueQueue 和 UniqueReplacementQueue 集合最有效的实现

    考虑到入队和出队操作的速度同样重要 NET 中 UniqueQueue 和 UniqueReplacementQueue 集合最有效 就速度而言 的实现是什么 UniqueQueue是一个不可能出现重复的队列 因此 如果我将一个元素推送到队
  • 有谁知道一种更快的方法来执行 String.Split() 吗?

    我正在读取 CSV 文件的每一行 并且需要获取每一列中的各个值 所以现在我只是使用 values line Split delimiter where line是保存由分隔符分隔的值的字符串 衡量我的表现ReadNextRow我注意到它花费
  • fetchsize和batchsize对Spark的影响

    我想通过以下方式控制 RDB 的读写速度Spark直接 但标题已经透露的相关参数似乎不起作用 我可以得出这样的结论吗fetchsize and batchsize我的测试方法不起作用 或者它们确实会影响阅读和写作方面 因为测量结果基于规模是
  • 对多个数据库执行 SQL 查询

    我知道我的帖子与该论坛中的其他帖子的标题非常相似 但我真的找不到我需要的答案 这是我的问题 我的 Windows Server 上运行着 SQL Server 在我的 SQL Server 中 我有大约 30 个数据库 它们都具有相同的表和
  • 将第三个表链接到多对多关联中的桥接表

    设计这个数据库的正确方法是什么 这是我设置表格的方式 我在名为 教师 的表和名为 仪器 的表之间存在多对多关系 然后我有一个连接两者的桥接表 我想将另一个表与 BRIDGE 表关联起来 意思是乐器 老师的组合 该表有 3 行 指定老师可以教
  • 找到对应的未经V8优化的JS代码源

    我尝试优化 node js 应用程序的性能 因此我正在分析 V8 的 JIT 编译器的行为 当通过运行应用程序时node trace deopt trace opt code comments print optcode 输出包含许多重复出
  • jQuery mousemove 性能 - 节流事件?

    我们面临着与 mousemove 连接的 jQuery 事件传播性能问题 我们有一个屏幕填充画布 需要跟踪用户是否在其上拖动鼠标 因此我们在该对象上添加了一个鼠标移动侦听器 如下所示 ourCanvas on mousemove funct
  • 无法在 Eclipse IDE 中使用 java 建立与 SQL Server 2008 的数据库连接

    我正在尝试在 Eclipse IDE 中使用 Java 代码连接到 HP Operations Manager 数据库 我能够通过 Microsoft SQL Server Management Studio 2008 成功连接 但通过代码
  • 基于代理的模拟:性能问题:Python vs NetLogo & Repast

    我正在 Python 3 中复制一小段 Sugarscape 代理模拟模型 我发现我的代码的性能比 NetLogo 慢约 3 倍 这可能是我的代码的问题 还是Python的固有限制 显然 这只是代码的一个片段 但 Python 却花费了三分
  • Google App Engine 如何预编译 Java?

    App Engine 对应用程序的 Java 字节码使用 预编译 过程 以增强应用程序在 Java 运行时环境中的性能 预编译代码的功能与原始字节码相同 有没有详细的信息这是做什么的 我在一个中找到了这个谷歌群组消息 http groups

随机推荐

  • Django 1.3 日志记录:未记录 500 个错误

    我正在努力让 django request 记录器按照广告宣传的方式工作 500 个错误似乎不会传播到附加到它的处理程序 在每个新项目的默认日志记录配置中 注释表示 此配置执行的日志记录是针对每个 HTTP 500 错误向站点管理员发送电子
  • phpDoc 表示法指定返回类型与参数类型相同

    想象一下以下假设的类结构 在所有 PHPdoc 提示都正确设置的情况下 这并不是一个非常罕见的场景 class BaseFilter base methods class TextFilter extends BaseFilter publ
  • 如何使用git将本地存储库复制到远程服务器?

    我正在尝试使用 git 在远程服务器中部署本地代码 这就是我所做的local文件夹我的网站 git init git add git commit m Initial commit 然后 在我的网络服务器 mkdir public html
  • jQuery 选择具有特定标题的表格单元格

    我有一个带有 标题 的表 该表使用常规 tr 标签 不是 th 我需要找到标题 Col2 然后为 Col2 下的每个单元格添加一个锚点 我可以 td contains Col2 查找标题 但数据行也可能有 Col2 我如何仅搜索第一行 然后
  • 将 robomongo 连接到 mongoDB docker 容器

    我正在运行一个NodeJS应用程序与docker 撰写 https docs docker com compose 一切正常 我可以通过连接到容器内的 Mongo 来查看所有数据 但是当我连接到机器人蒙戈 https robomongo o
  • 在 `Thread.setDefaultUncaughtExceptionHandler` 中显示一个对话框

    当我的 Android 应用程序抛出异常时 我想显示一个自定义对话框来告诉用户发生了错误 所以我使用Thread setDefaultUncaughtExceptionHandler设置全局异常处理程序 public class MyApp
  • 元素固定到视口但位于容器内

    我正在尝试建立一个网站 其侧面板位于右侧 主要内容位于左侧 主要内容已经存在并且相当复杂 侧面板是新添加的 并不总是可见 主要内容的 响应能力 应该根据侧面板是否处于活动状态而表现不同 例如 当没有侧面板时 主要内容需要从 3 列布局切换到
  • 服务器上的 Google App 脚本请求验证

    我正在开发一个add on对于 Google 文档 我想做POST request到我的网络服务器add on 我已经这样做了 但是我应该如何在服务器端验证请求是否来自我的add on仅有的 有没有csrf就像机制中Google App S
  • Rplotly版本4.5.2散点图图例气泡大小设置

    我在 R 中使用plotly 4 5 2 我创建了一个散点图 其大小取决于变量 问题是这些大小也反映在图例中 这使得它们难以阅读 我希望我的图表保持不变 唯一的例外是图例中气泡的大小 这些气泡可以设置为全部相同大小 也可以缩放为较小的大小
  • 在 VB.NET 中将文件上传到 Google 驱动器 - 搜索工作代码

    我想使用 vb net 将 txt 文件上传到我的谷歌驱动器 我搜索了大约 2 个小时 发现了这个使用 VB NET Form 上传和下载到 Google Drive https stackoverflow com questions 15
  • R:对所有变量重复线性回归并将结果保存在新的数据框中

    我有一个名为 dat 的数据框 其中包含 10 个数值变量 var1 var2 var3 var4 var5 var 10 每个变量都有多个观察结果 dat var1 var2 var3 var4 var5 var6 var7 var8 v
  • 如何将实时聊天消息存储到数据库中?

    我在用mysqldb目前 对于我的数据库 我需要集成实时消息传递功能 这chat demo龙卷风提供does not实现一个数据库 而blog does 该消息服务将来也将兼作电子邮件 就像 Facebook 消息服务的工作原理一样 聊天平
  • GMOCK - 当返回类型为 void 时如何修改方法参数

    我有一个类 它接受指向另一个类的指针 并有一个方法 read class B public void read char str class A public A B bobj b bobj B b void read char str 我
  • t-sql获取2个日期之间的所有日期[重复]

    这个问题在这里已经有答案了 可能的重复 获取日期范围内的日期 https stackoverflow com questions 271595 getting dates between a range of dates 假设我有 2 个日
  • 如何检查变量是数组还是对象?

    为了反序列化 json 对象 我必须定义一个父类 其中包含子类的一个对象或对象数组 如果检索到对象 则它必须是一个对象 如果从 json 检索数组 则它必须是对象数组 JSON 数组对象 y x data 28 data 56 data 8
  • C++ 十六进制字符串到无符号整数[重复]

    这个问题在这里已经有答案了 可能的重复 C 将十六进制字符串转换为有符号整数 https stackoverflow com questions 1070497 c convert hex string to signed integer
  • IE 浏览器缓存和 jQuery 表单插件

    就像我之前的许多迷失的灵魂一样 我在 Ajax 表单提交和 IE 浏览器缓存的蛇坑中挣扎 我正在尝试使用 jQuery 表单插件编写一个简单的脚本来 Ajaxify Wordpress 评论 它在 Firefox Chrome Safari
  • 如何使用php从目录中删除文件

    从标题中您可以看到我正在寻找一种从不同目录中删除文件的方法 我在这个主题上能找到的就是 unlink 但是从我在文档中读到的内容以及测试该函数来看 它会从您放入的代码中删除文件名 让我觉得这与关闭文件非常相似 我想做的实际上是使用代码删除文
  • 在传递给非托管代码之前固定可更新结构?

    我使用一些旧的 API 需要将结构指针传递给异步运行的非托管代码 换句话说 在我将结构体指针传递给非托管代码之后 非托管代码复制该指针并立即返回 非托管代码可以在后台的另一个线程中访问该结构 我无法控制在另一个线程或线程本身中运行的非托管代
  • SQL Server 2008 CPU 使用率高

    我们有一个 Windows 2008 R2 Server 其中有一个 SQL Server 2008 该服务器有多个 net 站点 其中包含 SQL Server 数据库 目前 我们的平均 CPU 使用率为 95 其中大部分是由 SQL S