最近、同僚はLINQから生成されたSQLがテーブル統計によって異なると述べました。LinqからSql-SQLへの生成
サポートされている場合は、ROW_NUMBERなどの新しい演算子を利用して、SQL Serverのバージョン(Sql 2000とSQl 2008)によって最適化されたSQLが生成されることがわかりました。
誰でもこれを確認したり、これを検証する方法はありますか?
最近、同僚はLINQから生成されたSQLがテーブル統計によって異なると述べました。LinqからSql-SQLへの生成
サポートされている場合は、ROW_NUMBERなどの新しい演算子を利用して、SQL Serverのバージョン(Sql 2000とSQl 2008)によって最適化されたSQLが生成されることがわかりました。
誰でもこれを確認したり、これを検証する方法はありますか?
私はそれを疑う。 SQL Serverによって生成されるクエリプランはさまざまですが、SQL構文が本当に疑問です。
"最近、LINQから生成されたSQLはテーブルの統計情報によって異なると私の同僚は述べています。 - それは真実ではない。 SQLを作成するには、DBへのラウンドトリップが必要です。
クエリプランは、クエリがSQL Serverに送信された後、統計を使用してSQL Serverによって構築されます。
LINQによって発行されるSQLは、ルールに基づいています。
実際、Linq to SQLは、ROW_NUMBERを使用できるストアドプロシージャを呼び出しますが、SkipやTakeなどの特定の操作に対してのみ使用します。
ここでは、マスターからのポストです:
http://weblogs.asp.net/scottgu/archive/2006/01/07/434787.aspx
と
http://weblogs.asp.net/scottgu/archive/2006/01/01/434314.aspx