QA@IT

SQLServer2012でのビュー作成について

5250 PV

SQLServer2012でのビュー作成について、ご質問です。
基となるテーブルに対して、毎回アクセスしない方式(Oracleのマテリアライズド・ビューの様に一定期間でリフレッシュできるようなビュー)でビューを作成したいのですが、何か良い方法やビュー作成時のオプション等はないのでしょうか?

ご経験おありの方にお知恵を拝借できれば幸いです。
よろしくお願いいたします。

回答

インデックス付きビュー(ビューを作成し、クラスタ化インデックスをそのビューに作成する)と、ビューの結果セットがデータベースに格納されるようになります。
ただし、リフレッシュのタイミングは任意ではありませんので、元テーブルが頻繁に更新される場合には向かないなどいろいろと制約もありますので、目的には合わないかもしれません。

https://technet.microsoft.com/ja-jp/library/ms187864(v=sql.105).aspx

必ずあるタイミングのデータを参照したい(例えば常に前日の結果が欲しい等)のであれば、SQL Server Agentでそういうテーブルを生成するジョブを定期的に実行してその別テーブルで処理するという手もあるかとは思います。(24時間フル稼働だと難しいでしょうが、データ更新時間帯が決まっている場合は可能かと)

編集 履歴 (0)
ウォッチ

この質問への回答やコメントをメールでお知らせします。