Sql 多次插入临时表,然后一次插入材料表,或多次插入直接插入材料表

Sql 多次插入临时表,然后一次插入材料表,或多次插入直接插入材料表,sql,Sql,我有一个查询,其结构如下: CREATE TempTable ... INSERT INTO TempTable ... INSERT INTO TempTable ... INSERT INTO TempTable ... INSERT INTO MaterialTable SELECT * FROM TempTable 避免使用临时表而直接对材质表进行几次插入是否更有效?i、 e INSERT INTO MaterialTable ... INSERT INTO MaterialTable

我有一个查询,其结构如下:

CREATE TempTable
...
INSERT INTO TempTable
...
INSERT INTO TempTable
...
INSERT INTO TempTable
...
INSERT INTO MaterialTable
SELECT *
FROM TempTable
避免使用临时表而直接对材质表进行几次插入是否更有效?i、 e

INSERT INTO MaterialTable
...
INSERT INTO MaterialTable
...
INSERT INTO MaterialTable

分析执行计划和运行测试始终是您的最佳选择,所以这实际上取决于很多因素。查看并获取一些背景信息。

答案取决于目标表及其索引的确切结构,以及在插入时访问
MaterialTable
的过程的性质

  • attreable
    没有索引<代码>材料表可能有多个索引。根据插入的数据量和单个插入的数量,从temp复制可能会更快,因为需要对每个索引执行单个多行检查
  • 诱人
    外人看不见<代码>材料表可能与您的程序同时访问。在这种情况下,锁定和解锁的数量会更小
  • 一次插入所有行提供了更好的机会来并行插入,从而可能更快地插入
如果
MaterialTable
很小(几千行),那么这些都不重要。对于较大的表,影响将更为显著,因此我建议在
MaterialTable
预计将变大时保持临时表方法