その11>ペンネーム:クリープ今回も前回に引き続きマテビューに関する読者の質問についてお応えしたいと思います。Production1)マテビューでNEVER句にした時、クエリーリライトされるのか?まずは、NEVER句について説明します。NEVER句をマテビュー作成時に指定することで、dbms_mview.refreshを実行してもリフレッシュされなくなります。実際に確認してみましょう。END;*行1でエラーが発生しました。行1このように、マテビュー作成時にNEVER句を指定することで、作成されたマテビューをリフレッシュしようとしてもリフレッシュされずにエラーになります。refreshと構文が逆になっています。設定時には気をつけましょう。NEVER句を指定したいわば化石と化してしまったマテビューに対してリライトされるのでしょうか?マテビューを再作成して確認してみましょう。MV_EMP化石化しているマテビューに対してもちゃんとリライトしてくれました。クエリーリライトはリライト可能な場合、マテビューの形態に関係なくリライトしてくれる、ということになります。これはつまり、元表との整合性が取れない場合は、通常のマテビューと同じようにリライトされない、ということになります。マテリアライズド・ビューMV_EMPはENFORCED整合性モードで失効しています。job今後、このマテビューにリライトされることはないでしょう。このように元表とマテビューの整合性が取れない場合でも初期化パラメータのquery_rewrite_integrityをstale_toleratedに変更すればクエリーリライトされます。MV_EMP実際の運用ではあまり使われないと思われますが、このようなパラメータがあることは認識しておきましょう。以上、まだマダマテビューをお送りしました。COMMIT句とNEVER句についての検証を行いました。今週でまてまてマテビューは(本当に)最後になります。いつか、マテビューワールドでお会いしましょう!以上。reserved.トップページ企業概要プライバシーポリシ。