Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / очистка временных таблиц / 19 сообщений из 19, страница 1 из 1
21.03.2003, 14:32
    #32124674
Evgeniy146
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
очистка временных таблиц
В общем, такая проблема.
На очистку временной таблицы (delete from table_1) тратится довольно значительное время. Чтобы ускорить процесс, было решено пользоваться
оператором truncate (truncate table autotran.table_1). Естественно, поместив
его в процу, выполняющуюся в автономной транзакции (чтобы не происходил commit текущей транзакции). Всё бы хорошо, да сервер БД (Oracle 7.3 Enterprise Edition) при ее выполнении периодически падает со статусом 600 (Internal error, возникает по различным причинам...). Никто с подобным не сталкивался? Может, подскажете чего?
Текст процы:
PROCEDURE L_AUTONOMOUS_EXECUTE (
OperatorText IN VARCHAR)
AS
PRAGMA AUTONOMOUS_TRANSACTION;
except EXCEPTION;
BEGIN
EXECUTE IMMEDIATE OperatorText ;
EXCEPTION
WHEN except THEN
ROLLBACK;
END;
Входной параметр:
'truncate table autotran.table_1'
...
Рейтинг: 0 / 0
21.03.2003, 14:37
    #32124677
.dba
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
очистка временных таблиц
>Всё бы хорошо, да сервер БД (Oracle 7.3 Enterprise Edition) при ее выполнении
>периодически падает

А что 7.3 автономные транзакции и execute immediate поддерживает?
...
Рейтинг: 0 / 0
21.03.2003, 14:43
    #32124687
Evgeniy146
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
очистка временных таблиц
еще как поддерживает...
...
Рейтинг: 0 / 0
21.03.2003, 14:46
    #32124693
.dba
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
очистка временных таблиц
>еще как поддерживает

может и поддерживает фактически, но неофициально, со всеми вытекающими багами и последствиями (например, ORA 600)
...
Рейтинг: 0 / 0
21.03.2003, 14:56
    #32124707
Evgeniy146
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
очистка временных таблиц
Мдааа... :( Заказчика ведь фиг убедишь использовать более свежую версию - хотя бы восьмерку :( А есть другие способы почистить таблицу (более быстрые, чем delete), реализуемые без использования авт. транзакций и execute immediate?
...
Рейтинг: 0 / 0
21.03.2003, 15:01
    #32124716
.dba
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
очистка временных таблиц
>А есть другие способы почистить таблицу (более быстрые, чем delete),
>реализуемые без использования авт. транзакций и execute immediate?

Более быстрого способа нет, но можно попробовать создать таблицу с nologging. Тогда по идее должно быть быстрее, но не настолько быстро как truncate.

А что, без временной таблицы нельзя обойтись?
...
Рейтинг: 0 / 0
21.03.2003, 15:03
    #32124720
AI
AI
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
очистка временных таблиц
В 7 еще и nologging официально нет. Там все называется unrecoverable и вешается только на команду. На разделы базы - нет.
...
Рейтинг: 0 / 0
21.03.2003, 15:04
    #32124722
Evgeniy146
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
очистка временных таблиц
Без временных таблиц, к сожалению, нельзя... Отчет довольно нехилый, куча разных таблиц перебирается, много логики, частных случаев и т.п...
Насчет nologging - спасибо, попробую...
...
Рейтинг: 0 / 0
21.03.2003, 15:09
    #32124732
.dba
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
очистка временных таблиц
>В 7 еще и nologging официально нет. Там все называется unrecoverable и
>вешается только на команду. На разделы базы - нет

насчет того, что называется unrecoverable согласен (хотя, кажется и nologging тоже работает), а вот то, что только на команду - это не так. Вполне допустимо (официально) create table ... unrecoverable.
...
Рейтинг: 0 / 0
21.03.2003, 15:11
    #32124733
AI
AI
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
очистка временных таблиц
create table - это, разумеется, не команда...
...
Рейтинг: 0 / 0
21.03.2003, 15:14
    #32124736
.dba
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
очистка временных таблиц
да, еще не забудьте индексы перед этим удалить, если они есть на временной таблицы
...
Рейтинг: 0 / 0
21.03.2003, 15:17
    #32124743
.dba
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
очистка временных таблиц
>create table - это, разумеется, не команда...

не надо придираться к словам, я имел ввиду, что объект в базе данных можно сделать unrecoverable
...
Рейтинг: 0 / 0
21.03.2003, 15:20
    #32124746
Evgeniy146
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
очистка временных таблиц
еще раз thanks. а с какой версии железно поддерживаются автономные транзакции и ex. immed. ? Любая 8?
...
Рейтинг: 0 / 0
21.03.2003, 15:29
    #32124759
AI
AI
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
очистка временных таблиц
К сожалению, unrecoverable при создании таблицы означает только то, что строки из create table ... as select не будут журналироваться. Самой таблице вообще все равно - она просто содержит строки. Другое дело create tablespace ... nologging. Тогда оракул сам будет распознавать команды, которые не надо журналировать.

А автономные транзакции, временные таблицы и прочая хиромантия официально работает с 8.1.
...
Рейтинг: 0 / 0
21.03.2003, 15:39
    #32124779
softy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
очистка временных таблиц
Ну если ты делаешь чистку всей таблицы с помощью truncate почему бы тогда не drop table - сам же говоришь временная таблица.
Мне кажется самый быстрый способ.
...
Рейтинг: 0 / 0
21.03.2003, 16:26
    #32124839
Chira
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
очистка временных таблиц
у тебя действительно временная таблица?
используй
CREATE GLOBAL TEMPORARY TABLE
...............
ON COMMIT DELETE
...
Рейтинг: 0 / 0
21.03.2003, 16:43
    #32124857
softy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
очистка временных таблиц
"CREATE GLOBAL TEMPORARY TABLE "

Этого даже в 8.0.5 нет. А тут 7.3
...
Рейтинг: 0 / 0
21.03.2003, 17:20
    #32124899
Chira
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
очистка временных таблиц
Я подумал если человек используе EXECUTE IMMEDIATE, то должно и CREATE ... TEMPORARY тоже работать.
...
Рейтинг: 0 / 0
21.03.2003, 17:29
    #32124911
softy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
очистка временных таблиц
Он наверно на 7.3 патч поставил от 8i
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / очистка временных таблиц / 19 сообщений из 19, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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