powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Для Timur Sokolov, или опять удалить 1млн. записей
3 сообщений из 3, страница 1 из 1
Для Timur Sokolov, или опять удалить 1млн. записей
    #32020696
Vladimir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Когда-то я задавал вопрос об удалении 1млн. записей. Там все понятно. Но вот в ответе:

SET ROWCOUNT 5000
while (exists (select * from #t /*where ...*/))
delete from #t /*where ...*/
SET ROWCOUNT 0

у меня сейчас возникли сомнения, что удалятся именно те записи, которые я вытаскиваю SELECTом. Один и тот же SQL запрос вроде может в разном порядке вернуть данные, хотя они и будут одни и те же. Или я не прав?
...
Рейтинг: 0 / 0
Для Timur Sokolov, или опять удалить 1млн. записей
    #32020698
Timur Sokolov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В общем случае, если не указан порядок сортировки ORDER BY, то один и тот же Select может возвращать данные в разном порядке, поэтому первых N записей действительно могут быть разными для одного и того же Select-а.
В предложенной ситуации, при том что условие Where *совпадает* для обоих операторов Select и Delete, оператор Delete удалит все или только часть (если записей больше 5000) записей которые могут быть возвращены Select-ом. То есть удалит подмножество оператора Select. Так как необходимо было удалить все (1`000`000) записи которые удовлетворяют where, то при таком подходе рано или поздно они удалятся, что и требовалось.
...
Рейтинг: 0 / 0
Для Timur Sokolov, или опять удалить 1млн. записей
    #32020699
Фотография Александр Степанов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А какая разница в каком порядке они возвращаются селектом? У Вас есть условие, которому должны соответствовать удаляемые записи. Каждый раз из этого набора удаляется по 5000 записей (или меньше). После окончания цикла ВСЕ записи, отвечающие условиям отбора, будут удалены.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Для Timur Sokolov, или опять удалить 1млн. записей
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]