Skip to Main Content

Japanese

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

マテビューをリフレッシュ後インデックス無効?

883738Sep 12 2011 — edited Sep 13 2011
Oracle 10g

お世話になります。
マテリアライズド・ビューを使用し、Oracle Textでの全文検索を行いたく
下記手順を実施しました。
1.マテビュー作成
   create materialized view MV_AAA refresh complete on demmand as
select * from tblA union all select * from tblB
2.インデックス等設定
   begin
ctx_ddl.set_attribute('multi_item','columns','column1,column2,column3);
ctx_ddl.create_preference('japanese_lexere','JAPANESE_LEXER');
ctx_ddl.create_preference('wordlist','BASIC_WORDLIST');
ctx_ddl.set_attribute('wordlist','SUBSTRING_INDEX','TRUE');
end;
create index MV_AAA_index on MV_AAA(column1) indextype is ctxsys.context
parameters('datastore multi_item lexeer japanese_lexer wordlist wordlist');

3.ここでselectを実行すると正常に抽出されます。

select * from MV_AAA where contanins(column1,'AAA')> 0

4.次にリフレッシュを実行
bagin
dbms_mview.refresh('MV_AAA','c');
end;

5.ここで再度selectを実行すると、該当データ無となります。

select * from MV_AAA where contanins(column1,'AAA')> 0

6.インデックスを削除し再作成
drop index MV_AAA_index;
create index MV_AAA_index on MV_AAA(column1) indextype is ctxsys.context
parameters('datastore multi_item lexeer japanese_lexer wordlist wordlist');

7.再度selectを実行すると、正常にデータが抽出されます。

select * from MV_AAA where contanins(column1,'AAA')> 0

4のリフレッシュをすることで、抽出データが0となる(エラーは発生せず)のは
なぜでしょうか?
リフレッシュする度、インデックスを再作成すべきなのでしょうか?
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Oct 11 2011
Added on Sep 12 2011
1 comment
2,544 views