Высокие логические чтения - PullRequest
1 голос
/ 09 июля 2019

Я выполняю операции SELECT и DELETE для одной и той же таблицы, но в обеих операциях логические операции чтения сильно отличаются, и в результате этого запроса на удаление данных уходит намного больше времени.Не могли бы вы помочь мне уменьшить количество логических операций чтения в операции удаления.

В таблице содержится более 190 миллионов строк, и она должна хранить данные за 90 дней со вчерашнего дня назад.

Я столкнулся сэта проблема при создании SP, который будет удалять данные за 1 день (самые старые данные) ежедневно

Я проверил и выполнил необходимые ИНДЕКСЫ, а также попытался отключить индексы, но время все равно намного выше.

Запрос SELECT:

SELECT *
FROM [db_name].dbo.[table_name] ldt
WHERE ldt.[DATE]='2019-03-26'

Запрос DELETE:

DELETE FROM [db_name].dbo.[table_name]
WHERE [DATE]='2019-03-27'

Логические операции чтения для операций SELECT: 60,383, а время обработки запроса - 00: 00: 32.851.
Логические операции чтения для операций DELETE: 64 516 671, а время обработки запроса - 00: 10: 27,902 (ожидаемое время меньше минуты)

1 Ответ

0 голосов
/ 09 июля 2019

Вы смотрели на раздел таблицы с поиском файлов?если вы можете создать раздел на ваших данных, вы можете обрезать определенный раздел вместо того, чтобы удалить его.

...