powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Temp пухнет - > нет места на диске
62 сообщений из 62, показаны все 3 страниц
Temp пухнет - > нет места на диске
    #32180259
Kate_new
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
При запуске процедуры, в которой 8 запросов, после выполнения каждого увеличивается temp, раньше он равномерно распухал и вся процедура выполнялась.
А вот в этот раз уже после первого запроса сильно распух, да так, что

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Begin : 09 -JUN- 03   15 : 28 : 04 
After PAR= 1  : 09 -JUN- 03   19 : 45 : 35 
begin
*
ERROR at line  1 :
ORA- 19502 : write error on file  "E:\ORACLE\ORADATA\DATA\TEMP02.DBF" , blockno  575894  (blocksize= 2048 )
ORA- 27072 : skgfdisp: I/O error
OSD- 04008 : WriteFile() failure, unable to write to file
O/S-Error: (OS  112 ) There is not enough space on the disk.
ORA- 06512 : at  "PERSON.FIND_NEW_ALL" , line  73 
ORA- 06512 : at line  2 


Размер temp02.dbf 500M, распухает до 1000M
Temp -permanent
Но было создано еще пространство temp2 размером 1000M, но на другом диске M и temporary EXTENT MANAGEMENT LOCAL UNIFORM SIZE 1M

Не могу понять почему он пухнет и почему после создания temp2 распух так быстро и с таким эффектом.
Подскажите, пожалуйста...

(8.1.5.0.0 под NT 4.0)
...
Рейтинг: 0 / 0
Temp пухнет - > нет места на диске
    #32180272
Angel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Оптимально - чтобы совсем не было сортировок.
Желательно - чтобы сортировки производились в памяти.
Допустимо - чтобы не возникало подобных ситуаций.

Очевидно, проблема в SQL.
...
Рейтинг: 0 / 0
Temp пухнет - > нет места на диске
    #32180284
Violina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вроде бы уже эта проблема уже обсуждалась, что для каждой операции создавались слишком большие экстенты, котоые однако использовались лишь незначительно.

Интересно было бы посмотреть на полный текст команд создания этих temp. tablespaces. Их в студию?!
...
Рейтинг: 0 / 0
Temp пухнет - > нет места на диске
    #32180307
Roman_M
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> Очевидно, проблема в SQL

Скорее всего. Нужно бы посмотреть планы выполнения запросов и понять, почему столько данных летит в темп. Возможно там sort-merge join для больших таблиц, что можно попробовать вылечить. Вот если там order by с таким критерием, что по нему нельзя создать индекс - тогда тяжелее.
Ну и еще туда могут данные global temporary таблиц попадать, но это как раз всегда явно видно из SQL.
...
Рейтинг: 0 / 0
Temp пухнет - > нет места на диске
    #32180310
Kate_new
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
CREATE TEMPORARY TABLESPACE TEMP2 TEMPFILE
'M:\ORACLE\ORADATA\DATA\TEMP2.DBF' SIZE 1000M
EXTENT MANAGEMENT LOCAL UNIFORM SIZE 1M;

а вот для temp сказать не могу, создавалось задолго до меня, но
он permanent extents managed in the dictionary (не надо только за это меня сейчас ругать :-()
initial size 10 Kb
next size 10 Kb
minimum size 0
Increment Size by 50% (наверное это неправильно?, но ранее работало)
minimum Number 1

Maximum number
value 121
...
Рейтинг: 0 / 0
Temp пухнет - > нет места на диске
    #32180316
Фотография Eter Panji
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А пухнуть он начал не после того как SORT_AREA_SIZE уменьшили.
Был такая рекомендация где-то ниже.
В общем действительно, надо что то подравить в "кулинарном техникуме" - приложении
...
Рейтинг: 0 / 0
Temp пухнет - > нет места на диске
    #32180330
Violina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как я поняла, пухнет temp а не temp2

А у temp

initial size 10 Kb
next size 10 Kb
Increment Size by 50% (наверное это неправильно?, но ранее работало)

Может в этом причина, next size 10 Kb маленький, так что необходимость добавлять экстенты возникает часто. А поскольку каждый слеюущий экстент больше на 50% предыдущего, то понятно, почему пухнет.

to Eter

А пухнуть он начал не после того как SORT_AREA_SIZE уменьшили.

Это ведь потому, что из за маленького размера, Оракл стал вынужден использовать диск для осуществления сортировки?
...
Рейтинг: 0 / 0
Temp пухнет - > нет места на диске
    #32180334
Kate_new
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
да, была такая рекомендация
но я устала от экспериментов с этим параметром и просто вернула все на свои места, как это было раньше(заменила init.ora старым) (тогда медленнее, но работало), только temp2 не стала удалять
но вот появилась такая неприятность с распухшим temp-ом
...
полгода эта несчастная процедура выполнялась, а сейчас temp вдруг распух сразу, с такими печальными последствиями :-(

вообще мне моя работа на оракл напоминают одну хорошую фразу - не трогай технику и она тебя не подведет :-)
...
Рейтинг: 0 / 0
Temp пухнет - > нет места на диске
    #32180348
Violina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
to Kate_new

А создать клон и поэкспериментировать не получиться?

не трогай технику и она тебя не подведет

Для Оракл это не так, поэтому и существует ярко выраженная профессия DBA:-)

полгода эта несчастная процедура выполнялась, а сейчас temp вдруг распух сразу, с такими печальными последствиями

база же живет, постоянно меняется. возможно объем данных достиг критического уровня, при котором и начали возникать такие негативные эффекты. Вот здесь то и нужен DBA. Вообще те кто решают серьезно завязываться на Оракл но отказываются от профессиональных DBA, идут на очень большой риск.
...
Рейтинг: 0 / 0
Temp пухнет - > нет места на диске
    #32180355
Vladimirgs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Народ, а я думаю дело не в бобине.... Посмотри скорее всего просто увеличились объемы выборок и соотвественно сортировок, а Sort_Area как ты говоришь маленький....а может быть у таблспейса чудесным образом пропала галочка online temporary и при отрыве юзера не происходит очистка....а еще может быть что какой то из ваших программистов наструячил туда индексов....
...
Рейтинг: 0 / 0
Temp пухнет - > нет места на диске
    #32180356
