-1

varchar2 (2000 バイト) の列があります。これは既存の列であり、多くの場所で使用されています。問題は、この列と比較しようとすると、クエリの実行に 30 ~ 40 秒かかることです。クエリは以下のように簡単です-

select response_id from t_response where desc_response = to_char(1000);

desc_responseそのコラムです。

現在、このテーブルにはインデックスが 1 つしかなく、それが response_id 列にあることがわかりました。

4

1 に答える 1

2

「現在、このテーブルにはインデックスが 1 つしかなく、それが response_id 列にあります。」

したがって、クエリはテーブル全体のスキャンを実行し、テーブル内のすべてのレコードを読み取って の値を調べますdesc_response

テーブルの行数を言い忘れましたが、これは単純な物理学です。行数が多いテーブルは、検索に時間がかかります。したがって、30 ~ 40 秒に基づいて、これは大きなテーブルだと思います。

インデックスを構築するdesc_responseと、実行時間が短縮されます。どのくらいで、あらゆる種類の要因に依存します。

于 2014-05-28T07:02:26.733 に答える