Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как SQLServer удаляет записи / 19 сообщений из 19, страница 1 из 1
19.02.2002, 13:52
    #32023405
Screem6
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как SQLServer удаляет записи
Господа, всем добрый день.

Читал упоминание о том, что для того, чтобы не "замусоривать" TL SQL Server при удалении записей их не удаляет, а помечает как удаленные... Кто-нибудь может прояснить этот вопрос? И когда записи реально удаляются, если так

Спасибо
...
Рейтинг: 0 / 0
19.02.2002, 14:31
    #32023411
SergSuper
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как SQLServer удаляет записи
Как он удаляет записи - это никому не ведомо и никого и не должно интересовать.
Может там что-то и замусоривается, но повлиять Вы всё равно никак не сможете.
...
Рейтинг: 0 / 0
19.02.2002, 14:34
    #32023413
Screem6
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как SQLServer удаляет записи
меня интересует, и думаю не только мне.
...
Рейтинг: 0 / 0
19.02.2002, 14:56
    #32023418
ASCRUS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как SQLServer удаляет записи
Интересно - а как вы думаете это делается в любой СУБД - естественно при удалении запись только помечается. А физически место освобождается при сжатии БД.
...
Рейтинг: 0 / 0
19.02.2002, 14:56
    #32023419
sysop
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как SQLServer удаляет записи
Ну а как Вы хотели при страничной то организации! Конечно будут оставатся 'дыры'. При удачном стечении обстоятельтв они частично будут заполнятся. Ну а решается эта проблема переодическим переносом (transfer) базы.
...
Рейтинг: 0 / 0
19.02.2002, 15:02
    #32023420
Screem6
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как SQLServer удаляет записи
Просто наблюдалась такая картина, после удаления в таблице 150 тыс записей, загрузка на сервере редко опускалась ниже 70-80% и так в течение 3,5 ! часов, тогда как в среднем она составляла 20-30.
...
Рейтинг: 0 / 0
20.02.2002, 07:20
    #32023476
Как SQLServer удаляет записи
Так это в лог писалось все, что удалялось. Отсюда и нагрузка.
...
Рейтинг: 0 / 0
20.02.2002, 08:52
    #32023492
Screem6
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как SQLServer удаляет записи
Так если он только помечает как удаленные чтобы не тратить время на запись лога ))
...
Рейтинг: 0 / 0
20.02.2002, 12:52
    #32023531
Как SQLServer удаляет записи
Лог пишет в любом случае, ибо это нужно для архивации журнала.
А помеченые "удаленные" записи в любой момент могут быть перезаписаны каким-нибудь инсертом или апдейтом с похожим кластерным индексом (он ляжет на ту же страницу). Если этот перезаписывающий инсерт или апдейт будет в той же транзакции, что и удаление, а в логе инфы нету, то как же тогда будет присходить откат транзакции?
...
Рейтинг: 0 / 0
20.02.2002, 14:25
    #32023540
3.14_d'or
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как SQLServer удаляет записи
Пустой базар, чуваки. Ежу ясно, что работа базы однозначно определяется низлежащей
фаловой системой. В ОС Windows системы FAT & NTFS, они при "удалении" файла ничего
не стирают с диска реально, а только в служебных таблицах делают отметку, мол свободно
место с такого-то смещения по такое-то... Также и в sql сервере - он же не глупее ОС.
Пацан ASCRUS прав, уважаю.
...
Рейтинг: 0 / 0
20.02.2002, 15:40
    #32023552
Как SQLServer удаляет записи
Откуда столько дураков на Земле?

Записи удаляются! При этом место,освобождаемое ими, остаётся неиспользующимся. Когда вставка будет происходить на той же странице данных+индекса, где есть место от удалённых записей, то данные на странице переупорядочиваются, а страница вставляется на это "пустое" место.

В любом случае сжатие набора страниц происходит только в случае появления в нём полностью пустой страницы. Тогда эта страница из набора перерегистрируется в пуле пустых страниц.
...
Рейтинг: 0 / 0
20.02.2002, 16:43
    #32023561
3.14_d'or
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как SQLServer удаляет записи
2Баклажан

За базар ответишь, брат.

всем остальным культурным людям:

опыт паказал, что ни х.. не удаляется.

DBCC TRACEON(3604)
create table oblom (v char(50))
insert oblom values ('Baklazhan')
select * from oblom
DBCC PAGE (10, 1, 15, 1) -- 10=DB_ID(), 1=filenum from sysfiles, 15=PageNum
delete from oblom
DBCC PAGE (10, 1, 15, 1) -- 10=DB_ID(), 1=filenum from sysfiles, 15=PageNum

оба ДБЦЦЫ все покажут... и в файле на диске тоже строка 'Baklazhan' остается
...
Рейтинг: 0 / 0
20.02.2002, 18:57
    #32023567
sysop
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как SQLServer удаляет записи
Эта пробдема начинает решатся 'по понятиям'. Требую личной встречи участников.
...
Рейтинг: 0 / 0
22.02.2002, 17:50
    #32023795
Garya
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как SQLServer удаляет записи
Уважаемый 3.14_dor. Информация остается в странице, пока не будет затерта другими данными. Если бы все было так как Вы говорите, размер БД все время увеличивался бы. Вы просто создайте новую БД, в ней таблицу и добавьте в нее 1 млн записей. Потом удалите. Потом снова добавьте, потом снова удалите. И так раз десять. Потом посмотрите на размер файла БД и файла журнала транзакций и все станет понятно.
И еще. На этом форуме "базарная" и "братвяная" терминология неуместна. Так же как и Ваш ник.
...
Рейтинг: 0 / 0
22.02.2002, 18:13
    #32023798
Garya
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как SQLServer удаляет записи
Дополнение. IMHO, Акжан Абдулин просто постарался в более вежливой форме, нежели в оригинале, обозначить Ваш ник. Кстати, предпоследняя буква должна быть "a", а не "o". Меня очень удивляет, что на "дурак" Вы так нервно реагируете, в то время как на обращение "3.14_dor" реагируете нормально. Вы, случаем, не голубой?
...
Рейтинг: 0 / 0
01.03.2002, 06:51
    #32024116
Как SQLServer удаляет записи
модераторы мышей не ловят... а слабо кнопку "abuse" завести?... тошнит уже от латентных гомо...
...
Рейтинг: 0 / 0
01.03.2002, 09:26
    #32024140
KonstN
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как SQLServer удаляет записи
При удалении что у данных, что у индекса запись помечается как GHOST. То есть при следующем insert или update она может быть использована.
На этом всё.
...
Рейтинг: 0 / 0
04.03.2002, 09:34
    #32024281
3,14_d'or
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как SQLServer удаляет записи
2Garya: Надо вопрос читать, а не придумывать. А вопрос был про то, затираются ли данные после команды DELETE (и окончания транзакции, если она есть, конечно) или нет. А ты про то, что будет после этого! Кстати, свои ответом ты
только подтвердил, что не удаляет нифига...

По поводу терминилогии: обязуюсь больше не выражаться. Извиняюсь. Я же за форум заступился, Баклажан дураками назвал отвечавших...

2пострадавший: Ну ты загнул, сука. Ответишь.
...
Рейтинг: 0 / 0
04.03.2002, 10:37
    #32024291
Александр Гладченко
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как SQLServer удаляет записи
Тема закрыта. Не ругайтесь больше, пожалуйста...
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как SQLServer удаляет записи / 19 сообщений из 19, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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