- Oracle en Espanol - Por Francisco Munoz Alvarez - http://oracleenespanol.com -
Triggers en RAC 10g
Posted By mstaub On 22. May 2008 @ 16:33 In Consultas | 6 Comments
Hola Francisco, mi consulta es la siguiente. Hace unos días cree dos triggers para pinear objetos en el RAC (uno por cada nodo). Lo que no estoy seguro es cómo se ejecutan los trigges, si ambos se ejecutan sobre un nodo, o se ejecutan sobre los distintos nodos.
No sé si existe algún parámetro para indicar sobre qué nodo debe ejecutarse el trigger, porque a pesar que los cree en cada nodo, ambos aparecen en ambas máquinas.
Agradezco desde ya tu respuesta.
6 Comments To "Triggers en RAC 10g"
#1 Comment By fmunoz On 23. May 2008 @ 23. May 2008
Estimado Marco,
Acuerdate que los triggers, traducidos al espanol son gatillos, o sea se gatillan despuen o antes que ocurra algo en la base de datos, por ejemplo antes de un update, despues de un update, despues de un startup, antes de un borrado, despues de un borrado, antes de que se conecte una session, despues que se conecte una session a la instancia,etc.
Para este tipo de trigger, creo que utilizaste la opcion after startup?
Si es asi, acuerdate que las instancias son logicas, o sea cada vez que una instancia sea levantada utilizando esa Base de Datos, se van a pinear los objetos en memoria en cada instancia. Para ver un ejemplo de este tipo de trigger anda a Consalud ai yo tenia un trigger que pineaba los objetos en memoria after startup.
Saludos,
Francisco Munoz Alvarez
#2 Comment By mstaub On 23. May 2008 @ 23. May 2008
Cual sería la mejor forma o un procedimiento para determinar qué objetos son los más accesados y pinearlos en memoria para disminuir el IO en un RAC?
#3 Comment By fmunoz On 26. May 2008 @ 26. May 2008
Estimado Marco:
library cache pin
This event manages library cache concurrency. Pinning an object causes the heaps to be loaded into memory. If a client wants to modify or examine the object, the client must acquire a pin after the lock.
Pin Packages in the Shared Memory Pool
You can pin frequently accessed packages in the shared memory pool, using the supplied package DBMS_SHARED_POOL. When a package is pinned, it is not aged out by the least recently used (LRU) algorithm that Oracle normally uses. The package remains in memory no matter how full the pool gets or how frequently you access the package.
Para que entiendas el concepto, aqui va el link que explica bien todas las areas de memoria del oracle y metodos para analizarlos.
[1] http://www.filibeto.org/sun/lib/nonsun/oracle/10.2.0.1.0/B19306_01/server.102/b14211/memory.htm
Avisame si te sirvio o no,
Saludos,
Francisco Munoz Alvarez
#4 Comment By fmunoz On 26. May 2008 @ 26. May 2008
Te voy a mandar unos scripts pronto.
Saludos.
Francisco Munoz Alvarez
#5 Comment By fmunoz On 26. May 2008 @ 26. May 2008
Marco,
Aqui va el script para monitorear los SQL en memoria:
set pagesize 60;
column executions format 999,999,999;
column Mem_used format 999,999,999;
SELECT SUBSTR(owner,1,10) Owner,
SUBSTR(type,1,12) Type,
SUBSTR(name,1,20) Name,
executions,
sharable_mem Mem_used,
SUBSTR(kept||’ ‘,1,4) “Kept?”
FROM v$db_object_cache
WHERE type in (’TRIGGER’,'PROCEDURE’,'PACKAGE BODY’,'PACKAGE’)
ORDER BY executions desc;
Saludos,
Francisco Munoz Alvarez
Article printed from Oracle en Espanol - Por Francisco Munoz Alvarez: http://oracleenespanol.com
URL to article: http://oracleenespanol.com/2008/05/22/triggers-en-rac-10g/
URLs in this post:
[1] http://www.filibeto.org/sun/lib/nonsun/oracle/10.2.0.1.0/B19306_01/server.102/b14211/memory.htm: http://www.filibeto.org/sun/lib/nonsun/oracle/10.2.0.1.0/B19306_01/server.102/b14211/memory.htm
Click here to print.