这个题目就是问题所在。我很想知道答案。有人告诉我
select是在简单恢复模型数据库中登录的最小值.我一点也没参与其中。
SELECT...INTO的日志记录量取决于数据库的有效恢复模型。在简单恢复模型或大容量日志恢复模型下,批量操作被记录到最少。使用最小日志记录,使用选择的…语句可以比创建表然后使用INSERT语句填充表更有效。
寻求帮助
谢谢
发布于 2011-07-08 12:14:50
有几个想法/理论:
选择进入..。让RDBMS根据原始表的顺序确定排序顺序。如果插入到现有表中,则可能需要进行排序以匹配群集索引或非聚集索引(Es)。
没有索引-当您的SELECT INTO...数据库管理系统确切地知道没有预先存在的索引要更新。
不存在争用-因为您要插入的表不存在,所以Server不需要担心行级锁定或争用处理。其他任何东西都不能引用您创建的表,因为它不存在。
尽管如此,还有其他方法可以非常快地插入到桌子上。
ON。在目标表上使用TABLOCK提示,在源表上使用NOLOCK提示。例如,假设tablea和tableb具有相同的聚集索引:
INSERT INTO TableB WITH (TABLOCK)
SELECT <Columns>
FROM TableA WITH (NOLOCK)根据我的经验,这比使用SELECT INTO...之后创建聚集索引要快。请注意,这也可以在已经包含数据的表上工作,这是一个更有用的场景。
下面是MS中关于Server 2008中数据加载性能的非常详细的白皮书。
https://dba.stackexchange.com/questions/12818
复制相似问题