Ayuda con optimizer_mode=chose URGENTE!!!!
Tengo una BD Oracle 9i seteada en modo RULE. Existen dos aplicaciones que se conectan a dicha BD. La aplic1 necesita para trabajar que la Bd este obligatoriamente en modo RULE mientras que la aplic2 necesita que este en modo CHOOSE para ejecutar sus querys correctamente sino demora demasiado. Yo no tengo acceso a los fuentes de ninguna de las aplicaciones así que no puedo ponerle en duro el ALTER SESSION SET OPTIMIZER=choose.
Mi pregunta es: Habrá alguna forma de setear en el cliente Oracle (cliente de conexión instalado en la pc de los usuarios de la aplic2) el modo optimizer? o en algún otro lugar, para que todas las aplicaciones que se conecten con ese cliente lo hagan en ese modo.
Espero sus consejos, cualqueir cosa será bienvenida. Muchas gracias de antemano
Mi pregunta es: Habrá alguna forma de setear en el cliente Oracle (cliente de conexión instalado en la pc de los usuarios de la aplic2) el modo optimizer? o en algún otro lugar, para que todas las aplicaciones que se conecten con ese cliente lo hagan en ese modo.
Espero sus consejos, cualqueir cosa será bienvenida. Muchas gracias de antemano
Podrías hacer algo como esto:
create or replace trigger poner_optimizador after logon on database
declare app varchar2(48)
begin
select program
into app
from v$session
where audsid = userenv('sessionid');
if app = 'loquesea.exe' then
execute immediate 'alter session set optimizer_mode = choose';
elseif app = 'otracosa.exe' then
execute immediate 'alter session set optimizer_mode = rule';
end if
end;
/
Saludos
create or replace trigger poner_optimizador after logon on database
declare app varchar2(48)
begin
select program
into app
from v$session
where audsid = userenv('sessionid');
if app = 'loquesea.exe' then
execute immediate 'alter session set optimizer_mode = choose';
elseif app = 'otracosa.exe' then
execute immediate 'alter session set optimizer_mode = rule';
end if
end;
/
Saludos
lo más facil es que sustituyan sus sentencias más pesadas con el hint /+ RULE/ .
Oracle en la 10 ya no da soporte, ni la posibilidad de trabajar con rules. Trabajar con Rules es anticuado y desde la 8i es más rápido si se utiliza cost, sabiendo optimizar las sentencias, los analyze,dbms_stats.gather (es increible), histogramas, etc...
Oracle en la 10 ya no da soporte, ni la posibilidad de trabajar con rules. Trabajar con Rules es anticuado y desde la 8i es más rápido si se utiliza cost, sabiendo optimizar las sentencias, los analyze,dbms_stats.gather (es increible), histogramas, etc...