powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / После переезда с Oracle 7 на 10 начал тормозить запрос
14 сообщений из 14, страница 1 из 1
После переезда с Oracle 7 на 10 начал тормозить запрос
    #39305047
alexlisp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Соственно перехали с 7 на 10 версию и перестала вообще отрабатывать View. Раньше отрабатывала за пару минут, а теперь за даже за часов 8 не отрабатывает. Хочу переписать запрос, но не понимаю что происходить с таблицей tc1 в подзапросе где есть min.
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
SELECT *
FROM tb_contract tc,
(select tc1.id_contract, tc2.date_begin-1 newdate
from tb_contract tc1,
     tb_contract tc2
where tc2.id_contract=(select min(id_contract) from tb_contract
                       where tb_sv_id=tc1.tb_sv_id
                       and id_contract>tc1.id_contract)
  and tc1.date_end>=tc2.date_begin
  ) newdates
WHERE tc.id_contract=newdates.id_contract(+);
...
Рейтинг: 0 / 0
После переезда с Oracle 7 на 10 начал тормозить запрос
    #39305086
хммммм
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alexlisp,

Оракел решил не использовать какой-то индекс, очевидно. Почему - а фиг знает.

4 раза tb_contract - это нормально? Я не особо понял смысла запроса, но, чую, можно переписать сильно проще.
...
Рейтинг: 0 / 0
После переезда с Oracle 7 на 10 начал тормозить запрос
    #39305100
AnSi_Sr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Предположу, что это надо через lag/lead переписать.
Тоже неохота разбираться, что там подразумевалось.
...
Рейтинг: 0 / 0
После переезда с Oracle 7 на 10 начал тормозить запрос
    #39305127
Фотография mefman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а план посмотреть?
...
Рейтинг: 0 / 0
После переезда с Oracle 7 на 10 начал тормозить запрос
    #39305144
alexlisp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
хммммм,
База старая и всё досталось мне по наследству от предшественников, которые, естественно, уже давно не работают. То что 4 раза одна и та же таблица - это не норма, но я так понимаю что в 7 оракле не было много современных возможностей и люди выкручивались как могли, поэтому и 4 раза.
...
Рейтинг: 0 / 0
После переезда с Oracle 7 на 10 начал тормозить запрос
    #39305152
K790
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexlisp,

статистика актуальная? планы запросов, трасса с проблемного?... etc
...
Рейтинг: 0 / 0
После переезда с Oracle 7 на 10 начал тормозить запрос
    #39305233
!?!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
!?!
Гость
Попробуйте что то вроде этого
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
with tb_contract  as
(
select 1 as tb_sv_id,1 as id_contract,1 as date_begin,10 as date_end from dual union all
select 1 as tb_sv_id,2 as id_contract,10 as date_begin,15 as date_end from dual union all
select 1 as tb_sv_id,3 as id_contract,9 as date_begin,25 as date_end from dual union all
select 1 as tb_sv_id,4 as id_contract,16 as date_begin,20 as date_end from dual union all
select 2 as tb_sv_id,5 as id_contract,1 as date_begin,10 as date_end from dual union all
select 2 as tb_sv_id,6 as id_contract,11 as date_begin,20 as date_end from dual
)
select tb_sv_id,id_contract,date_begin,date_end,
       case when newdate<=date_end then newdate-1 end newdate
from (select tb_sv_id,id_contract,date_begin,date_end,
             lead(date_begin) over(partition by tb_sv_id order by id_contract) newdate
      from tb_contract  tc)
...
Рейтинг: 0 / 0
После переезда с Oracle 7 на 10 начал тормозить запрос
    #39305485
Nobody1111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот это да, какие версии еще люди мигрируют!


Попробовать тупо воткнуть хинт /*+ RULE */, возможно, CBO не использовался в этом запросе в 7.
...
Рейтинг: 0 / 0
После переезда с Oracle 7 на 10 начал тормозить запрос
    #39305539
Q.Tarantino
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nobody1111Вот это да, какие версии еще люди мигрируют!


Попробовать тупо воткнуть хинт /*+ RULE */, возможно, CBO не использовался в этом запросе в 7.
вполне годно.
...
Рейтинг: 0 / 0
После переезда с Oracle 7 на 10 начал тормозить запрос
    #39305547
JVF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nobody1111Вот это да, какие версии еще люди мигрируют!


Попробовать тупо воткнуть хинт /*+ RULE */, возможно, CBO не использовался в этом запросе в 7.тогда уж и /*+ first_rows */ заодно.
...
Рейтинг: 0 / 0
После переезда с Oracle 7 на 10 начал тормозить запрос
    #39305557
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JVFNobody1111Вот это да, какие версии еще люди мигрируют!


Попробовать тупо воткнуть хинт /*+ RULE */, возможно, CBO не использовался в этом запросе в 7.тогда уж и /*+ first_rows */ заодно.Это чтоб RULE с первой строки начал работать?
...
Рейтинг: 0 / 0
После переезда с Oracle 7 на 10 начал тормозить запрос
    #39306397
alexlisp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
K790,

Статистику собрал. В плане слишком много Access Full, да и план слишком большой для моего понимания. Просто tb_contract это вьюшка которая вложена в ещё одну вьюшку и все они по сути только 2 таблицы между собой дёргают и в итоге план получается около 60 пунктов.

Nobody1111,

Спасибо ха помощь, Ваш хинт помог и всё пошло как по маслу. Ещё с 7 ораклом переезжает примерно 200 форм и репортов версии 4.5.
...
Рейтинг: 0 / 0
После переезда с Oracle 7 на 10 начал тормозить запрос
    #39306712
SQL*Plus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexlispЕщё с 7 ораклом переезжает примерно 200 форм и репортов версии 4.5.А вы хоть одну из форм версии 4.5 попробовали в работе с базой Oracle 10g?
Что-то я в этом сильно сомневаюсь. :-(
...
Рейтинг: 0 / 0
После переезда с Oracle 7 на 10 начал тормозить запрос
    #39307401
alexlisp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SQL*Plus,

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


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