高逻辑读

时间:2019-07-09 09:15:58

标签: sql-server tsql sql-delete query-performance

我在同一个表上运行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(预计时间少于一分钟)

1 个答案:

答案 0 :(得分:0)

您是否通过文件摸索来查看表分区?如果可以在数据上创建分区,则可以截断特定分区而不是删除它。