powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Коллекции в функциях
17 сообщений из 17, страница 1 из 1
Коллекции в функциях
    #39308261
PsyDiamond
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Годная ли практика использовать функции, которые принимают, либо возвращают заполненные коллекции?
и как в этому случае происходит освобождение памяти? (dbms_session.free_unused_user_memory)
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
type Shod
IS
  record
  (...);
type ShodTable
IS
  TABLE OF Shod;
...
type ds
IS
  record
  (
    ts ShodTable, 
tr xxxTable,
tz yyyTable
...);
function f1(...) return ds;
procedure p1(DataSet in ds);
...
Рейтинг: 0 / 0
Коллекции в функциях
    #39308284
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PsyDiamondпамятиRTFM Subprogram Parameter Modes (FAQ)
...
Рейтинг: 0 / 0
Коллекции в функциях
    #39308313
PsyDiamond
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Elic, простите, это ответ на какой вопрос из тех что я задал?
...
Рейтинг: 0 / 0
Коллекции в функциях
    #39308330
PsyDiamondГодная ли практика использовать функции, которые принимают, либо возвращают заполненные коллекции?
Вполне себе практика.
PsyDiamondкак в этому случае происходит освобождение памяти
Вроде как ушел из блока видимости переменной, ну память и очистилась )
...
Рейтинг: 0 / 0
Коллекции в функциях
    #39308331
пробегал
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PsyDiamondElic, простите, это ответ на какой вопрос из тех что я задал?
это ответ на все ваши вопросы, вы сначала почитайте и подумайте, а потом поймете
...
Рейтинг: 0 / 0
Коллекции в функциях
    #39308340
НинадаНичегоЧиститьPsyDiamondкак в этому случае происходит освобождение памяти
Вроде как ушел из блока видимости переменной, ну память и очистилась )есть еще такой аспект, как переприсвоение в цикле. Но тогда вопрос касается любых динамически выделяемых данных, в том числе длинных строк.
...
Рейтинг: 0 / 0
Коллекции в функциях
    #39308344
PsyDiamond
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
пробегалPsyDiamondElic, простите, это ответ на какой вопрос из тех что я задал?
это ответ на все ваши вопросы, вы сначала почитайте и подумайте, а потом поймете

не прельщает меня практика возвращать данные через out параметры
если вы про то что я передаю тип по значению - тут согласен можно передать ссылку.
вопрос то в другом.
если я использую record состоящий из table of, то как происходит освобождение памяти? и как в этом случае хранятся данные - по значению или ссылкой? и прочее
...
Рейтинг: 0 / 0
Коллекции в функциях
    #39308353
коллектор мусораЕсть еще такой аспект, как переприсвоение в цикле.
Но тогда вопрос касается любых динамически выделяемых данных, в том числе длинных строк.
Хотите сказать, если в цикле присваивать разные значение например varchar2 переменной, будет отжираться память?
Да ну не, не верю )
Если в цикле динамически добавляем элементы в коллекцию, то само собой, но никакие фримемори все равно ж не нужны )
...
Рейтинг: 0 / 0
Коллекции в функциях
    #39308358
PsyDiamond,

по значению/ссылке это про "хранятся".
а проверить гипотезы несложно, проведя экскременты с засечкой времени и памяти на больших массивах.
и не забывать, что поведение может радикально меняться от уровня оптимизатора включения дебага.
...
Рейтинг: 0 / 0
Коллекции в функциях
    #39308366
PsyDiamond, там вроде фсьо написано: если добавишь NOCOPY, IN OUT будет по ссылке, по дефолту по значению )
Что именно и в какой момент намереваешься чистить, приведи пример очистки, вроде всегда само работало :)
...
Рейтинг: 0 / 0
Коллекции в функциях
    #39308392
пробегал
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PsyDiamondпробегалпропущено...

это ответ на все ваши вопросы, вы сначала почитайте и подумайте, а потом поймете

не прельщает меня практика возвращать данные через out параметры
если вы про то что я передаю тип по значению - тут согласен можно передать ссылку.
вопрос то в другом.
если я использую record состоящий из table of, то как происходит освобождение памяти? и как в этом случае хранятся данные - по значению или ссылкой? и прочее

Чистить в PL/SQL за собой особо не надо. Это делает за вас виртуальная машина PL/SQL и его внутренние правила удаления объектов.

Большие данные естественно не следует записывать в коллекции, для этого есть временные таблицы.
...
Рейтинг: 0 / 0
Коллекции в функциях
    #39308399
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть еще область жизни переменных/коллекций
Те, которые объявлены внутри процедур/функций понятно не живут больше одного вызова (call), соответственно, и память для них выделяется в PGA (даже в Shared server)
Но вот те которые объявлены в пакете за пределами процедур/функций сохраняют свое содержимое до конца сессии, хранятся в UGA и желательно не забывать их чистить и освобождать память
...
Рейтинг: 0 / 0
Коллекции в функциях
    #39308439
PsyDiamond
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вячеслав ЛюбомудровЕсть еще область жизни переменных/коллекций
Те, которые объявлены внутри процедур/функций понятно не живут больше одного вызова (call), соответственно, и память для них выделяется в PGA (даже в Shared server)
Но вот те которые объявлены в пакете за пределами процедур/функций сохраняют свое содержимое до конца сессии, хранятся в UGA и желательно не забывать их чистить и освобождать память

т.е. я использую в пакете
Код: plsql
1.
2.
function f1(...) return ds;
procedure p1(DataSet in ds);

то чистить не надо?
...
Рейтинг: 0 / 0
Коллекции в функциях
    #39308462
Фотография --Eugene--
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PsyDiamondчистить не надо?не надо
решайте задачи по мере их поступления
иначе утонете
...
Рейтинг: 0 / 0
Коллекции в функциях
    #39308468
PsyDiamond
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
благодарю за ответы
...
Рейтинг: 0 / 0
Коллекции в функциях
    #39308630
пробегал
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PsyDiamondблагодарю за ответы

Кстати, если вы уж озаботились очисткой коллекций, то прочитайте про свойство DELETE у коллекций.
...
Рейтинг: 0 / 0
Коллекции в функциях
    #39313095
wellvk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для ф-ции из package подойдет
Код: plsql
1.
PRAGMA SERIALLY_REUSABLE;


тынц
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Коллекции в функциях
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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