Как стать автором
Обновить

Комментарии 9

Немного позанудствую
DELETE FROM testtable WHERE col1 in (SELECT TOP 1000000 col1 FROM testtable ORDER BY newid());
DELETE FROM testtable2 WHERE col1 not in (SELECT col1 FROM testtable);
GO

Если делается сравнение, было бы логично выполнять абсолютно одинаковые запросы.
Скорее всего результат от этого не улучшиться, но всё же.
НЛО прилетело и опубликовало эту надпись здесь
Возможно и так, не спорю, но в глаза бросается.
Абсолютно одинаковые запросы дадут разные результаты. т.е. если мы в первом случае удаляем рандомные строки и во втором — распределение рандома будет разным и разница может проявиться при замерах.
А тут — совершенно верно — из второй таблицы удаляются ровно те же строки, что и из первой, чтобы сохранить распределение рандома, сделанное при удалении из первой таблицы.
Тогда имеет смысл сделать временную таблицу с случайными идентификаторами, а затем в обоих запросах проверять условие по ней.
Чтобы написать три запроса вместо двух? Зачем?
Для чистоты эксперимента, зачем же ещё
Чем вариант с временной таблицей чище варианта без временной таблицы?
В данном исследовании мы убедились, что использование кластеризованного индекса, в сравнении с кучей, дает лучшие результаты по всем замеряемым категориям: ЦП, ввод-вывод и время выполнения

При использовании возрастающего ключа индекса и полном отсутствии операций UPDATE
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации