sql >> データベース >  >> RDS >> Sqlserver

SQL 2008 の TEMPORARY TABLE と TABLE VARIABLE の違いは何ですか?

    一時テーブルは、現在のデータベースの代わりに TempDB に移動し、限られた範囲の後に消えることを除いて、ほとんどの特性において通常のテーブルに似ています (セッション ベースかグローバル一時テーブルかによって異なります。ただし、一時テーブルのデータへのすべての変更は、トランザクション ログに記録され、それに伴うすべてのパフォーマンスへの影響が含まれます。おお、通常のテーブルとまったく同じように、必要な数のインデックス、ビュー、トリガー、またはその他のものを一時テーブルに追加することもできます。

    テーブル変数は一種のショートカット インメモリ テーブルです (一時 DB も使用します)。それらへの変更はログに記録されません (これによりパフォーマンスが向上します)。ただし、取得できるインデックスは 1 つだけです (最初の宣言ステートメントの後にインデックスを作成できないため、テーブル変数で作成できる唯一のインデックスは、最初のテーブル変数宣言に含めることができるインデックスです...

       Declare @Tab Table (myKey integer Primary Key Not Null, data varchar(20)) 
    

    これらの特性により、一時テーブルは大きなテーブル (幅が広く行数が多い) や、有効期間中に複数のアクセス パターンを受ける場合に適していますが、非常に狭いテーブルが必要な場合はテーブル変数が最適です (キーのみのテーブル、またはデータ列が 1 つだけのキー) であり、そのインデックス付きキーによって常にアクセスされます...



    1. ECONNREFUSEDを接続します-ノードjs、sql

    2. CASEを使用してSQLリクエストを実行する方法

    3. 同じテーブルでトリガーを使用して新しい行を挿入する

    4. PostgreSQLでの日付の操作