删除与Microsoft Access相关的慢SQL Server表

3

我在Microsoft Access中有一个链接到SQL Server表的连接。I/O速度非常快,但当我试图删除大约1400条记录时,处理时间需要大约45秒钟。如果我在SSMS中发出相同的删除命令,则可以立即运行。

1个回答

5

5
之所以如此,是因为Jet/ACE试图成为良好的“数据库服务器公民”,而不是发送SQL批量删除,它会为每一行待删除的数据发送单独的SQL删除命令。这样可以让服务器将删除操作与其他用户的命令交错进行,但这意味着对于最终用户来说,删除速度非常慢。通过使用透传方式,您告诉服务器将其处理为批量删除,而不是让Jet/ACE将您的SQL DELETE转换为您不想要的内容。 - David-W-Fenton
3
更多信息请参阅:http://msdn.microsoft.com/zh-cn/library/bb188204(v=sql.90).aspx - mwolfe02
通行查询非常快速...它们可以在30秒内完成一分钟,这就是它们的快速之处。 - Phillip Senn

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接