SQL Server:TempDB写入次数很多

时间:2015-02-27 09:21:16

标签: sql-server performance tempdb

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

到目前为止一切正常。

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

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

I/O performance chart

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

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

1 个答案:

答案 0 :(得分:1)

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