Гость
Форумы / Oracle [игнор отключен] [закрыт для гостей] / not allocate shared pool / 14 сообщений из 14, страница 1 из 1
15.11.2002, 17:29
    #32068495
312213123
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
not allocate shared pool
Приложение создает запрос следующего вида
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
15.11.2002, 17:33
    #32068496
.dba
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
not allocate shared pool
1. какой номер ошибки?
2. какая версия оракла?
3. чему равен параметер shared_pool_reserved_size?
...
Рейтинг: 0 / 0
15.11.2002, 17:34
    #32068497
mahoune
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
not allocate shared pool
А может создать таблички и делать
Код: 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
15.11.2002, 17:40
    #32068502
softy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
not allocate shared pool
"Может кто сталкивался, как вообще Oracle отрабатывает такие вещи. Не проще было заменить это множество на перечисление "OR" ?"

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

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

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

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

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

я спрашивал shared_pool_reserved_size

>Oracle 9

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

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

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

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

Лимит 1000 - у выбираемых полей в select'е.
...
Рейтинг: 0 / 0
18.11.2002, 16:31
    #32069119
.dba
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
not allocate shared pool
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
18.11.2002, 18:53
    #32069276
vskv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
not allocate shared pool
2.dba: Я на эти грабли наступал на 7.3 сервере. И там, по моему, лимит действительно был в районе 254 элемента.

В любом случае, такой большой список уже повод для создания временной таблицы для элементов списка.
...
Рейтинг: 0 / 0
18.11.2002, 20:19
    #32069300
SAA_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
not allocate shared pool
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
Форумы / Oracle [игнор отключен] [закрыт для гостей] / not allocate shared pool / 14 сообщений из 14, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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