【问题标题】:SQL Server : TempDB high number of writesSQL Server:TempDB 大量写入
【发布时间】:2015-02-27 09:21:16
【问题描述】:

我们在 Windows 2012 R2 服务器(32 GB RAM)上使用 SQL Server 2008 Web Edition 来存储基于 ASP.NET 的 Web 应用程序的数据。有几个带有新闻表和不同视图的数据库,我们使用不同的连接和过滤条件定期查询它们(SqlDataReader,Linq-to-SQL)。查询本身更长且特定于域,因此我跳过一个示例。

到目前为止一切正常。

现在我们必须更改这样的查询并使用简单的OR 条件扩展它。 结果是TempDB 中的读写次数急剧增加。戏剧性地意味着每分钟超过 100 MB 的 1000 次写入,这导致当前的总 tempdb 文件大小为 1.5 GB。

如果我们从原始查询中删除 OR 过滤器语句,TempDB 文件 I/O 会立即正常化。

但是,我们不知道TempDB 中发生了什么。我们多次运行查询分析器并比较结果,但它的索引优化建议仅与其他数据库统计信息相关,没有任何效果。

你会如何缩小这个问题的范围?过去有没有其他人经历过这种行为?是否可能是新闻查询本身的问题,或者我们是否可能只需要更改一些TempDB 数据库属性以提高其 I/O 性能,例如自动增长?

【问题讨论】:

  • 使用和不使用 OR 扩展的执行计划有何不同?

标签: sql-server performance tempdb


【解决方案1】:

首先分析您的执行计划并使用统计信息运行您的查询(使用分析器)。问题不在于 de tempdb,而在于您的查询。然后你会看到你在哪里选择了许多临时保存在 de tempdb 中的行。然后您可以更改查询或添加您缺少的索引。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-08-02
    • 1970-01-01
    • 2021-02-01
    • 2012-01-17
    • 2013-10-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多