CLOBフィールドタイプにORACLE LONG秀(テーブルインデックスの失敗)

私はあなたが、テーブル内のフィールドの変化量は、その後、クエリ全体がビジネス上の問題を引き起こし、特に遅くなり、であるこのピットを発生していないかわかりません。そして、発生したテーブルのフィールドを変更することが判明し、その理由を見つけるために行きます。

テーブルTパージをドロップします。
テーブルT(object_idの数、長OBJECT_NAME)を作成します。
インデックスtのidx_object_id(OBJECT_ID)を作成します。
Tへの挿入ROWNUM <= 100000によりデュアル接続から( 'A'、30)dbms_random.string、TRUNC(DBMS_RANDOM.VALUE(0,100000)、0)を選択します。
コミット;

Tからのカウント(*)を選択します。

T ROWNUM <5から選択*;

 

 

 

インデックスのステータスを表示します。

t.status、INDEX_NAMEは 'IDX_OBJECT_IDを' = USER_INDEXES tからt.index_nameを選択します。

 

 今変更することが、長いタイプCLOBの他のタイプに変更(他のタイプのヌル値としてこれを必要とします)

 ALTER TABLEトン修正OBJECT_NAME CLOB。

インデックスのステータスを表示します。

 

 テーブル全体のインデックスが使用不能になったそれはより頻繁にテーブルの製造に使用されている場合、インデックスが利用できない、それは(インデックステーブルの移動が失敗した場合)HANGが住んでビジネスをリードし、問題になりやすいです。

ソリューション:

インデックスは再構築、または削除後にインデックスを再構築します。

 

 ALTER INDEXは、再構築idx_object_id。

t.status、INDEX_NAMEは 'IDX_OBJECT_IDを' = USER_INDEXES tからt.index_nameを選択します。

また、ロングタイプは直接VARCHAR2に変換することはできません!

おすすめ

転載: www.cnblogs.com/hmwh/p/12238252.html