0

私はこのように終わるクエリを持っています(私は Java からこれをやっています):

WHERE
    c.area_code = ?
AND
    c.cons_no = ?
AND
    c.cat_code = ?

これもこの方法で実行できます(ユーザーから以下の形式を取得します

WHERE
     c.area_code||'-'||c.cons_no||'-'||c.cat_code=?

データベースへのフォーマットの引き渡しがパフォーマンスに影響を与える場所をいくつか読みました。そのため、最初のクエリを使用しました。これを行う最良の方法はどれですか?

4

2 に答える 2

5

それはただ奇妙です。

2 番目のアプローチでは、完全なテーブル スキャンが強制され、テーブルのすべての行が、一致文字列に対してテストするための連結形式に構築されます。これらの値のいずれかが NULL の場合も壊れます。また、テスト対象の 3 つのフィールドに存在する可能性のあるインデックスを利用できなくなります。

最初の方法の方が優れています。

于 2013-07-10T03:40:41.710 に答える