我应该在存储过程中的临时表上创建主键吗?

时间:2017-02-27 17:55:05

标签: sql-server database stored-procedures

我有一个存储过程需要动态创建3个临时表,并将它们连接到包含其他表的大型查询中。

这样做是好的做法吗?

1 个答案:

答案 0 :(得分:1)

这实际上取决于,这不是一个好的或坏的做法。如果是关于性能,你实际上并不需要PK,你需要的是一个聚簇索引(在创建PK时默认在SQL Server上创建)。在任何情况下,重要的是如果您正在进行临时表的批量插入,则首先加载表,然后创建索引。如果您创建索引然后插入数据,索引可能会碎片化。

就个人而言,我会使用和不使用索引来监控流程,并选择最佳选项。有时,创建索引比执行表扫描需要更多时间。但是如果表格很大,那么创建索引实际上可能要好得多,然后做你需要做的任何转换。