powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / ora01555 - SNAPSHOT TOO OLD
17 сообщений из 67, страница 3 из 3
ora01555 - SNAPSHOT TOO OLD
    #32184515
Фотография softy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
to cdk:
Можно создать параллельный способ расчёта, если выяснится что он выполняется в 200 раз быстрее, можно будет смело настаивать на получении премии за рацпредложение.
...
Рейтинг: 0 / 0
ora01555 - SNAPSHOT TOO OLD
    #32184572
Simon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2cdk:
интересно с чьим билингом ты работаешь:)
amdocs, cboss или петерсервис:)?

нахождение сумарного телефонного трафика по звонковым таблицам дурацкая мысль, если там десятки миллионов записей то даже если у тебя ora01555 не появится, времени на это уйдет довольно дофига
...
Рейтинг: 0 / 0
ora01555 - SNAPSHOT TOO OLD
    #32184577
Фотография softy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
to Simon:
Даже если сделать промежуточные таблицы, которые содержат суммы по нужным группам и периодически производить расчёт только по новым данным?
...
Рейтинг: 0 / 0
ora01555 - SNAPSHOT TOO OLD
    #32184582
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Absolutely agree with softbuilder. This is screaming for a materialized view.

SY.
...
Рейтинг: 0 / 0
ora01555 - SNAPSHOT TOO OLD
    #32184626
Simon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
там уже должны быть еще какие-нибудь уровни агрегации информации (т.е я бы на месте cdk обратился бы в техподдержку компании разработчика)

при закрытии счета никто как правило не лазит по звонковым таблицам, это ресурсоемко (для миллиона абонентов надо перелопатить несколько 10-ков миллионов записей) для любого сервака это смерть

на звонковых таблицах индексы даже не делают (делают только для партиционирования), с индексами инсерты туда проходят гораздо медленней
и они места на диске много занимают
...
Рейтинг: 0 / 0
ora01555 - SNAPSHOT TOO OLD
    #32184644
Фотография softy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да даже без партиций и материализованных вью можно по уму спроектировать систему.
Разделить информацию на оперативную и историческую.
Создать отдельно таблицы для только для суточной информации, каждый час скажем расчитывать, переносить её из суточной INSERT /*+APPEND */ .... в месячную итд.
...
Рейтинг: 0 / 0
ora01555 - SNAPSHOT TOO OLD
    #32184655
cdk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Simon
ни тот, ни другой, ни третий...
поддержка есть, они и предложили либо увеличить сегменты, либо отключить их на время

2 sotbuilder
таблицы ессно партиционные, индексы тоже есть на них, глобальные причем.
насчет снапшотов... биллинг оффлайновый, иногда приходится (причем в кратчайшие сроки) заново пересчитывать значительные объемы за прошлые периоды

ладно, вероятно всего пока ограничусь увеличением малых сегментов...
...
Рейтинг: 0 / 0
ora01555 - SNAPSHOT TOO OLD
    #32184823
Simon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 softbuilder:

примерно так народ и делает
звонковая информация в биллинге нужна только для того чтобы распечатать детализацию звонков клиента, для всех остальных целей она больше не нужна

и именно поэтому обращаться к ней дурацкая идея
...
Рейтинг: 0 / 0
ora01555 - SNAPSHOT TOO OLD
    #32184855
Angel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я плакалъ

2 Simon
>а мне кажется что никаких проблем не будет
>если на диске много места
>и админ правильно настроит ролбэк сегменты

Причем тут сериализуемые транзакции и RBS, если эта самая транзакция работает 15 часов и транзакционная активность высока, проблема в том, чтобы обеспечить ее выполнение и не получить ORA-08177: Can't serialize access for this transaction...
Это уже дизайн (и не тривиальный), а человек спрашивает как ему от 01555 избавиться. Не поленюсь скопировать с 1 страницы:
...
2. Выполнить следуюющее:
- создать сегменты отката (или изменить существующие) так, чтобы они могли достаточно авторасширяться (это вроде уже имеем);
- заблокировать каждый сегмент отката короткой транзакцией: set transaction use rollback segment ... (столько сеансов сколько RBS);
- запустить скрипт.
...

P.S.
(самому ломы писать)

Oracle Isolation Levels
Oracle provides three transaction isolation levels:

read committed

This is the default transaction isolation level. Each query executed by a transaction sees only data that was committed before the query (not the transaction) began. An Oracle query will never read dirty (uncommitted) data.
Because Oracle does not prevent other transactions from modifying the data read by a query, that data may be changed by other transactions between two executions of the query. Thus, a transaction that executes a given query twice may experience both nonrepeatable read and phantoms.

serializable transactions

Serializable transactions see only those changes that were committed at the time the transaction began, plus those changes made by the transaction itself through INSERT, UPDATE, and DELETE statements. Serializable transactions do not experience nonrepeatable reads or phantoms.

read-only
Read-only transactions see only those changes that were committed at the time the transaction began and do not allow INSERT, UPDATE, and DELETE statements.

Setting the Isolation Level
Application designers, application developers, and database administrators can choose appropriate isolation levels for different transactions, depending on the application and workload. You can set the isolation level of a transaction by using one of these commands at the beginning of a transaction:

SET TRANSACTION ISOLATION LEVEL READ COMMITTED;

SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;

SET TRANSACTION ISOLATION LEVEL READ ONLY;
...
Рейтинг: 0 / 0
ora01555 - SNAPSHOT TOO OLD
    #32184935
