逻辑和物理读/写之间的区别

gac*_*epa 5 sql-server sql-server-2012

简而言之,我想了解数据库中物理和逻辑读/写之间的区别。什么时候(哪个阈值)我应该担心它们?是这个职位的准确描述?(即使在那种情况下,我仍然有点不清楚什么可以被认为是读取或写入)。

目前我正在做 2 级支持,我们的生产数据库所在的驱动器遇到了严重的性能问题:

在此处输入图片说明

我运行了Glenn Berry 的2 个诊断信息查询,以查看在总逻辑写入和平均 I/O 方面排名前 10 的存储过程,并得到以下结果:

在此处输入图片说明

我的任务是确定可能导致低空闲时间百分比的存储过程,以便我们的产品团队可以查看代码。

Jos*_*ell 9

简而言之,我想了解数据库中物理读/写和逻辑读/写之间的区别

关于逻辑读取和物理读取之间差异的非常简洁的解释可以在 Microsoft 诊断命令文档中SET STATISTICS IO 找到

  • 逻辑读取- 从数据缓存读取的页数。
  • 物理读取- 从磁盘读取的页数。

请注意,当它说“数据缓存”时,它指的是 RAM。

我从未听说过有人谈论逻辑写入,所以我无法与那个人交谈。如果这仅仅意味着写入,那么它就是在谈论插入、更新和删除。

关于这一点:

我的任务是识别可能导致空闲时间百分比较低的存储过程,以便我们的产品团队可以检查代码。

查看您问题中的图表,我确实看到了磁盘利用率高的时期(“空闲时间低”)。如果您可以确定在此期间正在运行哪些过程(例如,通过将 sp_whoisactive 记录到表中),那么您可以尝试调整这些特定查询(或在此站点上发布足够详细的问题以获得帮助)。

  • 可以使用 sys.dm_exec_query_stats 检查逻辑**写入** (2认同)