1

どのクエリが高速になりますか

SELECT CASE WHEN EXISTS ( SELECT 1 FROM テーブル WHERE 条件 ) THEN 'Y' ELSE 'N' END FROM DUAL

また

SELECT 1 FROM テーブル WHERE 条件

どちらもfetchSizeを 1 に設定しています。

しかし、2 番目のクエリを使用するかどうか疑問に思っています。if ( rs.next() )を確認するだけで済みますが、最初のクエリでは、追加の条件rs.getString(1).equals("を確認する必要があります。 Y") . 同時に、sql に when exists を使用すると、どういうわけかクエリが高速になるのではないかと考えています

他の質問を確認しました データベース テーブル内のいくつかのレコードを確認する最速の方法は? set がデータベース set に存在するかどうかを確認する最速の方法、彼らは exists の使用について話します。では、exists を使用する必要があるかどうか、クエリを高速化するためにそれを使用する必要があるかどうか疑問に思っているのですが、クエリを高速化するにはどうすればよいでしょうか?

4

2 に答える 2

1

'no_data_found' または 'to_many_rows' を取得する可能性があるため、辞書を読み取ってエラー コードなどを取得するなど、ステートメント 'SELECT 1 FROM table WHERE condition' を使用すると、最初の方法の方が高速になります。

于 2012-08-23T18:20:05.807 に答える
0
SELECT 1 FROM table WHERE condition

結果セットが行を返さない場合は、条件が満たされていないことを意味し、それ以外の場合は条件が満たされたということです。

より良く、よりクリーンに、より短く、より速く。

于 2012-08-23T18:37:20.883 に答える