Фотография softy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
to Kate_new:
"Но было создано еще пространство temp2 размером 1000M, но на другом диске M и temporary EXTENT MANAGEMENT LOCAL UNIFORM SIZE 1M

Не могу понять почему он пухнет и почему после создания temp2 распух так быстро и с таким эффектом.
Подскажите, пожалуйста... "

Можно еще бесконечное множество создавать таких временных областей, как
Код: plaintext
1.
2.
3.
CREATE TEMPORARY TABLESPACE TEMP2 TEMPFILE 
'M:\ORACLE\ORADATA\DATA\TEMP2.DBF' SIZE 1000M 
EXTENT MANAGEMENT LOCAL UNIFORM SIZE 1M; 


Но пользователь будет использовать только то которое ему назначено как TEMPORARY DEFAULT.
...
Рейтинг: 0 / 0
Temp пухнет - > нет места на диске
    #32180357
Kate_new
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Все это печально, потому что
1) А создать клон и поэкспериментировать не получиться?
нет возможности, не на чем
2) Вообще те кто решают серьезно завязываться на Оракл но отказываются от профессиональных DBA, идут на очень большой риск.
не по своей воле :-(
...
Рейтинг: 0 / 0
Temp пухнет - > нет места на диске
    #32180363
Vladimirgs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а softbuilder - то прав....
...
Рейтинг: 0 / 0
Temp пухнет - > нет места на диске
    #32180367
Kate_new
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 softbuilder@inbox.ru

ну вот, но я же написала
alter user person temporary tablespace TEMP2 или это не влияет?

а нельзя заставить его использовать еще один temp?
...
Рейтинг: 0 / 0
Temp пухнет - > нет места на диске
    #32180370
Violina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
to Kate_new

А может в приложении в запросах есть явное указание что надо использовать пространство temp для сортировки?
...
Рейтинг: 0 / 0
Temp пухнет - > нет места на диске
    #32180374
Kate_new
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 Violina
нет такого, я бы до такого не додумалась :-)
...
Рейтинг: 0 / 0
Temp пухнет - > нет места на диске
    #32180375
Фотография Eter Panji
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Согласен с Violina
next size 1 Mb
Increment Size by 0%

А какой нынче sort_area_size?
и был такой параметр optimizer_mode, какое у него значение.

Есть быль поменять его на RULE может быть будет хорошо.
Но это не рекомендация это тема для обсуждения.

У вас явно криво написаное приложение. Оно рассчитано на небольшие объемы базы и (см рекомендованные объем sort_area_size) мощные сервера.

И опять таки как сказала Violina, вызовите НАСТОЯЩЕГО DBA, чтобы вам систему хотя бы заставил крутится оптимально. У него на это уйдет время зато потом вы сможете (если ничего не произойдет)жить некоторое время (ну полгода) долго и счастливо. У вас же нет сверх высоких требований к системе, если вы можете позволить системе выполнять какие-то операции по 8 часов.
...
Рейтинг: 0 / 0
Temp пухнет - > нет места на диске
    #32180381
Violina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нет такого, я бы до такого не додумалась :-)

Так что приложение ты пишешь/поддерживаешь? Явное указание что надо использовать пространство temp для сортировки задается в тексте запроса. Если не это, Тогда я не понимаю почему несмотря на alter user person temporary tablespace TEMP2 оракл использует temp.
...
Рейтинг: 0 / 0
Temp пухнет - > нет места на диске
    #32180382
Kate_new
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 Eter Panji

Rule не катит , проверено временем(причем довольно большим временем)

Вы так насели на меня из-за DBA, ну а если нет возможности, это ведь не от меня зависит
...
Рейтинг: 0 / 0
Temp пухнет - > нет места на диске
    #32180396
Фотография Eter Panji
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Процедура может выполняться под аккаунтом создателя.
И здесь можно получить что пользователь указал один temp а используется другой.
Хотя здесь по-моему это не в тему.
...
Рейтинг: 0 / 0
Temp пухнет - > нет места на диске
    #32180402
Kate_new
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 Violina

Так что приложение ты пишешь/поддерживаешь?

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

Явное указание что надо использовать пространство temp для сортировки задается в тексте запроса

А как? Что-то я в хинтах поискала и не нашла, может я не там смотрю?
у меня 8.1.5.0.0.
...
Рейтинг: 0 / 0
Temp пухнет - > нет места на диске
    #32180403
Фотография Eter Panji
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
меня вот всегда занимал вопрос
зачем явно закрывать курсоры
если они по завершении сессии всё равно очищаются.
Может быть это является причиной того что пухнет temp
...
Рейтинг: 0 / 0
Temp пухнет - > нет места на диске
    #32180404
Фотография softy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
to Violina:

"А может в приложении в запросах есть явное указание что надо использовать пространство temp для сортировки?"

Можно узнать, как это делается?
...
Рейтинг: 0 / 0
Temp пухнет - > нет места на диске
    #32180409
Kate_new
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 Eter Panji
нет никакого приложения - 8 запросов и все
insert ... select
commit;
insert ... select
commit;
и т.д.

2 softbuilder@inbox.ru

я же написала
alter user person temporary tablespace TEMP2 или это не влияет?

а нельзя заставить его использовать еще один temp?
...
Рейтинг: 0 / 0
Temp пухнет - > нет места на диске
    #32180421
Фотография softy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
to Kate_new:

Согласно вашему повествованию:
Код: plaintext
1.
2.
3.
4.
Размер temp02.dbf 500M, распухает до 1000M 
Temp -permanent 
Но было создано еще пространство temp2 размером 1000M, но на другом диске
 M и temporary EXTENT MANAGEMENT LOCAL UNIFORM SIZE 1M 


temp02.dbf распух у вас до 1000M еще до создания temp2.

Потом, что означает фразы "Temp -permanent ". Что у вас область temp перманентная?
Для чего вы используете перманентную область для временных сегментов?

Уже не первый топик ваш вижу в форуме и все они отличаются запутаннностью излагаемой проблемы, тем что вы сам и не понимаете что делаете, делаете почти механически не вникая в суть.
Мне кажется при таком подходе вам ни форум никто еще не поможет.
...
Рейтинг: 0 / 0
Temp пухнет - > нет места на диске
    #32180425
