powered by simpleCommunicator - 2.0.44     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / not allocate shared pool
14 сообщений из 14, страница 1 из 1
not allocate shared pool
    #32068495
312213123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Приложение создает запрос следующего вида
select * from <TABLE_NAME> where
division_id in (1,2,3,4,5,6,7,8,9,10.....) and
agregat_id in (1,1,2,3,4,56,7,8,98...)
Если значений в множествах указано много, то Oracle соответственно пишет такое сообщение. Ну вообщем понятно почему, заполняется текущий буфер. Расширить то я его могу, но по мере дальнейшей эксплуатации хначений этих множеств будет ещё больше. Так что когда-нибудь это опять повторится.
Может кто сталкивался, как вообще Oracle отрабатывает такие вещи. Не проще было заменить это множество на перечисление "OR" ?
...
Рейтинг: 0 / 0
not allocate shared pool
    #32068496
.dba
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. какой номер ошибки?
2. какая версия оракла?
3. чему равен параметер shared_pool_reserved_size?
...
Рейтинг: 0 / 0
not allocate shared pool
    #32068497
Фотография mahoune
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А может создать таблички и делать
Код: plaintext
1.
2.
select * from <TABLE_NAME> where 
division_id in (select id from dev_list) and 
agregat_id in (select id from agr_list) 
...
Рейтинг: 0 / 0
not allocate shared pool
    #32068502
Фотография softy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"Может кто сталкивался, как вообще Oracle отрабатывает такие вещи. Не проще было заменить это множество на перечисление "OR" ?"

Не имеет смысла, потомучто оптимизатор Oracle сам делает из "IN()" эквивалентное преобразование в "OR .... OR..." при разборе
...
Рейтинг: 0 / 0
not allocate shared pool
    #32068504
123123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shared Pool 64 M
Oracle 9
Номера ошибки нет просто сообщение в среде PL/SQL Developera.

А задача такая.
Есть иерархические справочники предприятий и агрегатов.
Т.е. ООО Расвет
121212
121212
121212
23423
232323

и агрегаты
НАСОСЫ
34234234
234324324
324234
34
КОМПРЕССОРЫ
45345
43545
435
45345

Существует третья таблица наличия где утрированно представлено наличие агрегатов в каждом предприятии.
Эта табоица разворачивается в представление, связывающее эти три таблички.

Пользователь хочет просмотреть весь список например всех насосов на всех предприятиях, которые входят в ООО Рассвет. Т.е. каких-то таблиц создавать я думаю не надо.
...
Рейтинг: 0 / 0
not allocate shared pool
    #32068507
Фотография softy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ты сделай по человечески, нормализуй свои таблицы.
Эта идиотская манера, данные запихивать в один столбец.
...
Рейтинг: 0 / 0
not allocate shared pool
    #32068509
.dba
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Shared Pool 64 M

я спрашивал shared_pool_reserved_size

>Oracle 9

я имел ввиду точный номер с патчами.

>Номера ошибки нет просто сообщение в среде PL/SQL
>Developera.

такого не бывает.
...
Рейтинг: 0 / 0
not allocate shared pool
    #32068510
rdssdg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sd
...
Рейтинг: 0 / 0
not allocate shared pool
    #32068590
vskv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати, больше 256 элементов в IN Оракул тебе перечислить не даст...
...
Рейтинг: 0 / 0
not allocate shared pool
    #32068683
.dba
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Кстати, больше 256 элементов в IN Оракул тебе
>перечислить не даст...

когда я на эти грабли наступал с 8.0, то лимит был кажется 1000
...
Рейтинг: 0 / 0
not allocate shared pool
    #32068695
Фотография shane54
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> когда я на эти грабли наступал с 8.0, то лимит был кажется 1000

Лимит 1000 - у выбираемых полей в select'е.
...
Рейтинг: 0 / 0
not allocate shared pool
    #32069119
.dba
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 shane54
>Лимит 1000 - у выбираемых полей в select'е.
2 vskv
>Кстати, больше 256 элементов в IN Оракул тебе
>перечислить не даст...

если читать описание ошибки
Код: plaintext
1.
2.
3.
4.
ORA- 01795  maximum number of expressions in a list is  1000 

Cause: More than  254  columns or expressions were specified in a list. 

Action: Remove some of the expressions from the list. 

то да, может создасться такое впечатление, но если реально проверить, то действительно можно до 1000.
Вот мои платформы, где я проверял (1000 элементов в in кляузе):
8.1.7/Linux
8.1.7/Tru64
8.0.5/Win
...
Рейтинг: 0 / 0
not allocate shared pool
    #32069276
vskv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2.dba: Я на эти грабли наступал на 7.3 сервере. И там, по моему, лимит действительно был в районе 254 элемента.

В любом случае, такой большой список уже повод для создания временной таблицы для элементов списка.
...
Рейтинг: 0 / 0
not allocate shared pool
    #32069300
SAA_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
A kogda moj kollega ANDREI nastupil na eti grabli (kol-vo elementov v IN), to bilo ogranichenie 1000.

To Shane54: Your comment not for current topic.
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / not allocate shared pool
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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