2011-12-27 21 views
1

クエリ1:Select * from table where fieldname = 'abc'応答が遅いSYBASEでのUnicode(非ASCII)文字を照会

クエリ2:Select * from table where fieldname = 'XY�'

  • マイクエリ5000mS
  • の中150msの
  • マイクエリ2を実行中に1つの実行

両方ともゼロ結果を返します(abcXY�はデータベースに存在しません)。

私は、クエリ2を実行して、私のクエリ1、クエリを再実行したら、それは

マイフィールド名がインデックス化された(非クラスタ化インデックス(代わりに、以前の150ミリ秒の2000ミリ秒程度)と同じセッションで実行された場合、より長い時間をかけて1つの開始)。

私は両方のためのショーの計画を実行しようとしましたAdaptive Server Enterpriseの/ 12.5.4

を使用しています。両方とも同じ結果を示します。

私の心配:非ASCII文字を含むクエリは、より多くの時間を取る必要がありますなぜ

  1. ?インデックスとは何か?
  2. 実行中のクエリ2は、クエリ1の応答時間に影響しません。これを修正する方法はありますか?

私は私の問題に問題を発見したおかげ

+0

インデックスはどのように見えますか?そして、 'どのフィールド名= '何でも'実行するテーブルからフィールド名を選択するのですか? – gbn

答えて

1

。 TIBCO EMSはUnicode文字(ASCII以外)にいくつかの変更を加え、sybaseのクエリ・プランを最適化されていないクエリ・プランに変更します。 Javaのクエリプランでプリペアドステートメントを使用すると、キャッシュされます。その結果、今後のすべてのクエリが遅くなります。

関連する問題