Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Хватит ли лога
|
|||
|---|---|---|---|
|
#18+
День добрый Есть ASE 12.5.1, есть процедура внутри которой begin tran delete TrafficAccountDetail where TrafficAccountID = @ID commit под условие where подпадает `данных` на 5 гигабайт, размер лога-устройства для транзакций для данной базы установлен в 2 гигабайта. Есть процедура порога для думпа транзакций. Вопрос хватит ли места на log-устройстве для выполнения такова delete ??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2005, 13:09 |
|
||
|
Хватит ли лога
|
|||
|---|---|---|---|
|
#18+
А сколько примерно записей-то удаляется? Posted via ActualForum NNTP Server 1.1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2005, 14:24 |
|
||
|
Хватит ли лога
|
|||
|---|---|---|---|
|
#18+
гоню :-) я думал, что одна. А нельзя раздробить транзакцию на несколько маленьких, добавив дополнительное условие какое-нибудь? Posted via ActualForum NNTP Server 1.1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2005, 14:26 |
|
||
|
Хватит ли лога
|
|||
|---|---|---|---|
|
#18+
Litus гоню :-) я думал, что одна. А нельзя раздробить транзакцию на несколько маленьких, добавив дополнительное условие какое-нибудь? Софт блин комерческий... Записей пару десятков млн. Таки придется щас переисывать со своими доп условиями... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2005, 14:42 |
|
||
|
Хватит ли лога
|
|||
|---|---|---|---|
|
#18+
Один из вариантов begin tran set rowcount 1000 delete TrafficAccountDetail where TrafficAccountID = @ID commit ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2005, 15:55 |
|
||
|
Хватит ли лога
|
|||
|---|---|---|---|
|
#18+
КомпостеровОдин из вариантов begin tran set rowcount 1000 delete TrafficAccountDetail where TrafficAccountID = @ID commit а как это на обычном языке звучит: удалить только 1000 записей или удалять в `цикле` по 1000 записей ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2005, 16:06 |
|
||
|
Хватит ли лога
|
|||
|---|---|---|---|
|
#18+
под условие where подпадает `данных` на 5 гигабайт, размер лога-устройства для транзакций для данной базы установлен в 2 гигабайта. Есть процедура порога для думпа транзакций. Вопрос хватит ли места на log-устройстве для выполнения такова delete ??? --------------------------- Даже и не надейся! Я как то пытался посчитать для одной таблицы и решил, что на 3 можно смело умножать. Т.е. надо 5*3 =15 На практике вроде бы так и есть. С такими размерами лучше надеяться на BCP и select into ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2005, 16:29 |
|
||
|
Хватит ли лога
|
|||
|---|---|---|---|
|
#18+
serg08 С такими размерами лучше надеяться на BCP и select into это как ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2005, 16:33 |
|
||
|
Хватит ли лога
|
|||
|---|---|---|---|
|
#18+
Для таких размеров можно считать что Select into вообще не заполняет лог, хотя и будет удерживать.Т.е. перелить нужные данные рядом. Старую таблицу убить. Если места на сервере мало то BCP тоже не заполняет лог если в таблице нет индексов и тригеров. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2005, 18:13 |
|
||
|
Хватит ли лога
|
|||
|---|---|---|---|
|
#18+
serg08Для таких размеров можно считать что Select into вообще не заполняет лог, хотя и будет удерживать.Т.е. перелить нужные данные рядом. Старую таблицу убить. это конечно хорошо, только на работающем сервере оно я думаю не прокатит... :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2005, 14:17 |
|
||
|
Хватит ли лога
|
|||
|---|---|---|---|
|
#18+
Тогда запусти delete на работающем. И после того как он станет неработающим запустишь Select into. А если без шуток то при удаление такого обьёма и при таком логе(нужно будет много транзакций) порциями клиенты всё равно могут подумать что он неработающий. Втихаря останавливаешь сервер...... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2005, 14:48 |
|
||
|
Хватит ли лога
|
|||
|---|---|---|---|
|
#18+
serg08 А если без шуток то при удаление такого обьёма и при таком логе(нужно будет много транзакций) порциями клиенты всё равно могут подумать что он неработающий. Втихаря останавливаешь сервер...... ...и огребаеш по полной от начальства. :) Хотелось бы услышать таки что означает вариант предложенный Компостеровым... А про то, что сервер будет казаться не работающим, я вот сомневаюсь. Первый пост я писал уже после того как ту процедуру запустили, после 3 часов работы лог забился на гиг, после этого процесс тот отстрелили, сервер еще 3 часа делал ролбак... Пользователи не сильно заметили тормазов... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2005, 15:17 |
|
||
|
Хватит ли лога
|
|||
|---|---|---|---|
|
#18+
Лично мое мнение: в таких случаях как у тебя, я бы удалял порционно, т.е. по 1000 ( сам определи число записей ) Это подольше, но переполнение журнала транзакций не вызовет. Я бы немножко модернизировал проц-ру, примерно вот так declare @how_rec int declare @idx = 1 select @how_rec = 1 + count( * ) / 1000 from TrafficAccountDetail where TrafficAccountID = @ID while ( @idx <= @how_rec ) begin begin tran set rowcount 1000 delete TrafficAccountDetail where TrafficAccountID = @ID set row count 0 commit dump tran <имя БД > with no_log select @idx = @idx + 1 end ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2005, 07:42 |
|
||
|
Хватит ли лога
|
|||
|---|---|---|---|
|
#18+
Сорри за ошибки: declare @how_rec int declare @idx int select @idx = 1 select @how_rec = 1 + count( * ) / 1000 from TrafficAccountDetail where TrafficAccountID = @ID set rowcount 1000 while ( @idx <= @how_rec ) begin begin tran delete TrafficAccountDetail where TrafficAccountID = @ID commit dump tran <имя БД > with no_log select @idx = @idx + 1 end set row count 0 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2005, 07:46 |
|
||
|
|

start [/forum/topic.php?fid=55&fpage=106&tid=2013780]: |
0ms |
get settings: |
11ms |
get forum list: |
21ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
60ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
66ms |
get tp. blocked users: |
2ms |
| others: | 264ms |
| total: | 447ms |

| 0 / 0 |
