実際には簡単な質問ですが、私は経験が不足しており、データベース システムの内部最適化についての知識がありません (一般的には T-SQL ですが、私の特定のケースでは T-SQL です)。
整数データ フィールドを持つデータベースがあると仮定します (簡略化のため 1-3):
table Data (D1, D2, D3)
私は一致基準のコレクションを持っています:
D1 > 3 D2 < 100 D3 all
D1 >= 50 D2 all D3 > 50
and so on...
クエリを実行する単純な方法AND
は、基準のOR
すべての式とすべての基準式に対してです。しかし、明らかに最適化されたクエリは(編集を参照)D1 >= 50 and D2 < 100 and D3 > 50
質問は次のとおりです。データベース (私の場合は T-SQL) は単純なクエリを最適化できますか?
そうでない場合:誰かが私を正しい方向に向けることができます(その場合には、理解できないアルゴリズムが必要だと確信しています)。
編集:
明らかに最適化の前提が間違っていました:-D
D1 >= 50 D2 < 100 D3 all
D1 >= 50 D2 all D3 > 50
and so on...
D1 >= 50 and D2 < 100 or D1 >= 50 and D3 > 50
これは からまで最適化できます
D1 >= 50 and (D2 < 100 or D3 = 50
)
そして、どういうわけか、データベースはそれほどスマートであるべきだと思います(クエリがどれほど複雑になるかを考えると、これはデータベースの子供の遊びに違いありません)。
問題は次のとおりです。どのくらいの基準を処理できますか (X データ フィールドと Y 基準)。しかし、それは私が理解しなければならないことです。ここで日付を収集したら報告します(しばらく時間がかかる場合があります)。