2013-10-05 38 views
0

我从bigTable1(指数-ED)中选择一组数据,然后将它们插入到另一个bigTable2(指数-ED)问题插入进(BigTable1)选择(BiggerTable2)

我有两个选择:这是一个好主意:

选项:1

INSERT INTO bigTable2 (bigTable2.Col1, bigTable2.Col2) 
SELECT bigTable1.Col1, bigTable1.Col2 FROM bigTable1 (nolock) 
WHERE bigTable1.col3 between @value1 and @value2 

选项:2

CREATE #TEMP (Col1 int, Col2 varchar(200)) 

INSERT INTO #TEMP (Col1, Col2) 
SELECT bigTable1.Col1, bigTable1.Col2 FROM bigTable1 (nolock) 
WHERE bigTable1.col3 between @value1 and @value2 

INSERT INTO bigTable2 (bigTable2.Col1, bigTable2.Col2) 
SELECT Col1, Col2 FROM #TEMP 

我不想要锁定bigTable1。请告知两者哪一个更好?还有其他建议吗?

回答

0

如果您不想锁定表格,请使用第一种方法。这是一个一步式的程序,无论需要多长时间,您都可以将桌子解锁,因此您不会阻挡其他人。

第二种选择将是你期间选择锁定表的情况下适当的。必须填写一个空的非索引表会更快,从而使表锁定时间更短。