Фотография Eter Panji
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Во первых можно подумать о BULK пусть меня поправят товарищи.
Во вторых
INSERT INTO SELECT я представляю так что
считывается выборка из первой таблицы
потом она формируется в памяти и ставится в соответствие полям
новой таблицы, а затем делается инсерт.

В своей практике я сталкивался с вещами когда явное разбиение одного запроса на несколько более мелких давало выигрыш в производительности.
Может быть из 8 можно сделать 80 с коммитом после каждого
тогда и нагрузка на редологи будет меньше и памяти будет затребовано меньше.

И подумать чтобы в select в join не было HASH & MERGE

Есть еще INSERT APPEND тоже должен помочь если диска не жалко и операций удаления почти нет.

Да хотелось бы STORAGE параметры входящей таблицы.
...
Рейтинг: 0 / 0
Temp пухнет - > нет места на диске
    #32180458
Violina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
to softbuilder

Можно узнать, как это делается?

Уже из вопроса понятно, что я по видимому прогнала:-) так и оказалось:-) Жутко извиняюсь, я была уверена что это возможно по принципу как с явным указанием RBS для транзакции.

Спасибо за поправку!
...
Рейтинг: 0 / 0
Temp пухнет - > нет места на диске
    #32180467
Фотография softy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
to Violina:

Нет, ну почему-же? :) А может можно. Просто я не помню такого.

Может быть ты обладаешь тайным знанием, а я нет. Может в 9i такое появилось, ты же у нас спец по 9i, как я понял.
...
Рейтинг: 0 / 0
Temp пухнет - > нет места на диске
    #32180483
Violina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
to softbuilder

Не подкалывай, а:-) Я же только учусь, пока что добросовестно прочитала Concepts и Administrator's guide по 9i, что мне теперь очень помогает при чтении продвинутых книг.

Я когда не уверена, стараюсь не выдвигать предложения, но вот когда абсолютно уверена в чем то, что однако не правильно, тогда увы - со спокойной душой пишу чушь. Благо есть softbuilder, который ее на корню пресекает:-)

Одно утешает, не я одна грешу этим:-)
...
Рейтинг: 0 / 0
Temp пухнет - > нет места на диске
    #32180498
Фотография softy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
to Violina:

Я не подкалываю, честное слово.

А знать об Oracle всё - это невозможно. Если где-нибудь, когда-нибудь увидишь человека, который скажет что он знает об Oracle всё - можешь, гнать его в шею.
...
Рейтинг: 0 / 0
Temp пухнет - > нет места на диске
    #32180499
Kate_new
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 softbuilder@inbox.ru
а Вы просто не можете ответить, как заставить использовать еще один темп?
...
Рейтинг: 0 / 0
Temp пухнет - > нет места на диске
    #32180511
Violina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
to all

Как можно узнать есть ли у базы DEFAULT TEMPORARY TABLESPACE, назначенный командой

ALTER DATABASE DEFAULT TEMPORARY TABLESPACE temp_ts;
...
Рейтинг: 0 / 0
Temp пухнет - > нет места на диске
    #32180515
Angel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добавить еще файл (1,2,3, ...) к ТП temp02 (сколько найдете места на разных дисках) и задать им сразу необходимый и окончательный (максимальный) размер. Если не хватит, прикупить еще дисков - они сейчас достаточно дешевы, и рано или поздно эти 8 запросов выполнятся!
...
Рейтинг: 0 / 0
Temp пухнет - > нет места на диске
    #32180528
Angel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У Kate_new 8.1.5.
...
Рейтинг: 0 / 0
Temp пухнет - > нет места на диске
    #32180531
Фотография softy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
to Kate_new:

Как можно вам помочь, если вы толком не можете обьяснить что вам нужно?

Попытаюсь понять: у вас есть временная табличная область и вам не хватает её, вы хотите увеличть её размер? Если это так, тогда так:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
create temporary tablespace temp_loc
 tempfile '/oracle8i/oradata/ORCL/temp_loc1.ora' size 20M autoextend on next 5M maxsize 100M
 extent management local uniform size 1M;

 -- Если недостаточно места, то нужно добавить к сущуствующей таб. области дополнительный файл.
 
alter tablespace temp_loc add tempfile 
 '/oracle8i/oradata/ORCL/temp_loc2.ora' size 20M autoextend on next 5M maxsize 100M;

SQL> select tablespace_name, file_id, file_name, maxbytes from dba_temp_files;

TABLESPACE_NAME                   FILE_ID FILE_NAME                                            MAXBYTES
 ------------------------------ ---------- -------------------------------------------------- ----------
 
TEMP_LOC                                 1  /oracle8i/oradata/ORCL/temp_loc1.ora                 104857600 
TEMP_LOC                                 2  /oracle8i/oradata/ORCL/temp_loc2.ora                 104857600 
...
Рейтинг: 0 / 0
Temp пухнет - > нет места на диске
    #32180534
Angel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Violina
Или это был вопрос ?

SELECT * FROM DATABASE_PROPERTIES WHERE property_name = 'DEFAULT_TEMP_TABLESPACE'
...
Рейтинг: 0 / 0
Temp пухнет - > нет места на диске
    #32180535
Violina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Жаль конечно, что решения не нашли, тема была бы очень информативна и поучительна. Может temp стал сильно фрагментирован и поэтому стал распухать вместо использования имеющегося пространства?

to Experts

Как вы смотрите на вариант пересоздания табл. пространства temp? Там ведь нет критических объектов?

to Kate_new

А файл E:\ORACLE\ORADATA\DATA\TEMP02.DBF принадлежит temp или temp2?
...
Рейтинг: 0 / 0
Temp пухнет - > нет места на диске
    #32180541
Kate_new
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 Violina
temp02 файл temp (у него два файла: temp01,temp02)
...
Рейтинг: 0 / 0
Temp пухнет - > нет места на диске
    #32180545
Фотография softy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
to Violina:

"Как можно узнать есть ли у базы DEFAULT TEMPORARY TABLESPACE, назначенный командой"

