首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >从SQL Server数据库中删除相同数量的记录需要0.2秒或30秒

从SQL Server数据库中删除相同数量的记录需要0.2秒或30秒
EN

Stack Overflow用户
提问于 2015-11-30 20:56:56
回答 3查看 51关注 0票数 1

我使用的是SQL Server2008 R2。我正在从一个表中删除大约5000条记录。当我使用相同的数据测试性能时,我发现删除要么需要1秒,要么需要31秒。

测试数据库是保密的,所以不能在这里共享。

我已经尝试分开加载,一次只删除1000条记录,但我仍然遇到了偏差。

我应该如何继续我的调查?性能差异的原因可能是什么?

查询很简单,类似于:delete from PART where INVOICE_ID = 64225

EN

回答 3

Stack Overflow用户

发布于 2015-11-30 21:12:09

DELETE子句使用了大量的系统和事务日志资源,这就是为什么它会花费很多时间的原因。如果可能,请尝试截断表。

票数 0
EN

Stack Overflow用户

发布于 2015-11-30 21:46:27

当您第一次运行删除时,可能数据不在缓冲池中,因此必须从存储中读取,第二次运行时将在存储中。其他因素包括检查点进程是否正在将已更改的页面运行到存储中。发布您的查询计划->

代码语言:javascript
代码运行次数:0
运行
复制
set statistics xml on

select * from sys.objects

set statistics xml off
票数 0
EN

Stack Overflow用户

发布于 2015-11-30 21:57:11

啊!在仔细查看执行计划后,我注意到缺少一个索引。添加索引后,所有执行都运行得很快。请注意,在此之后,我删除了索引,以测试问题是否再次出现。性能偏差再次出现。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33999201

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档