powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Многопоточное выполнение PL/SQL
6 сообщений из 6, страница 1 из 1
Многопоточное выполнение PL/SQL
    #39946157
Большой Синий Кит
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброго всем времени суток!

Уважаемые DBA, подскажите пожалуйста, как будет работать pl/sql на Оракле в плане многопоточности.
Например, есть 2 таблицы с 10 млн записями. Делается обычный SELECT, таблицы джоинятся по какому-то ключу, применяются как-нибудь WHERE...
Предположим, что выборки абсолютно разделяемые.. то есть, можно обрабатывать построчно, никаких коллизий не будет.

Результат выборки просто записывается в третью таблицу.

Чисто логически кажется, что, если я разделю такой plsql на порции - типа, для id - [1...100], [101... 200] и так далее, и запущу это одновременно с какого-то стороннего приложения, например, то все отработает быстрее, чем при запуске такого plsql "для всех id" на самом Oracle. Но я знаю, что Oracle сам не дурак, будет применять многопоточность для такого plsql тоже. Но она зависит от того, какая конфигурация Oracle - кол-во серверов, процессоры и т.п. Видел, что можно и указывать параллелизм, типа /*+ PARALLEL(4) */ - что-то вроде такого.

Вот и вопрос - что будет гарантированно быстрее? Разбить на порции и запустить одновременно со стороннего приложения (с реиспользованием connection, не создавать каждый раз новое) или это все напрасно и то на то и выйдет? Прошу прощения, если вопрос глупый.

Спасибо большое за ответы.
...
Рейтинг: 0 / 0
Многопоточное выполнение PL/SQL
    #39946158
Большой Синий Кит
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я читал https://docs.oracle.com/cd/E11882_01/server.112/e25523/parallel002.htm#i1006328

Но очень интересен ответ опытных практиков, которых здесь очень много. :)
...
Рейтинг: 0 / 0
Многопоточное выполнение PL/SQL
    #39946161
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Однозначного ответа дать нельзя - слишком много неизвестных, возможностей и ограничений.
Однако "все дороги ведут и в Чешские Будейовицы" (с)
...
Рейтинг: 0 / 0
Многопоточное выполнение PL/SQL
    #39946190
dmdmdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Oracle сам не дурак, будет применять многопоточность для такого plsql тоже

Исходя из моего опыта, для SQL параллельность выполнения, при наличии соответствующих свободных ресурсов (процессор, память, диск), вполне себе работает.

Для PL /SQL о возможности распараллеливания со стороны СУБД не знаю. Боюсь, что это, мягко говоря, непросто автоматизировать.

Со стороны приложения - смотрите использование ресурсов и распараллеливайте на здоровье.
...
Рейтинг: 0 / 0
Многопоточное выполнение PL/SQL
    #39946192
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dmdmdm
Для PL /SQL о возможности распараллеливания со стороны СУБД не знаю. Боюсь, что это, мягко говоря, непросто автоматизировать.

1. dbms_parallel_execute
2. pipelined parallel enabled
...
Рейтинг: 0 / 0
Многопоточное выполнение PL/SQL
    #39946201
feagor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
andrey_anonymous,

3. Своё колдунство через нарезку нагрузки на джобы.

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


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