Вообще когда когда при создании юзера не указывается ни DEFAULT TABLESPACE ни TEMPORARY TABLESPACE, то по умолчанию используется SYSTEM.

Узнать же как назначаны области юзерам можно из dba_users:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
select USERNAME, DEFAULT_TABLESPACE,  TEMPORARY_TABLESPACE from dba_users;

SQLWKS> select USERNAME, DEFAULT_TABLESPACE,  TEMPORARY_TABLESPACE from dba_users;
USERNAME                       DEFAULT_TABLESPACE             TEMPORARY_TABLESPACE          
 ------------------------------ ------------------------------ ------------------------------
 
SYS                            SYSTEM                         TEMPORARY                     
SYSTEM                         USR                            TEMPORARY                     
OUTLN                          SYSTEM                         TEMPORARY                     
DBSNMP                         SYSTEM                         TEMPORARY                     
NEW_TEST                       USR                            TEMPORARY                     
REPADMIN                       SYSTEM                         SYSTEM                        
MSSQL                          USR                            TEMPORARY                     
TEST                           USR                            TEMPORARY                     
...
Рейтинг: 0 / 0
Temp пухнет - > нет места на диске
    #32180564
Roman_M
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
И все-таки, удалось ли выяснить чем заняты темп-сегменты или нет? Если в базе в этот момент работают только insert ... select , то там по идее не должно быть order by (зачем бы они там сдались?) и очень возможно появление sort-merge в плане запроса. Это есть или нет? Выборка из sort_usage что показывает???

Если бы temp2 не было temporary, можно было бы фантазировать на тему того, что там тоже находятся данные таблиц. В "нашем" случае - отпадает.
...
Рейтинг: 0 / 0
Temp пухнет - > нет места на диске
    #32180589
Kate_new
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
все что есть

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
NAME                                                                 VALUE
 ---------------------------------------------------------------- ---------
 
sorts (memory)                                                         1451 
sorts (disk)                                                              1 
sorts (rows)                                                        1383642 


OWNER                          SUM(BYTES)/ 1024 / 1024 
 ------------------------------ --------------------
 
SYS                                        600 . 16211 




USER                           TABLESPACE                         BLOCKS
 ------------------------------ ------------------------------- ---------
 
SYSTEM                         TEMP                                122918 
SYSTEM                         TEMP                                184363 



Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
Insert into person.find_results (CL_ID,
                                 PER_NUM,
                                 DOC_NUM,
                                 REG_DATE,
                                 REG_STAT,
                                 REG_PRICH,
                                 ST_DATE,
                                 RES,
                                 PAR,
                                 FAMCH_ID,
                                 IMCH_ID,
                                 OTCH_ID,
                                 DRCH_ID,
                                 DOCCH_ID,
                                 RAJON_ID,
                                 UNKNOWN_ID,
                                 YAROSL_ID,
                                 WORK_ID,
                                 SMO)
                 Select  /*+ index(r b_l_m_f_smo1) */   distinct R.ID, ----
 
                                 S.PER_NUM,
                                 S.DOC_NUM,
                                 S.REG_DATE,
                                 S.REG_STAT,
                                 S.REG_PRICH,
                                 S.ST_DATE,
                                  1 ,
                                 DECODE(min(DECODE(NVL(R.MIDNAME,'1'),'1', 0 , 1 )+DECODE(NVL(H.MIDNAME,'1'),'1', 0 , 1 )), 0 , 1 , 4 ),
                                  /*DECODE(MIN(H.ARCHIVE_ID),'0','N','Y'),
                                 DECODE(MIN(H.ARCHIVE_ID),'0','N','Y'),
                                 DECODE(MIN(H.ARCHIVE_ID),'0','N','Y'),
                                 DECODE(MIN(H.ARCHIVE_ID),'0','N','Y'),
                                 DECODE(MIN(H.ARCHIVE_ID),'0','N','Y'),*/ 
                                 'N',
                                 'N',
                                 'N', --DECODE(min(DECODE(NVL(R.MIDNAME,1),1,0,1)+DECODE(NVL(H.MIDNAME,1),1,0,1)),0,%af_src_str_7,NULL),--%af_src_str_8,
 
                                 'N',
                                 'N',
                                 S.RAJON_ID,
                                 DECODE(MIN(H.ARCHIVE_ID),'0','N','Y'),
                                 DECODE(Y.YAR, 0 ,'Y', 1 ,'N','0'), --NVL(R.OBLS,%af_src_str_17),--DECODE(NVL(O.YAR,0),0,%af_src_str_18,%af_src_str_19),
 
                                 DECODE(NVL(R.NO_FOND,'0'),'32-01321','N','03-00288','N','06-00194','N','09-00123','N','12-00508','N','15-00588','N','18-00138','N','21-00265','N','23-00571','N',
                                       '26-00375','N','29-00144','N','32-01238','N','34-00224','N','37-00276','N','40-07987','N','43-01476','N','46-01002','N','50-01434','N','68-03991','N','Y'),
                                 R.SMO                                                                  
                 from person.smo_report1 R, person.history H,person.status_new S,person.for_find_new_2 FF, person.smo_yarosl_obl Y --person.temp3 T
 
                 where R.birthday=H.birthday and
                       R.lastname=H.lastname and
                        --R.midname=H.midname and
 
                       R.firstname=H.firstname and 
                       replace(R.paper_sernum,' ')=replace(H.paper_sernum,' ') and
                       R.id=FF.c and
                        --r.ID=4063640 AND
 
                       H.person_id=S.per_num and
                       NVL(R.obls,'пустая область')=Y.obls
                 group by R.ID,R.NO_FOND,R.SMO,S.PER_NUM,S.DOC_NUM,S.REG_DATE,S.REG_STAT,S.REG_PRICH,S.ST_DATE,S.RAJON_ID,Y.YAR;


       ID PARENT_ID Query Plan
 --------- --------- ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 
         0            INSERT STATEMENT   Cost= 112879072140034 
         1           0    SORT UNIQUE  Cost= 112879072140034 
         2           1      SORT GROUP BY  Cost= 112879072140034 
         3           2        MERGE JOIN   Cost= 1212588162 
         4           3          SORT JOIN  Cost= 1212431625 
         5           4            MERGE JOIN   Cost= 1847490 
         6           5              SORT JOIN  Cost= 1699205 
         7           6                MERGE JOIN   Cost= 1652485 
         8           7                  SORT JOIN  Cost= 1124768 
         9           8                    HASH JOIN   Cost= 17433 
        10           9                      TABLE ACCESS FULL SMO_YAROSL_OBL Cost= 1 
        11           9                      TABLE ACCESS BY INDEX ROWID SMO_REPORT1 Cost= 826 
        12          11                        INDEX FULL SCAN B_L_M_F_SMO1 Cost= 26 
        13           7                  SORT JOIN  Cost= 527717 
        14          13                    TABLE ACCESS FULL HISTORY Cost= 28354 
        15           5              SORT JOIN  Cost= 148286 
        16          15                TABLE ACCESS FULL STATUS_NEW Cost= 2655 
        17           3          SORT JOIN  Cost= 156538 
        18          17            VIEW  FOR_FIND_NEW_2 Cost= 81346 
        19          18              MINUS   Cost=
        20          19                SORT UNIQUE  Cost= 57349 
        21          20                  TABLE ACCESS FULL SMO_REPORT1 Cost= 6539 
        22          19                SORT UNIQUE  Cost= 23997 
        23          22                  TABLE ACCESS FULL FIND_RESULTS Cost= 2601 

 24  rows selected.
