挿入

2012-03-24 6 views
1

グリーティングOverflowers、挿入

は、私は、ビューの元のテーブルを変更せずに新しい行を挿入することが可能なインデックス付きビューを作成することができますSQLのDBMSはありますか?インビューのみの挿入を実行した後、このビューを照会する必要があります。答えが「いいえ」の場合、他にどのような方法で仕事をすることができますか?私は単に、別のサーバーから来る一連の行を、作成したビューの行のセットを特定の順序でマージして、マージされたセット、つまり索引付きビューに対して永続性を持たずに高速の照会を実行できるようにしたい受信したディスク内のセット私はマージされたセットがばかげて成長するので、メモリ内のデータベースを使うのがうまくいくのかどうか分かりません。

あなたはどう思いますか?

種類が

+0

質問は間違っていますか? – geeko

+0

誰かお願いします! – geeko

答えて

1

まあに関しては、ビューは、いくつかのテーブル(複数可)に基づいてする必要があるため、それを行うには、サポート方法はありません。

さらに、インデックス付きビューはそのように使用することを意図しない。インデックスビューと思っても、データを高速に取得することはできません。

私はあなたの意見をそのままにしておくことをお勧めします。次に、外部システムからのデータを挿入する適切な索引が作成されたステージング表を作成します。

ステージングテーブルは、データを削除する(新しいデータを挿入する直前)ので、いつでも切り捨てる必要があります。これはトランザクションSNAPSHOT ISOLATIONで実行する必要があります。そのため、既存のクエリでダーティデータやデッドロックが読み取られることはありません。

  1. 、あなたのデータを取得する際のビューおよびステージング表からの結果をマージするUNION ALL句を使用します。

    その後、次の2つのオプションがあります。

  2. ステージングテーブルをマージして内部結合しない場合は、インデックス付きビューに統合することができます。