Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Pl sql программирование большого запроса  [new]
Lilzen
Member

Откуда:
Сообщений: 26
Всем здравствуйте знатоки sql и oracle... Ребят у меня есть вот такой запрос попытка была в том что бы сделать запрос так что бы он выдовал полноценную таблицу с подсчётом количества записей в каждом отдельном запросе, после чего вывести это в виде таблицы в ексель... Но тут возникла проблема, файл который я скинул не полный это только отрывок... Вот этот параметр r_f10 это район районов 64 и каждый нужно было посчитать отдельно... Сервер упал не выдержав нагрузки... Ребят скажите можно ли как то поправить это дабы облегчить просчёт, или кто знаком с pl sql может кто то сможет пример кода кинуть, например как просто взять один запрос... Менять в нем номер района и после вносить их в таблицу... Всем кто откликнуться огромное спасибо.

К сообщению приложен файл (Peregruz.sql - 3Kb) cкачать
10 ноя 16, 10:30    [19878075]     Ответить | Цитировать Сообщить модератору
 Re: Pl sql программирование большого запроса  [new]
Vladimir Baskakov
Member

Откуда:
Сообщений: 2006
а сколько времени отрабатывает каждый из запросов вьюшки,
select r_f10,v_f10,g_f10,n_f10,np_f10,p11_25 FROM F11501 where pc_f1=2 and uch_f11=0 and p11_25 in (22,24,28)
и сколько записей возвращает?

может ли один селест вернуть ту же строку, что и другой? пальцем в небо - не очень много, сравнительно быстро, не возвращает таких-же строк из другой (тогда сразу замена union->union all поможет понять серверу, что делать не надо).

Я так понимаю, что и в верхнем селекте - каждый union по сути из своей таблички исходит? тогда по очереди загнать кусок данных в табличку, и потом уже свернуть итоговым запросом.

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

как разложены районы по таблицам?

вьюшка из юнионов, которая самосоединяется - это беда.
10 ноя 16, 13:02    [19878834]     Ответить | Цитировать Сообщить модератору
 Re: Pl sql программирование большого запроса  [new]
Вячеслав Любомудров
Member

Откуда: Владивосток
Сообщений: 18487
Lilzen
Сервер упал не выдержав нагрузки...
И в чем это выразилось?
Не спрашиваю уж о других интересных подробностях о версии и настройках "упавшего сервера"
11 ноя 16, 01:59    [19881461]     Ответить | Цитировать Сообщить модератору
 Re: Pl sql программирование большого запроса  [new]
andrey_anonymous
Member

Откуда: Москва
Сообщений: 18399
Вячеслав Любомудров
Lilzen
Сервер упал не выдержав нагрузки...
И в чем это выразилось?


- а мой друг сервер уронил!
- он что, крутой хакер?
- нет, он его на пол уронил...
11 ноя 16, 02:18    [19881472]     Ответить | Цитировать Сообщить модератору
 Re: Pl sql программирование большого запроса  [new]
Вячеслав Любомудров
Member

Откуда: Владивосток
Сообщений: 18487
Я тоже постеснялся спросить, не разбился ли
11 ноя 16, 04:40    [19881489]     Ответить | Цитировать Сообщить модератору
 Re: Pl sql программирование большого запроса  [new]
Plohoy
Guest
Я обычно использую следующую логику...

select sum(1) prios_2015
, sum(case when f2.r_f10=51
then 1
else 0
end) Rask_2015
, sum(case when f2.r_f10=51 and f2.p11_25=22
then 1
else 0
end) st20811
, .... и так все условия
from F115 f1
, F1pri f2
where f1.r_f10=f2.r_f10
and f1.v_f10=f2.v_f10
and f1.g_f10=f2.g_f10
and f1.n_f10=f2.n_f10
and f1.np_f10=f2.np_f10
and f1.pc_f1=1

З/Ы и зачем в вашем запросе distinct так и не понял
11 ноя 16, 09:53    [19881744]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить