0

いくつかのクエリに関してパフォーマンスの問題があります。スロー クエリのリストについて Sql Serverにクエリを実行すると、Linq-To-Entities によって生成されたクエリがいくつか見つかります。

例えば:

SELECT 
[Project12].[OrderId] AS [OrderId], 
[Project12].[OrderDate] AS [OrderDate], 
[Project12].[OrderStatusId] AS [OrderStatusId], 
[Project12].[Name] AS [Name], 
[Project12].[C1] AS [C1], 
[Project12].[ClientId] AS [ClientId], 
[Project12].[ClientCode] AS [ClientCode], 
[Project12].[TwoLetterCode] AS [TwoLetterCode], 
[Project12].[Identifier] AS [Identifier], 
[Project12].[StartDate] AS [StartDate], 
[Project12].[Code] AS [Code], 
[Project12].[C2] AS [C2], 
[Project12].[C3] AS [C3], 
[Project12].[C4] AS [C4], 
[Project12].[C5] AS [C5]
FROM ( SELECT 
    [Project11].[OrderId] AS [OrderId], 
    [Project11].[ClientId] AS [ClientId], 
    [Project11].[StartDate] AS [StartDate], 
    [Project11].[Identifier] AS [Identifier], 

....

異なるフィールドを使用して、それらのフィールドを照会している場所を見つけようとしましたが、場所が見つかりません。

SQL を生成した Linq クエリを見つけるには、どのような手法を使用できますか?

4

2 に答える 2

0

ThinqLinqでLINQパフォーマンスの問題を切り分けるのに役立つと思われるいくつかの手法を投稿しました。

于 2013-02-15T18:17:13.580 に答える
0

Linq to SQL には DataContext.Log メソッドを使用できると思います (これは Linq to Entities でも​​機能すると思います): http://msdn.microsoft.com/en-us/library/system.data.linq. datacontext.log.aspx

これを StreamWriter に接続すると、Linq が何をしているかを確認できます。次に、このログを使用して、SQL プロファイラー ログから取得したものと比較し、2 つを正確に比較するために何が行われているかを確認できます。

私はまた、ストレート SQL で物事をデバッグする際に LinqPad を使用することを好みます。エンティティ フレームワークの DLL を直接インポートしてクエリを実行することもできます。

http://www.linqpad.net/

于 2013-02-15T16:50:15.937 に答える