...
Рейтинг: 0 / 0
Temp пухнет - > нет места на диске
    #32180614
Violina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
to Angel

DATABASE_PROPERTIES

Это я и хотела узнать. Спасибо.
...
Рейтинг: 0 / 0
Temp пухнет - > нет места на диске
    #32180619
Roman_M
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Уже информативнее. Попробуйте (если есть возможность... Хотя бы план исполнения) с хинтом /*+ use_hash (<тут перечислить таблицы>) */ - снизится ли стоимость запроса (т.е. уйдет ли sort-merge, что для нас важнее :-)
...
Рейтинг: 0 / 0
Temp пухнет - > нет места на диске
    #32180627
Roman_M
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
USER TABLESPACE BLOCKS
------------------------------ ------------------------------- ---------
SYSTEM TEMP 122918
SYSTEM TEMP 184363


Это sort_usage, верно? Вот оно - место в темп :-) Больше 300000 блоков (какой там у Вас размер блока?)

Сортировка потребовалась для -
- Join операций
- group by
- distinct

Вы можете как-то влиять на логику приложения? К примеру, distinct делать не при инсерте, а при последующей выборке из результирующей таблицы? Или при последующих выборках очень важна скорость и это недопустимо?
...
Рейтинг: 0 / 0
Temp пухнет - > нет места на диске
    #32180638
Violina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
to Kate_new

Все таки интересно, почему вдруг стало не хватать. Опубликуй результаты следующих запросов:

column tablespace_name format a15
column file_name format a20

Код: plaintext
select USERNAME, TEMPORARY_TABLESPACE from dba_users;


Код: plaintext
select tablespace_name, file_name, status, increment_by, bytes/ 1024 / 1024  as  "size"  from dba_data_files where tablespace_name='TEMP';


Код: plaintext
select tablespace_name, extent_id, bytes/ 1024 / 1024  as  "size"  from dba_extents where tablespace_name='TEMP';


Код: plaintext
select tablespace_name, bytes/ 1024 / 1024  as  "size"  from dba_free_space where tablespace_name='TEMP';
...
Рейтинг: 0 / 0
Temp пухнет - > нет места на диске
    #32180642
Kate_new
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вообщем, попорядку
1) стоимость черт знает какая, потому что нет статистики по трем таблицам из четырех, это сделано намеренно, т.к. со статистикой выполняется очень хорошо и быстро и без хинтов, но уже 3-тий запрос напрочь отказывается работать, почему уже пыталась выяснить, но ....вообщем плохо все закончилось - вернула все назад, теперь темп пухнет
похоже, когда нет статистики она формирует cost отбалды
2) ранее (когда все работало) пробовала с хинтом /*+ use_hash - работает медленнее раза в 2-3
3) когда RULE, вообще одни NESTED LOOP, но это никак не помогает :-(

заметила, что темп пухнет именно от этого запроса
такой же , но немного измененный выполняется
person.for_find_new_2 FF - это вьюшка, в которой
select id as cl_id from smo_report1
minus
select cl_id from find_results
которая выполняется моментом


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
Insert into person.find_results (CL_ID,
                                 PER_NUM,
                                 DOC_NUM,
                                 REG_DATE,
                                 REG_STAT,
                                 REG_PRICH,
                                 ST_DATE,
                                 RES,
                                 PAR,
                                 FAMCH_ID,
                                 IMCH_ID,
                                 OTCH_ID,
                                 DRCH_ID,
                                 DOCCH_ID,
                                 RAJON_ID,
                                 UNKNOWN_ID,
                                 YAROSL_ID,
                                 WORK_ID,
                                 SMO)
                 Select  /*+ index(r b_l_m_f_smo1) */   distinct R.ID, ----
 
                                 S.PER_NUM,
                                 S.DOC_NUM,
                                 S.REG_DATE,
                                 S.REG_STAT,
                                 S.REG_PRICH,
                                 S.ST_DATE,
                                  1 ,
                                 DECODE(min(DECODE(NVL(R.MIDNAME,'1'),'1', 0 , 1 )+DECODE(NVL(H.MIDNAME,'1'),'1', 0 , 1 )), 0 , 1 , 4 ),
                                  /*DECODE(MIN(H.ARCHIVE_ID),'0','N','Y'),
                                 DECODE(MIN(H.ARCHIVE_ID),'0','N','Y'),
                                 DECODE(MIN(H.ARCHIVE_ID),'0','N','Y'),
                                 DECODE(MIN(H.ARCHIVE_ID),'0','N','Y'),
                                 DECODE(MIN(H.ARCHIVE_ID),'0','N','Y'),*/ 
                                 'N',
                                 'N',
                                 'N', --DECODE(min(DECODE(NVL(R.MIDNAME,1),1,0,1)+DECODE(NVL(H.MIDNAME,1),1,0,1)),0,%af_src_str_7,NULL),--%af_src_str_8,
 
                                 'N',
                                 'N',
                                 S.RAJON_ID,
                                 DECODE(MIN(H.ARCHIVE_ID),'0','N','Y'),
                                 DECODE(Y.YAR, 0 ,'Y', 1 ,'N','0'), --NVL(R.OBLS,%af_src_str_17),--DECODE(NVL(O.YAR,0),0,%af_src_str_18,%af_src_str_19),
 
                                 DECODE(NVL(R.NO_FOND,'0'),'32-01321','N','03-00288','N','06-00194','N','09-00123','N','12-00508','N','15-00588','N','18-00138','N','21-00265','N','23-00571','N',
                                       '26-00375','N','29-00144','N','32-01238','N','34-00224','N','37-00276','N','40-07987','N','43-01476','N','46-01002','N','50-01434','N','68-03991','N','Y'),
                                 R.SMO                                                                  
                 from person.smo_report1 R, person.history H,person.status_new S,
