oracle 11 g SQL文条件に数値型が存在するためクエリ効率が低下する
最近プロジェクトのために1つのメンテナンス機能を開発して、1つの臨時の機能ですが、目的は大量の歴史のデータを処理するので、1つの面白い現象を発見して、同じ意味の構造の2つのSQLの実行時間は百倍違います.
データベース:oralce 11 gR 2テストツール:sqldeveloper-17.2.0.188.1159
example: sql1 : sql2 :
条件フィールドのデータ型が数値型であり、クエリーフィールドに数値型が含まれていないため、この2つの実行効率は100倍も異なります.
解決方法:条件フィールドをクエリーフィールドに追加: 数値型のクエリーフィールドcol 6: に追加
データベース:oralce 11 gR 2テストツール:sqldeveloper-17.2.0.188.1159
example:
slect col1,col2 from table where col3 = ?
slect col1,col4 from table where col5 = ?
条件フィールドのデータ型が数値型であり、クエリーフィールドに数値型が含まれていないため、この2つの実行効率は100倍も異なります.
解決方法:
slect col1,col4,col5 from table where col5 = ?
slect col1,col4,col6 from table where col5 = ?