Форум OlegON > Компьютеры и Программное обеспечение > Операционные системы и программное обеспечение > Oracle

Триггер для принудительного распараллеливания запросов : Oracle

28.03.2024 21:14


22.03.2013 20:24
OlegON
 
В Супермаге невозможно изменять запросы системы и некоторые не удается распараллелить, хотя они того заслуживают. Аналогичным образом невозможно избавиться от некоторых хинтов, мешающих оптимизатору нормально строить планы на больших БД (надо сказать, что с 1029 версией многое, если не все, было поправлено). Нижеследующий код выставляет пользователям Супермага параметр игнорирования хинтов и распараллеливание запросов, независимо от подсказок.
Код:
CREATE OR REPLACE TRIGGER "SYS"."SMUSER_NOHINT" AFTER LOGON ON DATABASE WHEN (supermag.ok_is_smuser(SYS_CONTEXT ('USERENV', 'SESSION_USER'))=1) BEGIN
EXECUTE IMMEDIATE 'ALTER SESSION set "_optimizer_ignore_hints"=true';
EXECUTE IMMEDIATE 'ALTER SESSION ENABLE PARALLEL QUERY';
EXECUTE IMMEDIATE 'ALTER SESSION ENABLE PARALLEL DDL';
EXECUTE IMMEDIATE 'ALTER SESSION ENABLE PARALLEL DML';
END smuser_nohint;
Часовой пояс GMT +3, время: 21:14.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.