1

オーバーフローの皆さん、こんにちは。

ビューの元のテーブルを変更せずに新しい行を挿入できるインデックス付きビューを作成できる SQL DBMS はありますか? ビュー内のみの挿入を実行した後、このビューを照会する必要があります。答えが「いいえ」の場合、他にどのような方法で仕事をすることができますか? 別のサーバーから取得した行のセットを、作成されたビューの行のセットと特定の順序でマージして、永続化することなく、マージされたセット、つまりインデックス付きビューに対して高速なクエリを実行できるようにしたいだけです。受け取ったディスクのセット。マージされたセットが途方もなく大きくなるため、メモリ内データベースを使用するとうまくいくかどうかわかりませんか?

皆さんどう思いますか?

敬具

4

1 に答える 1

1

ビューはいくつかのテーブルに基づいている必要があるため、これを行う方法はサポートされていません。

それに加えて、インデックス付きビューはそのように使用することを意図していません。データの取得を高速化することを考えて、インデックス ビューにデータをプッシュする必要はありません。

そのままの見方を維持することをお勧めします。次に、適切なインデックスが作成されたステージング テーブルを作成し、そこに外部システムからのデータを挿入します。

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

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

  1. データを取得する場合は、節を使用しUNION ALLて、ビューとステージング テーブルからの結果をマージします。
  2. ステージング テーブルを結合するのではなく、内部結合する必要がある場合は、おそらくインデックス付きビューに統合できます。
于 2012-06-30T07:26:11.057 に答える