3

一時テーブルに対してビューを使用する利点は何ですか。データが他のストアドプロシージャによって再利用される場合は、ビューを使用する必要があることを知っていますが、次のようになります。

  1. パフォーマンスの観点から、一時テーブルよりもビューを使用する方が良いですか?

  2. ビューが絶えず更新されることに基づいているテーブルが、一時的なテーブルよりも優れている場合はどうでしょうか。

  3. ビューに対してwhere句を使用する必要がある場合、一時テーブルを使用する方がよいでしょうか。

  4. 最後に、ビューまたは一時テーブルを使用することの長所/短所は何ですか?

4

3 に答える 3

10

判断するには、情報を再利用する必要があるかどうかを自問してください。

  • ビューは美化された SELECT であり、主に利便性のために使用されます
  • ビューを具体化できます。つまり、ビューをテーブルとして保存し、インデックスを作成することもできます。この質問を参照してください
  • 時々実行されるスクリプトのように、構造を何度も再利用しない場合は、一時テーブルを使用します
  • ビューは (特にマテリアライズされた場合) スペースを取り、多くのビューを持つことは維持が困難です

また、一時テーブルがどのように破棄されるかにも注意してください。

  • 一時テーブル #tbl を作成すると、範囲外になると破棄されます (スクリプトの最後など)。
  • ただし、##tbl (2 つの #) のような一時テーブルを作成することはできますが、接続が終了すると破棄されます。
于 2013-01-21T16:40:18.863 に答える
4
  1. 一般に、はい、ビューは単なる保存された選択であるため、一時テーブルではtempdbを使用する必要があります。

  2. この点では、違いはありません。ビューは保持されません。ビューはベース テーブルからデータを返します。

  3. どちらも違いはありません。

  4. ビューは永続化されます (つまり、select ステートメントのテキストが永続化されます)。ビューを使用するクライアントに影響を与えずにデータベースを変更できるようにする、データベース上のレイヤーを提供します。

于 2013-01-21T16:05:02.330 に答える
1

あなたはアイデアを混ぜています

ビューはカプセル化されたロジックであり、コードの再利用に役立ちます
一時テーブルは、データを保持する実際の物理ストレージです

どちらも用途が異なるため、この 2 つを比較することはできません。

私は一般的にビューを使うのが好きではありません:)

于 2013-01-21T16:15:10.233 に答える