作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个表,该表由每日计划的作业填充,该表删除了最近7天的数据,然后使用来自另一个源(大型机)的最近7天的数据重新填充。
最近,用户报告了许多重复事件,这些重复事件可以追溯到2011年10月开始。。。。
我注意到每个作业运行的删除都有奇怪的行为:
DELETE FROM fm104d
WHERE location = '18'
AND (CONVERT(datetime,CASE WHEN ISDATE(pull_date)=0 THEN '19000101'
ELSE pull_date END)) > DATEADD(day, -7, getdate())
最佳答案
你不会相信的。实际上,我没有,因为这几乎没有逻辑意义,但是最后,有效的解决方案是添加索引。
这归功于我本地的DBA“是否考虑过添加索引?我只是做过测试,并确定它足够有效”。
这是添加的索引:
CREATE INDEX ixDBO_fir104d__SOURCE_LOCATION__Include
ON [dbo].[fir104d] ([SOURCE_LOCATION])
INCLUDE ([Transaction_Date],[PULL_DATE])
GO
关于sql - 使用相同的WHERE子句,SQL Server DELETE和SELECT的行为不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8128775/
我是一名优秀的程序员,十分优秀!