powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Сколько нужно места в логе БД, для удаления данных из таблицы ХХХ
7 сообщений из 7, страница 1 из 1
Сколько нужно места в логе БД, для удаления данных из таблицы ХХХ
    #32021768
Serjio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кто-нибудь думал над таким вопросом:
При удалении данных из таблицы размером YYY в логе нужно место не YYY, а YYY+ZZZ

А как поточнее определить необходимый объем места в логе для удалении известного количества записей и при известном размере строки?

Наверное это зависит от организации данных в логе, всякие там страницы и т.п.

Думаю, что есть различия для версий SQL'я

Внесите ясность.
...
Рейтинг: 0 / 0
Сколько нужно места в логе БД, для удаления данных из таблицы ХХХ
    #32021784
Serjio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
начал исследовать вопрос и заметил, что для таблицы с меньшим количеством колонок при удалении лог запоняется больше. В моем случае примерно в два раза.

Почему?
...
Рейтинг: 0 / 0
Сколько нужно места в логе БД, для удаления данных из таблицы ХХХ
    #32021790
Serjio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вот что нашел для размышлений, но вопрос по прежнему остается открытый

When I copy two columns-approximately 5MB in disk size and containing fewer than 400,000 rows-from one table to another, the copying process seems to enlarge the transaction log by about 100MB, even when I drop the indexes from the destination table. I use the following statement to copy the data:
INSERT into Table_A (Col1, Col2)
SELECT Col1, Col2 FROM Table_B
The database is set up to truncate on checkpoint, and autoshrink is turned on. Is it typical for this INSERT statement to cause the transaction log to increase by such a large amount, and if so, what can I do to reduce the log's size?
Based on the information you provided, you can account for about 60MB of log space for your operation. Each row in the INSERT CASE claims about 56 bytes of log-record overhead. So, assuming that each data record uses 12 bytes, each insert would occupy about 70 bytes of log space. Multiply 70 by 400,000 records, then multiply the product (28 million bytes) by 2 to account for the compensation log record's reserved space. So far, the byte consumption amounts to 56MB. But wait-you aren't finished. SQL Server has to allocate about 650 pages to perform the insert, so you can tack on an additional couple of megabytes. The rest of the bloat could be due to the log file's original size. If the table contains a clustered index, the amount of space would increase again because of splitting index pages.
To keep your inserts from increasing the transaction log file so much, execute the inserts in smaller transactions based on an ordering key. And to reduce the log's size, you can also run one of the shrink log space scripts (i.e., DBCC SHRINKFILE and DBCC SHRINKDATABASE) that are available from the Microsoft Developer Network (MSDN) Web site at http://msdn.microsoft.com.
...
Рейтинг: 0 / 0
Сколько нужно места в логе БД, для удаления данных из таблицы ХХХ
    #32021817
Фотография Александр Гладченко
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Предположения:
ZZZ - Зависить от размера затронутых удалением индексов. Кроме того, прирост журнала будет зависеть от того, насколько фрагментирован файл журнала.
...
Рейтинг: 0 / 0
Сколько нужно места в логе БД, для удаления данных из таблицы ХХХ
    #32021831
Serjio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Врагментирован файл журнала !!! 8-[]

Так это вообще накогда правды не найдешь! Я то надеялся, что хоть как-нибудь можно получить достоверный ответ
...
Рейтинг: 0 / 0
Сколько нужно места в логе БД, для удаления данных из таблицы ХХХ
    #32021844
Илья
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если вопрос лишь в том, чтобы сэкономить место в логе при удалении - используй TRUNCATE вместо DELETE.
...
Рейтинг: 0 / 0
Сколько нужно места в логе БД, для удаления данных из таблицы ХХХ
    #32021876
Serjio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вопрос в том, чтобы при глобальной чистке базы. Быть уверенным в том, что хватит лога для удаления данных по определенным ключам (прикинув хватит/не хватит лога, можно управлять объемом удаляемых данных за раз, ну не по одной записи же удалять?)
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Сколько нужно места в логе БД, для удаления данных из таблицы ХХХ
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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