基本となるベーステーブルで変更が発生すると、手動でリフレッシュされるマテリアライズドビューは古くなります。マテリアライズドビューに対して設定された古さのしきい値をデータが超えた場合、オプティマイザーはそのビューを、クエリを満たすための候補と見なしません。手動ビューをリフレッシュするということは、データベースサーバーがそのビューのクエリ定義を再実行し、ビューのデータをそのクエリの新しい結果セットで置き換えることを意味します。リフレッシュを行うと、ビューのデータが基本となるデータと一致します。手動ビューのデータの古さについて許容可能な程度を検討し、リフレッシュ方式を考案してください。リフレッシュ操作中はビューでクエリを処理できないため、リフレッシュ方式でリフレッシュを完了するのにかかる時間を考慮する必要があります。
また、イベントを使用してビューをリフレッシュする方式を設定することもできます。たとえば、イベントを作成して一定の間隔でリフレッシュすることができます。
即時マテリアライズドビューは、トランケートされた後などの未初期化状態 (データがない) の場合を除き、リフレッシュする必要はありません。
materialized_view_optimization データベースオプションを使用して、古さのしきい値を設定できます。オプティマイザーは、クエリの処理時にこのしきい値を超えたマテリアライズドビューを使用しません。
データベースサーバーをアップグレードした後、またはアップグレード後のデータベースサーバーで使用できるようにデータベースを再構築またはアップグレードした後は、マテリアライズドビューをリフレッシュすることをおすすめします。
![]() |
DocCommentXchange で意見交換できます
|
Copyright © 2012, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.1 |