そのため、Visual Studio 2010でクエリを作成していました(つまり、サーバーエクスプローラーを開き、サーバーを右クリックして[新しいクエリ]を選択しました)。クエリには条件が含まれています
A AND B AND C AND D AND E AND F AND (G OR H)
これは連言標準形(CNF)です。クエリ(MSSQL Server 2008に接続されている)を実行すると、テキストが次のように変更されました。
A AND B AND C AND D AND E AND F AND G OR
A AND B AND C AND D AND E AND F AND H
これは選言標準形(DNF)です。
私がオンラインで見つけた小さなことから、DNFはSQLが接続詞を別々に実行し、最後にそれらを結合することを可能にしているようです。
しかし、このようなものでは、非常に多くの条件が繰り返されるため、DNFは実際にCNFよりも優れていますか?そうでない場合、オプティマイザーに条件をそのまま取得させるにはどうすればよいですか?もしそうなら、それはより短くてきれいなので、アプリケーションコードでCNF形式でクエリを書くべきですか、それともオプティマイザーの時間を節約するためにDNF形式で書くべきですか?