表盘线/急切线轴

时间:2009-03-20 17:14:32

标签: sql-server optimization

我有一个查询

select * into NewTab from OpenQuery(rmtServer, 'select c1, c2 from rmtTab') 

当我查看执行计划时,它告诉我它执行'表假脱机/急切假脱机''将数据存储在临时表中以优化倒带'

现在我预计不会有任何回忆。如果出现某种崩溃,我可以放弃newTab并重新开始。

有什么方法可以阻止它将数据存储在临时表中?

2 个答案:

答案 0 :(得分:4)

这可能是导致它的开放式问题。

没有关于行数,没有统计数据的信息,没有任何内容,因此SQL Server将简单地假设结果以允许它评估我怀疑的后续位。这是基本的想法。

我建议分开newtab的创建和填充。

顺便说一下,倒带不会回滚。倒带与交易安全无关。它是SQL Server期望重用行。这是正确的,因为openquery是一个黑盒子。

看看这个Simple Talk article的底部附近是否有回弹。你有一个“远程查询”。

修改

基于我上周发现的一件事,请看sp_tableoption

  

与OPENROWSET批量一起使用时   rowset提供程序将数据导入到   没有索引的表,TABLOCK启用   多个客户端同时加载   数据进入目标表   优化日志记录和锁定

尝试填充TABLOCK。我们与使用.net SQLBulkCopy的客户端开发人员一起玩得非常有趣。

同样来自Kalen Delaney

这不直观。

答案 1 :(得分:1)

首先创建NewTab,然后从openquery插入到....