|
|
|
очистка временных таблиц
|
|||
|---|---|---|---|
|
#18+
В общем, такая проблема. На очистку временной таблицы (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' ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2003, 14:32 |
|
||
|
очистка временных таблиц
|
|||
|---|---|---|---|
|
#18+
>Всё бы хорошо, да сервер БД (Oracle 7.3 Enterprise Edition) при ее выполнении >периодически падает А что 7.3 автономные транзакции и execute immediate поддерживает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2003, 14:37 |
|
||
|
очистка временных таблиц
|
|||
|---|---|---|---|
|
#18+
еще как поддерживает... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2003, 14:43 |
|
||
|
очистка временных таблиц
|
|||
|---|---|---|---|
|
#18+
>еще как поддерживает может и поддерживает фактически, но неофициально, со всеми вытекающими багами и последствиями (например, ORA 600) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2003, 14:46 |
|
||
|
очистка временных таблиц
|
|||
|---|---|---|---|
|
#18+
Мдааа... :( Заказчика ведь фиг убедишь использовать более свежую версию - хотя бы восьмерку :( А есть другие способы почистить таблицу (более быстрые, чем delete), реализуемые без использования авт. транзакций и execute immediate? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2003, 14:56 |
|
||
|
очистка временных таблиц
|
|||
|---|---|---|---|
|
#18+
>А есть другие способы почистить таблицу (более быстрые, чем delete), >реализуемые без использования авт. транзакций и execute immediate? Более быстрого способа нет, но можно попробовать создать таблицу с nologging. Тогда по идее должно быть быстрее, но не настолько быстро как truncate. А что, без временной таблицы нельзя обойтись? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2003, 15:01 |
|
||
|
очистка временных таблиц
|
|||
|---|---|---|---|
|
#18+
В 7 еще и nologging официально нет. Там все называется unrecoverable и вешается только на команду. На разделы базы - нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2003, 15:03 |
|
||
|
очистка временных таблиц
|
|||
|---|---|---|---|
|
#18+
Без временных таблиц, к сожалению, нельзя... Отчет довольно нехилый, куча разных таблиц перебирается, много логики, частных случаев и т.п... Насчет nologging - спасибо, попробую... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2003, 15:04 |
|
||
|
очистка временных таблиц
|
|||
|---|---|---|---|
|
#18+
>В 7 еще и nologging официально нет. Там все называется unrecoverable и >вешается только на команду. На разделы базы - нет насчет того, что называется unrecoverable согласен (хотя, кажется и nologging тоже работает), а вот то, что только на команду - это не так. Вполне допустимо (официально) create table ... unrecoverable. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2003, 15:09 |
|
||
|
очистка временных таблиц
|
|||
|---|---|---|---|
|
#18+
create table - это, разумеется, не команда... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2003, 15:11 |
|
||
|
очистка временных таблиц
|
|||
|---|---|---|---|
|
#18+
да, еще не забудьте индексы перед этим удалить, если они есть на временной таблицы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2003, 15:14 |
|
||
|
очистка временных таблиц
|
|||
|---|---|---|---|
|
#18+
>create table - это, разумеется, не команда... не надо придираться к словам, я имел ввиду, что объект в базе данных можно сделать unrecoverable ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2003, 15:17 |
|
||
|
очистка временных таблиц
|
|||
|---|---|---|---|
|
#18+
еще раз thanks. а с какой версии железно поддерживаются автономные транзакции и ex. immed. ? Любая 8? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2003, 15:20 |
|
||
|
очистка временных таблиц
|
|||
|---|---|---|---|
|
#18+
К сожалению, unrecoverable при создании таблицы означает только то, что строки из create table ... as select не будут журналироваться. Самой таблице вообще все равно - она просто содержит строки. Другое дело create tablespace ... nologging. Тогда оракул сам будет распознавать команды, которые не надо журналировать. А автономные транзакции, временные таблицы и прочая хиромантия официально работает с 8.1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2003, 15:29 |
|
||
|
очистка временных таблиц
|
|||
|---|---|---|---|
|
#18+
Ну если ты делаешь чистку всей таблицы с помощью truncate почему бы тогда не drop table - сам же говоришь временная таблица. Мне кажется самый быстрый способ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2003, 15:39 |
|
||
|
очистка временных таблиц
|
|||
|---|---|---|---|
|
#18+
у тебя действительно временная таблица? используй CREATE GLOBAL TEMPORARY TABLE ............... ON COMMIT DELETE ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2003, 16:26 |
|
||
|
очистка временных таблиц
|
|||
|---|---|---|---|
|
#18+
"CREATE GLOBAL TEMPORARY TABLE " Этого даже в 8.0.5 нет. А тут 7.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2003, 16:43 |
|
||
|
очистка временных таблиц
|
|||
|---|---|---|---|
|
#18+
Я подумал если человек используе EXECUTE IMMEDIATE, то должно и CREATE ... TEMPORARY тоже работать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2003, 17:20 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=32124899&tid=1991367]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
147ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
64ms |
get tp. blocked users: |
2ms |
| others: | 243ms |
| total: | 501ms |

| 0 / 0 |
