我有一个处理大量数据的存储过程。我将该数据插入到临时表中。事件的整体流程类似于
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
组成我的主键。
更新:就我而言,我正在复制源表的主键。我知道构成我的主键的字段将始终是唯一的。如果我在最后添加主键,我不担心更改表失败。
尽管如此,我的问题仍然是假设两者都会成功,哪个更快?