2

単純な選択 Top (n) のクエリ プランを表示しようとしています。n (取得しているレコードの数) を変更するたびにクエリ プランが変更され、上位 10 を選択すると特にパフォーマンスの問題が発生し、10 未満または 10 を超えるクエリはスムーズに実行されます。

違いがある場合、クエリは Entity Framework (4.2) によって生成されます。

クエリは次のとおりです。

 exec sp_executesql N'SELECT TOP (10) 
[Project1].[Id] AS [Id], 
[Project1].[DateReceived] AS [DateReceived], 
[Project1].[Status] AS [Status], 
[Project1].[Subject] AS [Subject], 
[Project1].[Description] AS [Description], 
[Project1].[Path] AS [Path], 
[Project1].[C1] AS [C1], 
[Project1].[C2] AS [C2], 
[Project1].[C3] AS [C3],
.
.
.
.
.
.
.

WHERE [Project1].[row_number] > 0
ORDER BY [Project1].[DateReceived] DESC',N'@p__linq__0 int,@p__linq__1 int,@p__linq__2 datetime2(7),@p__linq__3 datetime2(7),@p__linq__4 nvarchar(4000),@p__linq__5 nvarchar(4000),@p__linq__6 nvarchar(4000),@p__linq__7 nvarchar(4000)',@p__linq__0=-1,@p__linq__1=-1,@p__linq__2='2013-03-15 00:00:00',@p__linq__3='2013-04-15 23:59:55',@p__linq__4=N'ALL',@p__linq__5=N'ALL',@p__linq__6=N'',@p__linq__7=N'%%'

TOP 10 が特にパフォーマンスの問題を引き起こしているのはなぜですか?

まだ画像を共有できません。リンクは次のとおりです。

http://imageshack.us/photo/my-images/407/top10a.png/

http://imageshack.us/photo/my-images/580/top20x.png/

4

1 に答える 1