==========>person.for_find_new_2 FF, 
                 person.smo_yarosl_obl Y
                 where R.birthday=H.birthday and
                       R.lastname=H.lastname and
                        --R.midname=H.midname and
 
                       R.firstname=H.firstname and 
                       replace(R.paper_sernum,' ')=replace(H.paper_sernum,' ') and
==========>   R.id=FF.c and
                       H.person_id=S.per_num and
                       NVL(R.obls,'пустая область')=Y.obls
                 group by R.ID,R.NO_FOND,R.SMO,S.PER_NUM,S.DOC_NUM,S.REG_DATE,S.REG_STAT,S.REG_PRICH,S.ST_DATE,S.RAJON_ID,Y.YAR;
...
Рейтинг: 0 / 0
Temp пухнет - > нет места на диске
    #32180663
Roman_M
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> ранее (когда все работало) пробовала с хинтом /*+ use_hash - работает медленнее раза в 2-3

Наверное, мне везло, но всегда hash-join работал шустрее sort-merge-join. Это, опять же, только проверять...

Имеется ли индекс на эти поля (которые определяют join двух таблиц)??
R.birthday=H.birthday and
R.lastname=H.lastname and
R.firstname=H.firstname and
replace(R.paper_sernum,' ')=replace(H.paper_sernum,' ')
...
Рейтинг: 0 / 0
Temp пухнет - > нет места на диске
    #32180670
Kate_new
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 Roman_M

Наверное, мне везло, но всегда hash-join работал шустрее sort-merge-join. Это, опять же, только проверять...
Это печально, но факт...

Имеется ли индекс на эти поля (которые определяют join двух таблиц)??
R.birthday=H.birthday and
R.lastname=H.lastname and
R.firstname=H.firstname and
replace(R.paper_sernum,' ')=replace(H.paper_sernum,' ')

да, для smo_report1 - B_L_M_F_smo1 (birthday,lastname,midname,firstname)
как я понимаю, захватится ведущая часть индекса
по функции у меня как-то индекс не подхватывается, не могу понять почему и не только в этом случае

2 Violina

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
select USERNAME, TEMPORARY_TABLESPACE from dba_users;
 

USERNAME                       TEMPORARY_TABLESPACE
 ------------------------------ ------------------------------
 
SYS                            SYSTEM
SYSTEM                         TEMP
OUTLN                          SYSTEM
DBSNMP                         SYSTEM
MTSSYS                         SYSTEM
AURORA$ORB$UNAUTHENTICATED     SYSTEM
SCOTT                          TEMP
DEMO                           SYSTEM
ORDSYS                         SYSTEM
ORDPLUGINS                     SYSTEM
MDSYS                          SYSTEM
CTXSYS                         SYSTEM
ANDY                           TEMP
PERSON                         TEMP
ADDRESS                        TEMP

 15  rows selected.
 


select tablespace_name, file_name, status, increment_by, bytes/ 1024 / 1024  as  "size"  from dba_data_files where tablespace_name='TEMP';
 TABLESPACE_NAME                FILE_NAME                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         STATUS    INCREMENT_BY      size
 ------------------------------ --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- --------- ------------ ---------
 
TEMP                           D:\ORACLE\ORADATA\DATA\TEMP01.DBF                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 AVAILABLE          2560   168 . 36133 
TEMP                           E:\ORACLE\ORADATA\DATA\TEMP02.DBF                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 AVAILABLE             1   489 . 19531 

 


select tablespace_name, extent_id, bytes/ 1024 / 1024  as  "size"  from dba_extents where tablespace_name='TEMP';
 
 TABLESPACE_NAME                EXTENT_ID      size
 ------------------------------ --------- ---------
 
TEMP                                    0  . 00976563 
TEMP                                    1  . 00976563 
TEMP                                    2  . 01953125 
TEMP                                    3  . 02929688 
TEMP                                    4   . 0390625 
TEMP                                    5  . 05859375 
TEMP                                    6  . 08789063 
TEMP                                    7  . 12695313 
TEMP                                    8  . 18554688 
TEMP                                    9   . 2734375 
TEMP                                   10  . 41015625 
TEMP                                   11  . 61523438 
TEMP                                   12  . 92773438 
TEMP                                   13   1 . 3867188 
TEMP                                   14   2 . 0800781 
TEMP                                   15       3 . 125 
TEMP                                   16      4 . 6875 
TEMP                                   17     7 . 03125 
TEMP                                    0  . 00976563 
TEMP                                    1  . 00976563 
TEMP                                    2  . 01953125 
TEMP                                    3  . 02929688 
TEMP                                    4   . 0390625 
TEMP                                    5  . 05859375 
TEMP                                    6  . 08789063 
TEMP                                    7  . 12695313 
TEMP                                    8  . 18554688 
TEMP                                    9   . 2734375 
TEMP                                   10  . 41015625 
TEMP                                   11  . 61523438 
TEMP                                   12  . 92773438 
TEMP                                   13   1 . 3867188 
TEMP                                   14   2 . 0800781 
TEMP                                   15       3 . 125 
TEMP                                   16      4 . 6875 

 35  rows selected.



select tablespace_name, bytes/ 1024 / 1024  as  "size"  from dba_free_space where tablespace_name='TEMP';
 
TABLESPACE_NAME                     size
 ------------------------------ ---------
 
TEMP                            133 . 18359 
TEMP                            489 . 19336 
 


Очень стыдно признаться, но еще раз сделала alter user person temporary tablespace temp2

и сразу в первом селекте вместо темп нарисовался темп2, может перестаралась с откатом назад :-((
...
Рейтинг: 0 / 0
Temp пухнет - > нет места на диске
    #32180694
Violina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Очень стыдно признаться, но еще раз сделала alter user person temporary tablespace temp2

и сразу в первом селекте вместо темп нарисовался темп2, может перестаралась с откатом назад :-((


Откатиться операция alter user ... не могла. Давай определимся,

1) Процедура выполняется под юзером person? Insert into person.find_results ... об этом ничего не говорит, может ты из под sys это выполняешь?

2) удалось сделать чтобы temporary tablespace для юзера person был temp2? Если да то надо проверить, продолжает ли появляеться эта проблема в этом случае.

3) Если хотим дальше использовать пространство temp. Попробуй вызвать

ALTER TABLESPACE TEMP coaleasce;

Проверь, продолжает ли появляеться эта проблема в этом случае.

Не совсе понятно где же объявленные Increment Size by 50%?

Покажи результат

select * from dba_data_files where tablespace_name='TEMP';

select * from dba_tablespaces where tablespace_name='TEMP';
...
Рейтинг: 0 / 0
Temp пухнет - > нет места на диске
    #32180708
Kate_new
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
1) Процедура выполняется под юзером person? Insert into person.find_results ... об этом ничего не говорит, может ты из под sys это выполняешь?

захожу под system

2) удалось сделать чтобы temporary tablespace для юзера person был temp2? Если да то надо проверить, продолжает ли появляеться эта проблема в этом случае.

Проверю

3) Если хотим дальше использовать пространство temp. Попробуй вызвать

ALTER TABLESPACE TEMP coaleasce;


А как может помочь сливание экстентов в этом случае?


Не совсе понятно где же объявленные Increment Size by 50%?

Почему непонятно, в третьем запросе размер каждого нового экстента увеличивается на 50 %

Покажи результат

select * from dba_data_files where tablespace_name='TEMP';

Код: plaintext
1.
2.
3.
4.
FILE_NAME                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           FILE_ID TABLESPACE_NAME                    BYTES    BLOCKS STATUS    RELATIVE_FNO AUT  MAXBYTES MAXBLOCKS INCREMENT_BY USER_BYTES USER_BLOCKS
 --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- --------- ------------------------------ --------- --------- --------- ------------ --- --------- --------- ------------ ---------- -----------
 
D:\ORACLE\ORADATA\DATA\TEMP01.DBF                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          4  TEMP                            176539648       86201  AVAILABLE             4  YES  157286400       76800           2560    176537600         86200 
E:\ORACLE\ORADATA\DATA\TEMP02.DBF                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          9  TEMP                            512958464      250468  AVAILABLE             9  YES  8 .590E+ 09     4194302              1    512956416        250467 


select * from dba_tablespaces where tablespace_name='TEMP';

Код: plaintext
1.
2.
3.
TABLESPACE_NAME                INITIAL_EXTENT NEXT_EXTENT MIN_EXTENTS MAX_EXTENTS PCT_INCREASE MIN_EXTLEN STATUS    CONTENTS  LOGGING   EXTENT_MAN ALLOCATIO PLU
 ------------------------------ -------------- ----------- ----------- ----------- ------------ ---------- --------- --------- --------- ---------- --------- ---
 
TEMP                                     10240         10240             1           121             50            0  ONLINE    PERMANENT LOGGING   DICTIONARY USER      NO
...
Рейтинг: 0 / 0
Temp пухнет - > нет места на диске
    #32180725
Violina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
захожу под system

ну так тогда и используется default temporary tablespace юзера system. Ты можешь сколь угодно менять default temporary tablespace для юзера person, если ты заходишь под system то естественно и испольузется его temporary tablespace, то есть temp.

Итак, одну причину выяснили!

А как может помочь сливание экстентов в этом случае?

Оракл не будет расширять табличное пространство, если сможет найти достаточно места в имеющейся свободной области. Пусть эксперты меня поправят если что не так.

PS
Смотри мой постинг в тему по init.ora как правильно создать temporary tablespace
...
Рейтинг: 0 / 0
Temp пухнет - > нет места на диске
    #32180730
Roman_M
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> по функции у меня как-то индекс не подхватывается, не могу понять почему и не только в этом случае

Для использования function-based индекса необходимо

QUERY_REWRITE_ENABLED = TRUE
иметь привилегию QUERY_REWRITE
иметь собранную статистику.
...
Рейтинг: 0 / 0
Temp пухнет - > нет места на диске
    #32180734
Violina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Результаты запроса

select * from dba_tablespaces where tablespace_name='TEMP';

очень интересны.

CONTENTS - permanent

То есть табличное прастранство temp у тебя не является временным а постоянным, которое используется для временных операций. Делать такое крайне не желательно. В этом и была ошибка. Поскольку оно у тебя постоянное, то экстенты выделенные для временных операций не освобождаются и не сливаются - в результате Оракл когда не может найти достаточного свободного пространства в существующих экстентах создает новые, вот и распухает файл.

И так

1) Сделать temp временным табличным пространством
2) Для dictionary managed temporary tablespaces есть рекомендация по размеру
initial и next N*sort_area_size + db_block_size.
...
Рейтинг: 0 / 0
Temp пухнет - > нет места на диске
    #32180739
Фотография softy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
to Violina:

"В этом и была ошибка. Поскольку оно у тебя постоянное, то экстенты выделенные для временных операций не освобождаются и не сливаются"


Можно спросить, где это написано?
...
Рейтинг: 0 / 0
Temp пухнет - > нет места на диске
    #32180741
Фотография softy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
to Violina:

"То есть табличное прастранство temp у тебя не является временным а постоянным, которое используется для временных операций"

Кстати по этому поводу, я сказал еще на первой странице.
Но как и следовало ожидать от Kat_new - она это пропустила мимо ушей.

Я не удивлюсь, если она и твоё сообщение пропустит....
...
Рейтинг: 0 / 0
Temp пухнет - > нет места на диске
    #32180750
Roman_M
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> в результате Оракл когда не может найти достаточного свободного пространства в существующих экстентах создает новые, вот и распухает файл

Чуть ранее проскакивала выборка из sort_usage. Порядка 300000 блоков занято под сортировку. Так что боюсь рецепт не поможет - нужно устранять причины, а они в SQL и джойне.
...
Рейтинг: 0 / 0
Temp пухнет - > нет места на диске
    #32180755
Vladimirgs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Господа, я повторюсь....
Код: plaintext
Народ, а я думаю дело не в бобине.... Посмотри скорее всего просто увеличились объемы выборок и соотвественно сортировок, а Sort_Area как ты говоришь маленький....а может быть у таблспейса чудесным образом пропала галочка online temporary и при отрыве юзера не происходит очистка....а еще может быть что какой то из ваших программистов наструячил туда индексов....


Create.....online temporary!!!!!....и пухнуть не будет.

to softbuiler - реальный чувак.....надо познакомиться :)
...
Рейтинг: 0 / 0
Temp пухнет - > нет места на диске
    #32180762
Violina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
to sofbuilder

Забыла написать что это лишь предположение а не утверждение. Все никак не привыкну вписывать ИМХО. Скажи сразу какое истолкование правильное?

Что это за экстенты тогда в этом случае

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
select tablespace_name, extent_id, bytes/ 1024 / 1024  as  "size"  from dba_extents where tablespace_name='TEMP';
 
 TABLESPACE_NAME                EXTENT_ID      size
 ------------------------------ --------- ---------
 
TEMP                                    0  . 00976563 
TEMP                                    1  . 00976563 
TEMP                                    2  . 01953125 
TEMP                                    3  . 02929688 
TEMP                                    4   . 0390625 
TEMP                                    5  . 05859375 
TEMP                                    6  . 08789063 
TEMP                                    7  . 12695313 
TEMP                                    8  . 18554688 
TEMP                                    9   . 2734375 
TEMP                                   10  . 41015625 
TEMP                                   11  . 61523438 
TEMP                                   12  . 92773438 
TEMP                                   13   1 . 3867188 
TEMP                                   14   2 . 0800781 
TEMP                                   15       3 . 125 
TEMP                                   16      4 . 6875 
TEMP                                   17     7 . 03125 
TEMP                                    0  . 00976563 
TEMP                                    1  . 00976563 
TEMP                                    2  . 01953125 
TEMP                                    3  . 02929688 
TEMP                                    4   . 0390625 
TEMP                                    5  . 05859375 
TEMP                                    6  . 08789063 
TEMP                                    7  . 12695313 
TEMP                                    8  . 18554688 
TEMP                                    9   . 2734375 
TEMP                                   10  . 41015625 
TEMP                                   11  . 61523438 
TEMP                                   12  . 92773438 
TEMP                                   13   1 . 3867188 
TEMP                                   14   2 . 0800781 
TEMP                                   15       3 . 125 
TEMP                                   16      4 . 6875 
...
Рейтинг: 0 / 0
Temp пухнет - > нет места на диске
    #32180769
Kate_new
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 softbuilder@inbox.ru
товарищи,дорогие, вы что , издеваетесь???

Код: plaintext
1.
2.
3.
4.
5.
 "То есть табличное прастранство temp у тебя не является временным а постоянным, которое используется для временных операций"  

Кстати по этому поводу, я сказал еще на первой странице. 
Но как и следовало ожидать от Kat_new - она это пропустила мимо ушей. 

Я не удивлюсь, если она и твоё сообщение пропустит....


я же в самом начале, в своем запросе написала
TEMP-PERMANENT!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

SOFT - если ты невнимателен, то хоть не оскорбляй людей!!!(даже если они только новички)

2 Violina
Спасибо, поняла, что делала для person, а заходила под system
Сделала для system
Это печально, но даже не подумала об этом :-(

2 Roman_m
беспокоит то, что все работало, хоть и пухло, но не настолько
не пойму, почему пухлость увеличилась
хотя полностью согласна, надо менять настройку запросов
...
Рейтинг: 0 / 0
Temp пухнет - > нет места на диске
    #32180777
Violina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
to softbuilder

Temp -permanent

Я этого просто не поняла. Для этого мне понадобилось увидеть результат

select * from dba_tablespaces where tablespace_name='TEMP';

to Vladimirgs

а может быть у таблспейса чудесным образом пропала галочка online temporary и при отрыве юзера не происходит очистка....

Можете объяснить почему в таком случае не будет происходить очистка. У меня нет 100% ясности, а объяснения с меня требуют:-)

to Kate_new

Подводим итоги. И так у тебя 2 фатальных ошибки

1) temp не является temporary tablespace
2) раз ты заходишь под system то используется его default temporary tablespace, а не default temporary tablespace пользователя person. /to softbuilder - это мой домысел, надеюсь здесь то хоть я права?-)/
...
Рейтинг: 0 / 0
Temp пухнет - > нет места на диске
    #32180886
Roman_M
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> не пойму, почему пухлость увеличилась

Возможно, увеличился обьем данных (это Вам виднее), кроме того, раньше sort-merge оптимизатор мог и не выбирать.
Попробуйте для начала построить индексы (с функциями), добейтесь, чтобы они использвались в джойне.
...
Рейтинг: 0 / 0
Temp пухнет - > нет места на диске
    #32180931
Angel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это, конечно, косяк, что TEMP - permanent, но как раз в этом случае после завершения операции временные сегменты возвращаются обратно в свободную область ТП.
temporary используется для ускорения работы - временные сегменты не освобождаются немедленно и могут быть доступны для использования в других операциях. Соответственно, в temporary ТП можно создавать только временные сегменты (в отличие от permanent).
...
Рейтинг: 0 / 0
62 сообщений из 62, показаны все 3 страниц
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Temp пухнет - > нет места на диске
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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