Команда DELETE работает слишком медленно в таблице с кластеризованным индексом
Поскольку это таблица журнала, кластеризовать sql-query ее не нужно.
Маловероятно, что sqlselect вы будете искать его на Id
.
Измените sql-syntax свой PRIMARY KEY
так, чтобы он не был sql-statement кластеризованным. Это будет select-statement использовать метод хранения sql HEAP
, который быстрее на DML
:
ALTER TABLE FTPLog DROP CONSTRAINT Primary_Key_Name
ALTER TABLE FTPLog ADD CONSTRAINT Primary_Key_Name PRIMARY KEY NONCLUSTERED (FTPLogId)
, а sql-select просто выдайте:
SELECT @MaxFTPLogTime = DATEADD(day, -10 , GETDATE())
PRINT @MaxFTPLogId
DELETE FROM FTPLog WHERE LogTime <= @MaxFTPLogTime
sql
sql-server-2005
2021-12-22T10:39:45+00:00
2022-05-13T18:52:55+00:00
Enteron
Вопросы с похожей тематикой, как у вопроса:
Команда DELETE работает слишком медленно в таблице с кластеризованным индексом
Предупреждение о файлах Cookies
Мы используем файлы cookies для улучшения работы сайта. Оставаясь на нашем сайте, вы соглашаетесь с условиями использования файлов cookies. Чтобы ознакомиться с нашими Положениями о конфиденциальности и об использовании файлов cookie, нажмите здесь.