powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Каким образом выполяется count(*) и как его можно потимизировать
7 сообщений из 57, страница 3 из 3
Каким образом выполяется count(*) и как его можно потимизировать
    #39559228
Bobby Z.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexFF__|Все, что я сделал в топике, это поправил:
Bobby Z.
Код: plsql
1.
ALTER TABLE TAB NOPARALLEL;

приведёт к тому, что запросы без хинтов будут выполняться последовательно.
Не поправил, а подловил искусственным и не очень уместным примером с force parallel, который я парировал ещё более искусственным event 10384. Отвечал я на простой вопрос: есть какой-то флаг оптимизатору, чтоб он распараллеливал с заранее заданной степенью параллелизма? DEGREE объекта - как раз такой флаг, оптимизатор принимает его во внимание при рассчёте степени параллелизма в нормальных условиях по умолчанию (а других задано не было). Ваши собственные эксперименты, приведённые в топике, это неоднократно подтвердили, когда вы показывали "нормальный случай по умолчанию" и потом "ненормальный" со всякими alter session.

Можно ли заставить оптимизатор игнорировать degree объектов? Конечно, кучей способов - у атрибута самый низкий приоритет при вычислении dop. Но такой вопрос никто не задавал и непонятно, зачем надо было на него отвечать, да ещё в такой невежливой манере. Чтобы в конечном итоге показать, что "я знаю как это работает" - преувеличение? Ну показал...

И обратите внимание, что я написал про посчитанный dop, который можно узнать из плана. Реальный из плана узнать нельзя, ибо, повторюсь, карта местности не есть сама местность. Вы уже обсуждаете откуда узнать dop времени исполнения, то есть, опять отвечаете не на заданный вопрос, а на похожий другой. Тема сложная и интересная, но ТС вообще никаким боком не помогает, по-моему. Сомневаюсь, что ТС вообще этот срач читает. =)
...
Рейтинг: 0 / 0
Каким образом выполяется count(*) и как его можно потимизировать
    #39561954
helgisbox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Много интересного узнал, спасибо!

А вот такой еще есть вопрос. Время от времени некоторые процессы распараллеливаются на 32 сессии. Распараллеливание - это чтобы сделать лучше и быстрее при наличии избытка ресурсов. Но вот если для одной сессии создали 32, а ядер всего 32 и почти все они "пашут". Если появится еще одна пользовательская сессия, полезная, от сервера приложений или от клиента, кто-нибудь из тех, кто параллельно запустился "уступят" ей место. Есть какая-нибудь "выталкивающая" производительность в пользу сессий от клиента, а уже потом только утилизация ресурсов с целью улучшения ответа?
...
Рейтинг: 0 / 0
Каким образом выполяется count(*) и как его можно потимизировать
    #39562011
Фотография DВА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
helgisboxМного интересного узнал, спасибо!

А вот такой еще есть вопрос. Время от времени некоторые процессы распараллеливаются на 32 сессии. Распараллеливание - это чтобы сделать лучше и быстрее при наличии избытка ресурсов. Но вот если для одной сессии создали 32, а ядер всего 32 и почти все они "пашут". Если появится еще одна пользовательская сессия, полезная, от сервера приложений или от клиента, кто-нибудь из тех, кто параллельно запустился "уступят" ей место. Есть какая-нибудь "выталкивающая" производительность в пользу сессий от клиента, а уже потом только утилизация ресурсов с целью улучшения ответа?

"Это фантастика" (С) ))
...
Рейтинг: 0 / 0
Каким образом выполяется count(*) и как его можно потимизировать
    #39562154
Bobby Z.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
helgisboxМного интересного узнал, спасибо!

Есть какая-нибудь "выталкивающая" производительность в пользу сессий от клиента, а уже потом только утилизация ресурсов с целью улучшения ответа?Есть Resource Manager с его consumer groups и планами распределения ресурсов, но в плане вычислительных ресурсов (CPU) он умеет только тормозить процессы, заставляя их ждать часть времени по специальному ожиданию "resmgr: cpu quantum", что не совсем разнозначно "выталкиванию". Надо очень чётко понимать, как именно ResMan "управляет" потреблением CPU и как его использование влияет на время отклика, особенно на нагруженных системах (со средней загрузкой CPU выше 30%). Да и на ненагруженных тоже. Плюс там довольно много неприятных багов было в разное время, так что от версии тоже зависит.
...
Рейтинг: 0 / 0
Каким образом выполяется count(*) и как его можно потимизировать
    #39562603
helgisbox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Какая печаль, получается, что вспомогательное средство оказалось то самой лопатой, нет - граблями, которая и по тебе...
Версия 11.2.0.4. Если parallel_max_servers выставить с таким расчетом, чтобы оставалось гарантировано какое-то количество сессий для обычных прикладных запросов, до за пределы parallel_max_servers это "помощь" не уйдет?

То есть, к примеру, при 32 ядрах, сделать parallel_max_servers = 25, чтобы гарантировано 8 ядер всегда были для обычных запросов?
...
Рейтинг: 0 / 0
Каким образом выполяется count(*) и как его можно потимизировать
    #39562604
helgisbox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
helgisboxКакая печаль, получается, что вспомогательное средство оказалось то самой лопатой, нет - граблями, которая и по тебе...
Версия 11.2.0.4. Если parallel_max_servers выставить с таким расчетом, чтобы оставалось гарантировано какое-то количество сессий для обычных прикладных запросов, до за пределы parallel_max_servers это "помощь" не уйдет?

То есть, к примеру, при 32 ядрах, сделать parallel_max_servers = 25, чтобы гарантировано 8 ядер всегда были для обычных запросов?
24 разумеется, опечатка ;)
...
Рейтинг: 0 / 0
Каким образом выполяется count(*) и как его можно потимизировать
    #39562681
PX server/PQ slave
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
helgisboxчтобы гарантированоВсе значительно иначе. Рассуждать о гарантированности в отрыве от реальной нагрузки и железа бессмысленно. В расчетах дефолтных параметров параллелизма оракл обычно ориентируется на удвоенное количество ядер. Но есть еще ориентир parallel_io_cap_enabled, который играет рояль в сочетании с calibrate_io.
...
Рейтинг: 0 / 0
7 сообщений из 57, страница 3 из 3
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Каким образом выполяется count(*) и как его можно потимизировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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