【发布时间】:2017-02-27 17:55:05
【问题描述】:
我有一个存储过程,需要动态创建 3 个临时表并将它们加入到包含其他表的大型查询中。
这样做是个好习惯吗?
【问题讨论】:
标签: sql-server database stored-procedures
我有一个存储过程,需要动态创建 3 个临时表并将它们加入到包含其他表的大型查询中。
这样做是个好习惯吗?
【问题讨论】:
标签: sql-server database stored-procedures
这实际上取决于,这不是一个好或坏的做法。如果是关于性能,你实际上并不需要 PK,你需要的是一个聚集索引(在创建 PK 时默认在 SQL Server 上创建)。在任何情况下,重要的是,如果要批量插入临时表,首先加载表,然后创建索引。如果您创建索引然后插入数据,则索引可能会出现碎片。
就个人而言,我会监控有无索引的过程并选择最佳选项。有时,创建索引比执行表扫描需要更多时间。但是,如果表很大,那么创建索引然后执行您需要执行的任何转换实际上可能会好得多。
【讨论】: