大量のデータを処理するストアドプロシージャがあります。そのデータを一時テーブルに挿入しています。イベントの全体的な流れは次のようなものです
CREATE #TempTable (
Col1 NUMERIC(18,0) NOT NULL, --This will not be an identity column.
,Col2 INT NOT NULL,
,Col3 BIGINT,
,Col4 VARCHAR(25) NOT NULL,
--Etc...
--
--Create primary key here?
)
INSERT INTO #TempTable
SELECT ...
FROM MyTable
WHERE ...
INSERT INTO #TempTable
SELECT ...
FROM MyTable2
WHERE ...
--
-- ...or create primary key here?
私の質問は、#TempTableテーブルに主キーを作成するのに最適な時期はいつですか?すべてのデータを挿入した後、主キー情報を作成するときにインデックスを再編成する必要があるため、主キー制約/インデックスを作成する必要があると理論付けました。しかし、私は下線を引く仮定が間違っているかもしれないことに気づきました...
関連する場合、私が使用したデータ型は実際のものです。#TempTable
テーブルでCol1
は、Col4
主キーを構成します。
更新:私の場合、ソーステーブルの主キーを複製しています。主キーを構成するフィールドは常に一意になることを私は知っています。最後に主キーを追加しても、テーブルの変更が失敗する心配はありません。
しかし、これはさておき、私の質問は、両方が成功すると仮定すると、どちらが速いのかということです。