Фотография Oracle X-pert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pregde vsego, moi soboleznovaniya tem, kto ispol'zuet AMDOCS...

"..при закрытии счета никто как правило не лазит по звонковым таблицам,.."
Eshe kak lazyat!


"нахождение сумарного телефонного трафика по звонковым таблицам дурацкая мысль, если там десятки миллионов записей то даже если у тебя ora01555 не появится, времени на это уйдет довольно дофига..."
S etim mogno mnogo sporit'... Stoit zelogo topika!

V lubom sluchae, eto problema tol'ko logocheskaya..
...
Рейтинг: 0 / 0
ora01555 - SNAPSHOT TOO OLD
    #32184981
Simon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Angel

Выполнить следуюющее:
- создать сегменты отката (или изменить существующие) так, чтобы они могли достаточно авторасширяться (это вроде уже имеем);
- заблокировать каждый сегмент отката короткой транзакцией: set transaction use rollback segment ... (столько сеансов сколько RBS);
- запустить скрипт.


авторасширение для ролбэк сегментов не работает при выполнении селектов
лучше всего чтобы все ролбэк сегменты были одинакового размера и их было много

с сериализацией я согласен-от нее пользы не будет, надо всегда использовать тот уровень изоляции который нужен по логике


2Oracle X-pert

AMDOCS лучший биллинг в мире, там есть свои глюки (я ни там ни в вымпелкоме не работаю и никогда не работал, но то что он лучший это факт)

если Вы связанны с биллингом и ваша система лазит по звонковым таблицам для того чтобы при пакетной генерации закрыть счет, то большинство систем конкурентов будут быстрей, так как они этого не делают (если только не надо показать детализацию звонков)

p.s. мне кажется тема разрослать и пользы от нее никакой
...
Рейтинг: 0 / 0
ora01555 - SNAPSHOT TOO OLD
    #32184991
Violina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
to Angel

Странно, а у меня вот так не работает

Код: plaintext
1.
2.
3.
4.
SQL> SET TRANSACTION ISOLATION LEVEL READ ONLY;
SET TRANSACTION ISOLATION LEVEL READ ONLY
                                     *
ERROR at line  1 :
ORA- 02179 : valid options: ISOLATION LEVEL { SERIALIZABLE | READ COMMITTED }


а только вот так

Код: plaintext
1.
2.
SQL> set transaction read only;

Transaction set.


Может это только для девятки?

И еще вот такая штука

Код: plaintext
1.
2.
3.
4.
SQL> SET TRANSACTION ISOLATION LEVEL serializable;
SET TRANSACTION ISOLATION LEVEL serializable
*
ERROR at line  1 :
ORA- 08178 : illegal SERIALIZABLE clause specified for user INTERNAL


Что для sys нельзя работать в режиме serializable?
...
Рейтинг: 0 / 0
ora01555 - SNAPSHOT TOO OLD
    #32185048
Фотография Oracle X-pert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Simon ( Gal', chto your mail not be reached)

Tvoe soobshenie "AMDOCS лучший биллинг в мире" menya radyet!
No v tom-to i delo, chto ya byl Rykovoditelem proektnoi gryppu etoi-to sistemy...
Spasibo za kompliment i gelay yspexov!
( A vse-taki, v AMDOCS - ne samaya optimal'naya sistema..)
...
Рейтинг: 0 / 0
ora01555 - SNAPSHOT TOO OLD
    #32185051
Angel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Simon

>авторасширение для ролбэк сегментов не работает при выполнении селектов
>лучше всего чтобы все ролбэк сегменты были одинакового размера и их было много

:) Спасибо, что объяснил. Непонятно только зачем...

На счет второго высказывания, нельзя ли поточнее: какого размера и сколько (ну сколько это даже и не важно для конкретной темы) - поделись опытом

2Violina

Я не верю, что у тебя нет доки :)
...
Рейтинг: 0 / 0
ora01555 - SNAPSHOT TOO OLD
    #32185067
Violina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
to Angel

Дока есть. Про уровни изоляции я читала, но про

illegal SERIALIZABLE clause specified for user INTERNAL

ничего не говорилось.

Вы привели пример

SET TRANSACTION ISOLATION LEVEL READ COMMITTED;
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
SET TRANSACTION ISOLATION LEVEL READ ONLY;

последний у меня не работает, вчера с этим столкнулась. Вот и хотелось узнать SET TRANSACTION ISOLATION LEVEL READ ONLY в принципе не верная команда или просто в 9 вместо нее надо использовать set transaction read only;
...
Рейтинг: 0 / 0
ora01555 - SNAPSHOT TOO OLD
    #32185098
Angel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Violina

Пример для 8i

Из доки по 9i:

ORA-08178 illegal SERIALIZABLE clause specified for user INTERNAL
Cause: Serializable mode is not supported for user INTERNAL.
Action: Reconnect as another user and retry the SET TRANSACTION command.
...
Рейтинг: 0 / 0
ora01555 - SNAPSHOT TOO OLD
    #32185117
Violina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
to Angel

Спасибо за пояснения!

PS
У меня 8 ки нет, использую девятку, поэтому иногда задаю такие вопросы. Мне это важно знать для подготовке к экзаменам.
...
Рейтинг: 0 / 0
17 сообщений из 67, страница 3 из 3
Форумы / Oracle [игнор отключен] [закрыт для гостей] / ora01555 - SNAPSHOT TOO OLD
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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