Sql server 2008 在我的SQL查询中选择超过5列会减慢查询速度
我正在SQLServerManagementStudio中运行一个简单的SQL查询(我实际上也在我的应用程序中执行该查询),我发现这很有趣。我希望有人能解释一下它的毛病 数据库表有25列,5列被索引,一个主键列存在。Sql server 2008 在我的SQL查询中选择超过5列会减慢查询速度,sql-server-2008,tsql,Sql Server 2008,Tsql,我正在SQLServerManagementStudio中运行一个简单的SQL查询(我实际上也在我的应用程序中执行该查询),我发现这很有趣。我希望有人能解释一下它的毛病 数据库表有25列,5列被索引,一个主键列存在。 除了一列之外,所有其他列的类型都是varchar长度。每个慢速/快速查询的执行计划是什么?不幸的是,我没有足够的权限查看此特定数据库的执行计划,这是一个prod数据库。但是我查看了非prod上的执行计划(它们都有相同的模式)。它说select的成本为0%,它在做聚集索引搜索。这两个
除了一列之外,所有其他列的类型都是
varchar
长度。每个慢速/快速查询的执行计划是什么?不幸的是,我没有足够的权限查看此特定数据库的执行计划,这是一个prod数据库。但是我查看了非prod上的执行计划(它们都有相同的模式)。它说select的成本为0%,它在做聚集索引搜索。这两个查询都是相同的。(这两个查询在非prod DB中执行得都很快)。如果模式相同,我会疯狂地猜测索引碎片、不同的统计数据或不同版本的SQL Server。我最终在Microsoft论坛上找到了解决方案(见上一篇文章的第二篇)。在web服务器(以及我的windows 7计算机)上,我必须禁用“接收窗口自动调整”。现在数据库连接速度更快了,查询运行速度也更快了(执行时间以毫秒为单位)。谢谢大家的回答。Ravi C,你应该发表你的评论,作为你问题的答案,然后接受它作为正确答案。
Select PKColumn, column1, column2, column3, column4, column5
from database_table
where PKColumn = value