powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Оптимизация запроса
5 сообщений из 5, страница 1 из 1
Оптимизация запроса
    #39709039
maverick2104
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброе утро , как можно оптимизировать данный запрос ?

Запрос
Код: plsql
1.
2.
3.
4.
select u.pk,u.name,u.expired,u.locked,s.staff_code,p.code,u.locked_description, max(z.logon_time) 
from devision.SM_USERS$RT u, devision.SM_STAFFS$RT s, devision.SM_PROFILES$RT p ,DEVISION.SM_LOG_USERS_LOGON$RT z
Where u.job=s.pk and s.profile=p.pk  and u.pk in ( select username from  DEVISION.SM_LOG_USERS_LOGON$RT )
group by u.pk,u.name,u.expired,u.locked,s.staff_code,p.code,u.locked_description



Простой как 2 копейки но отрабатыват очень тяжело , в каждой таблицы ~ 1500 записей . Я понимаю в чем проблема но как ее решить ?
...
Рейтинг: 0 / 0
Оптимизация запроса
    #39709045
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maverick2104Простой как 2 копейкиАга. Таблиц четыре, а связей всего две копейки.
...
Рейтинг: 0 / 0
Оптимизация запроса
    #39709080
maverick2104
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Elic,

Я чуть изменил и вместо бесконечности оно отработало за 2 секунды :

Код: plsql
1.
2.
3.
4.
select u.pk,u.name,u.expired,u.locked,s.staff_code,p.code,u.locked_description, z.logon_time
from devision.SM_USERS$RT u, devision.SM_STAFFS$RT s, devision.SM_PROFILES$RT p ,DEVISION.SM_LOG_USERS_LOGON$RT z
Where u.job=s.pk and s.profile=p.pk  and u.pk in ( select username from  DEVISION.SM_LOG_USERS_LOGON$RT ) 
and z.logon_time  in ( select max(logon_time) from  DEVISION.SM_LOG_USERS_LOGON$RT)
...
Рейтинг: 0 / 0
Оптимизация запроса
    #39709113
mibin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
maverick2104,

Почему эта таблица DEVISION.SM_LOG_USERS_LOGON$RT Z не клеится с остальными? У Вас фактические cross join происходит...все записи из той таблицы клеются со всеми записями из набора
devision.SM_USERS$RT u,
devision.SM_STAFFS$RT s,
devision.SM_PROFILES$RT p
может не нужно выполнять вот это u.pk in (select username from DEVISION.SM_LOG_USERS_LOGON$RT) а просто склеиться с таблиыей из раздела from?

Вообще не понятна ни структура данных ни цель ни типы связей.
...
Рейтинг: 0 / 0
Оптимизация запроса
    #39709143
maverick2104
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mibin,

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


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