Subsonic&Linqtemplate:なぜここで読み取られるのですか?
質問
彼らがフォーラムを倒し、Stackoverflowを使用すると言ったとき、この情報を亜音の乗組員にどこで伝えるべきかわからないので、ここに行きます。
私はORMで最大のパフォーマンスを達成するのに苦労してきました。私は亜音波が大好きで、そのバルクインサート、更新、削除は、このコンテキストでエンティティフレームワークをofliterate、削除しますが、まっすぐ単純な読み取りの場合、EFは5倍のパフォーマンスを備えた水から亜音速を吹き飛ばします。
私は両方を剥ぎ取り、変更追跡、異物の特性、ナビゲーション特性、すべてをPocoに削除しました。
EFは約4.8で1mの列の単純な選択を実行し、亜音速Linqは5倍になります...
SQLプロファイラーを見ると、コールは少し異なります。エンティティフレームワーク: SELECT TOP (1000000)
[c].[Id] AS [Id],
[c].[ProjectIDL] AS [ProjectIDL],
[c].[DescriptorIDL] AS [DescriptorIDL],
[c].[FieldIDL] AS [FieldIDL],
[c].[Data] AS [Data],
[c].[OptionId] AS [OptionId]
FROM [dbo].[DescriptorFieldValues] AS [c]
サブソニック:SELECT TOP (1000000) [t0].[Data], [t0].[DescriptorIDL], [t0].[FieldIDL], [t0].[Id], [t0].[OptionId], [t0].[ProjectIDL]
FROM [dbo].[DescriptorFieldValues] AS t0
SQLプロファイラーはトレースを実行しており、ここでは大きな持続時間の違いを示しています。
両方のクエリの前に監査ログインを確認しましたが、それらは同じです...
SQL Management Studioで同じクエリを実行すると、両方のクエリに11秒かかります
Subsonic 3.04ソースを見ると、EFと一致するように調整する場所を把握することはできませんが、ここでは本当に大きな違いを生むクエリ構文があります。 ?
ご協力いただきありがとうございます!
正しい解決策はありません