powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Оптимизация запроса
11 сообщений из 11, страница 1 из 1
Оптимизация запроса
    #40020233
bors
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть приведенный ниже запрос. Можно ли его оптимизировать? Не бросайте камни, не так давно начал изучать это дело. Выбираю порядка 800.000 элементов. Заранее спасибо.

SELECT
D.DOC_ID AS "ИНВЕНТАРНЫЙ НОМЕР",
T.DOC_NAME AS "ТИП ДОКУМЕНТА",
D.VERSION_ID AS "НОМЕР ВЕРСИИ",
D.DESIGNATIO AS "ОБОЗНАЧЕНИЕ",
D.NAME AS "НАИМЕНОВАНИЕ",
V.FULLNAME AS "ВЛАДЕЛЕЦ",
DECODE(D.DOC_STATUS, 0, 'Сдан', R.FULLNAME) "РЕДАКТИРУЕТСЯ"
FROM
SYSDBA.DOCLIST D
LEFT JOIN SYSDBA.DOCTYPES T ON T.DOC_TYPE = D.DOC_TYPE
LEFT JOIN SYSDBA.USERS V ON V.USER_ID = D.DESIGNERID
LEFT JOIN SYSDBA.USERS R ON R.USER_ID = D.DOC_STATUS
WHERE ARCHIVE_ID = :P
...
Рейтинг: 0 / 0
Оптимизация запроса
    #40020235
dmdmdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bors
Выбираю порядка 800.000 элементов.


Это выгрузка куда-то? Человеку такое не нужно.

Первое, что смотрим - план запроса и время выполнения.
...
Рейтинг: 0 / 0
Оптимизация запроса
    #40020237
bors
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
dmdmdm
bors
Выбираю порядка 800.000 элементов.


Это выгрузка куда-то? Человеку такое не нужно.

Первое, что смотрим - план запроса и время выполнения.


Да, выгрузка в форму списка документов (для работы, оказывается такое нужно). Время выполнения около 25 секунд. По плану всё просто: запрос на сервер, обработка запроса сервером, возврат значений и выгрузка в таблицу
...
Рейтинг: 0 / 0
Оптимизация запроса
    #40020243
dmdmdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bors
По плану всё просто: запрос на сервер, обработка запроса сервером, возврат значений и выгрузка в таблицу


*ROFL* В мемориз.

Поиск .

Следующий вопрос - что вас не устраивает, что 800 тысяч строк выгружаются 25 секунд? Это весьма неплохо.
...
Рейтинг: 0 / 0
Оптимизация запроса
    #40020247
bors
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
dmdmdm
Следующий вопрос - что вас не устраивает, что 800 тысяч строк выгружаются 25 секунд? Это весьма неплохо.


Я же говорю: не так давно начал изучать и писать SQL запросы, откуда мне знать хорошо это или плохо, всегда хочется большего. Это не единственный запрос который использую при разработке, просто на его примере хотел узнать что можно улучшить и можно ли вообще, или стоит лезть в программную реализацию ПО
...
Рейтинг: 0 / 0
Оптимизация запроса
    #40020298
dmdmdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В целях повышения собственной образованности и сравнения производительности советую изучить UTL_FILE.
...
Рейтинг: 0 / 0
Оптимизация запроса
    #40020308
bors
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
dmdmdm, спасибо за совет;)
...
Рейтинг: 0 / 0
Оптимизация запроса
    #40020311
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dmdmdm
В целях повышения собственной образованности и сравнения производительности советую изучить UTL_FILE.

ага, без доступа к серверу

.....
stax
...
Рейтинг: 0 / 0
Оптимизация запроса
    #40020312
bors
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Stax, а я уж начинал думать что всё таки лыжи не едут, ан нет всё же=)
...
Рейтинг: 0 / 0
Оптимизация запроса
    #40020331
bors
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Stax, человеческое Вам спасибо за объяснения.
Запрос я пишу в компоненте ADOQuery в Delphi. Попробовал поиграться с SQL Plus и парадокс, через Delphi спокойно конекчусь к бд, через SQL PLus error, загадки
...
Рейтинг: 0 / 0
Оптимизация запроса
    #40020335
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bors
Stax, запрос я пишу в компоненте ADOQuery в Delphi. Попробовал поиграться с SQL Plus и парадокс, через Delphi спокойно конекчусь к бд, через SQL PLus error, загадки


по любому надо какую-то примочку запустить

SQL Plus сложновато для начала с интерфейсом

SqlDeveloper можно (он безплатный)

надо побороть проблему (error, загадки), заставте заработать

зы
22235238 накосячил чутку не тот план запостил
но для примера мож и пойдет

зы
если совсем грубо то план можно и в дельфи смотреть
ето результат обычного селекта select * from table(dbms_xplan.display...)
зыы
есть и команда explain plan ...
https://docs.oracle.com/cd/B19306_01/server.102/b14211/ex_plan.htm#i16938

select что надо from plan_table
ето обычная табличка
правильнее (из ссылки)
SELECT PLAN_TABLE_OUTPUT FROM TABLE(DBMS_XPLAN.DISPLAY('MY_PLAN_TABLE', 'st1','TYPICAL'));

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


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