0

schemas単一の 内に複数ありdatabaseます。

言う、

  • DBTEST (データベース)

    1. SCH001 (スキーマ 1)

    2. SCH002 (スキーマ 2)

Tbl同様に、上記の両方のスキーマに存在するというテーブルがあります。
これで、テーブルからデータを取得し、SCH001.tbl以下のようなキーワードSCH002.tblを使用して、union all

select * From SCH001.tbl union all select * From SCH002.tbl

上記のクエリは問題なく動作していますが、私の上司は、同じことを達成するために他の手法を使用するように私に求めています (union all / Union なし)。だから私が尋ねようとしているのは、ユニオンが私の場合に同じ結果を得るために利用できる救済策はありますか? ? そうでない場合, この場合、ユニオンをすべて置き換えることができない理由を親切に教えてください。

4

1 に答える 1

2

あなたの上司が、この労働組合をいつも (いつも) 使うのは見苦しいと思っているなら、それについて考えてみませんか? 両方のユニオン部分のすべてのフィールドを参照し、これを結合ビューとして提示するだけです(これにより、ビューで * を使用するのは一般的に悪いと言えます)

そのようなビューにインデックスを付けることができるかどうかはわかりませんが、チェックアウトする価値は十分にあります。インデックス付きのビューを実行する場合にのみ 1 つのスキーマを使用する必要があると思いますが、これについては確信が持てません (ただし、可能であれば、これはより良い方法です)。 「ただ」組合よりも解決策)

(その分野の新機能) :編集: (Microsoft sql では) ユニオン上、および/またはそれによって異なるスキーマ上でマテリアライズド ビューを作成することはできません (それらはスキーマ バインドでもあります)。

とにかく私は個人的にビューを使用します。これは、データにプログラム インターフェイスを提供する良い方法であり、いつの日か置き換えることができます!. :編集:

しかし、実際には...まだボンネットの下の組合です

于 2013-03-14T08:07:25.177 に答える