2012-05-07 1 views
1

Oracleデータベースでは、特定の時間間隔で自動的にリフレッシュできるマテリアライズド・ビューを作成できます。インデックス付きビューやその他の手法を使用してSQL Serverでこれをどのように実装できますか? 基になるテーブルが非常に大きく、ベーステーブルの変更が頻繁に発生します。特定の時間に自動的にコンパイルされる索引付きビューの作成

答えて

1

私が理解する限り、インデックス付きビューは常に最新の結果を返します。基礎となるデータが変更された場合、DBMSは自動的にビューを更新するため、更新をスケジュールする必要はありません。

インデックス付きビューを維持するオーバーヘッドが発生しないようにするには、不要になったときに削除してから、使用する前に再作成してください(日次/週次/月次レポートの実行前など)。

+0

基になるテーブルが非常に大きい場合はどうですか? – kinkajou

+1

インデックス付きビューの作成のオーバーヘッドと時間をベンチマークします。 Oracleが許可する定期的な更新は、MSSQLが提供するオプションよりも確かに柔軟性があります(インデックス付きビューを最新の状態に保つために少しオーバーヘッドが発生するか、必要に応じて定期的にオーバーヘッドが発生します)。 MSSQLは、索引ビューを定期的に更新するために、漸進的にオーバーヘッドの一部を掛けるオプションを提供していません。本当に必要な場合は、定期的に更新するテーブルを使用することもできます(例:ストアドプロシージャをスケジューリングします。 –

+0

私はそれを試してみましょう大変ありがとうございます:) – kinkajou

0

これは、スクリプトとSQL Serverエージェントジョブの組み合わせを使用して実現できると思います。インデックスの再編成/再ビルド操作をスクリプト化したら、同じスクリプトを使用してSQL Serverエージェントジョブに接続し、スケジュールに従って実行することができます。

もう1つの選択肢は、データベース保守計画を調べることです。基礎となる表のサイズに応じて、索引のメンテナンスが容易になるように、パーティション索引を作成できます。

関連する問題