Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Хватит ли лога / 15 сообщений из 15, страница 1 из 1
16.03.2005, 13:09
    #32963140
g613
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хватит ли лога
День добрый

Есть ASE 12.5.1, есть процедура внутри которой
begin tran
delete TrafficAccountDetail where TrafficAccountID = @ID
commit

под условие where подпадает `данных` на 5 гигабайт, размер лога-устройства для транзакций для данной базы установлен в 2 гигабайта.

Есть процедура порога для думпа транзакций.

Вопрос хватит ли места на log-устройстве для выполнения такова delete ???
...
Рейтинг: 0 / 0
16.03.2005, 14:24
    #32963463
Litus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хватит ли лога
А сколько примерно записей-то удаляется?

Posted via ActualForum NNTP Server 1.1
...
Рейтинг: 0 / 0
16.03.2005, 14:26
    #32963472
Litus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хватит ли лога
гоню :-)
я думал, что одна.
А нельзя раздробить транзакцию на несколько маленьких, добавив
дополнительное условие какое-нибудь?

Posted via ActualForum NNTP Server 1.1
...
Рейтинг: 0 / 0
16.03.2005, 14:42
    #32963529
g613
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хватит ли лога
Litus
гоню :-)
я думал, что одна.
А нельзя раздробить транзакцию на несколько маленьких, добавив
дополнительное условие какое-нибудь?


Софт блин комерческий...

Записей пару десятков млн.
Таки придется щас переисывать со своими доп условиями...
...
Рейтинг: 0 / 0
16.03.2005, 15:55
    #32963818
Компостеров
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хватит ли лога
Один из вариантов
begin tran
set rowcount 1000
delete TrafficAccountDetail where TrafficAccountID = @ID
commit
...
Рейтинг: 0 / 0
16.03.2005, 16:06
    #32963878
g613
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хватит ли лога
КомпостеровОдин из вариантов
begin tran
set rowcount 1000
delete TrafficAccountDetail where TrafficAccountID = @ID
commit

а как это на обычном языке звучит:

удалить только 1000 записей
или
удалять в `цикле` по 1000 записей

?
...
Рейтинг: 0 / 0
16.03.2005, 16:29
    #32963955
serg08
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хватит ли лога
под условие where подпадает `данных` на 5 гигабайт, размер лога-устройства для транзакций для данной базы установлен в 2 гигабайта.

Есть процедура порога для думпа транзакций.

Вопрос хватит ли места на log-устройстве для выполнения такова delete ???
---------------------------
Даже и не надейся!
Я как то пытался посчитать для одной таблицы и решил, что на 3 можно смело умножать.
Т.е. надо 5*3 =15
На практике вроде бы так и есть.
С такими размерами лучше надеяться на BCP и select into
...
Рейтинг: 0 / 0
16.03.2005, 16:33
    #32963968
g613
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хватит ли лога
serg08
С такими размерами лучше надеяться на BCP и select into

это как ?
...
Рейтинг: 0 / 0
16.03.2005, 18:13
    #32964316
serg08
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хватит ли лога
Для таких размеров можно считать что Select into вообще не заполняет лог,
хотя и будет удерживать.Т.е. перелить нужные данные рядом. Старую таблицу убить.

Если места на сервере мало то
BCP тоже не заполняет лог если в таблице нет индексов и тригеров.
...
Рейтинг: 0 / 0
17.03.2005, 14:17
    #32965940
g613
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хватит ли лога
serg08Для таких размеров можно считать что Select into вообще не заполняет лог,
хотя и будет удерживать.Т.е. перелить нужные данные рядом. Старую таблицу убить.


это конечно хорошо, только на работающем сервере оно я думаю не прокатит... :(
...
Рейтинг: 0 / 0
17.03.2005, 14:48
    #32966045
serg08
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хватит ли лога
Тогда запусти delete на работающем.
И после того как он станет неработающим запустишь Select into.

А если без шуток то при удаление такого обьёма и при таком логе(нужно будет много транзакций) порциями клиенты всё равно могут подумать что он неработающий.

Втихаря останавливаешь сервер......
...
Рейтинг: 0 / 0
17.03.2005, 15:17
    #32966141
g613
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хватит ли лога
serg08
А если без шуток то при удаление такого обьёма и при таком логе(нужно будет много транзакций) порциями клиенты всё равно могут подумать что он неработающий.

Втихаря останавливаешь сервер......

...и огребаеш по полной от начальства. :)

Хотелось бы услышать таки что означает вариант предложенный Компостеровым...

А про то, что сервер будет казаться не работающим, я вот сомневаюсь.

Первый пост я писал уже после того как ту процедуру запустили, после 3 часов работы лог забился на гиг, после этого процесс тот отстрелили, сервер еще 3 часа делал ролбак...

Пользователи не сильно заметили тормазов...
...
Рейтинг: 0 / 0
18.03.2005, 07:42
    #32967253
Компостеров
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хватит ли лога
Лично мое мнение:

в таких случаях как у тебя, я бы удалял порционно, т.е. по 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
...
Рейтинг: 0 / 0
18.03.2005, 07:46
    #32967256
Компостеров
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хватит ли лога
Сорри за ошибки:

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
...
Рейтинг: 0 / 0
18.03.2005, 11:36
    #32967742
g613
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хватит ли лога
2 Компостеров :

Спасибо большоею

работает, только я убрал dump tran, так как есть процедура порога да и по крону каждые 30 мин транзакции один фиг чистим.
...
Рейтинг: 0 / 0
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Хватит ли лога / 15 сообщений из 15, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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