我在同一个表上运行SELECT和DELETE操作,但是在这两个操作中,逻辑读取方式都不同,并且此查询的结果在删除数据时花费了更多时间。您能帮我减少删除操作中的逻辑读取吗?
表的行超过1.9亿行,它将保留昨天倒数90天的数据。
我在制作SP时遇到了这个问题,它将每天删除1天的数据(最旧的数据)
我已经检查并完成了必要的索引,还尝试了禁用索引,但是时间要长得多。
选择查询:
SELECT *
FROM [db_name].dbo.[table_name] ldt
WHERE ldt.[DATE]='2019-03-26'
删除查询:
DELETE FROM [db_name].dbo.[table_name]
WHERE [DATE]='2019-03-27'
SELECT操作的逻辑读取为:60,383,查询处理时间为00:00:32.851
删除操作的逻辑读取数为:64,516,671,查询处理时间为00:10:27.902(预计时间少于一分钟)
答案 0 :(得分:0)
您是否通过文件摸索来查看表分区?如果可以在数据上创建分区,则可以截断特定分区而不是删除它。