Archive for julio, 2010

Uso de SQL_TRACE

martes, julio 20th, 2010

Primero hay que alterar la sesion

ALTER SESSION SET SQL_TRACE=TRUE

Luego de esto se generará un archivo extensión *.trc dentro de la carpeta de oracle, en mi caso

%ORACLE_HOME%\admin\%ORACLE_SID%\udump

Luego se debe utilizar la aplicación de oracle TKPROF, una ejecusion básica sería

TKPROF archivo_trc nombre_archivo_output SYS=NO EXPLAIN=USER/PASSWORD

Y luego de eso te genera un archivo (nombre_archivo_output) con las consultas analizadas, tiempo de CPU, cantidad de ejecuciones, lecturas a disco y otros. En mi caso por ejemplo

call     count       cpu    elapsed       disk      query    current        rows
------- ------  -------- ---------- ---------- ---------- ----------  ----------
Parse        1      0.00       0.00          0          0          0           0
Execute   9758      0.09       0.16          0          0          0           0
Fetch     9758      0.21       0.24          0      39032          0        9758
------- ------  -------- ---------- ---------- ---------- ----------  ----------
total    19517      0.31       0.41          0      39032          0        9758

Crear un proxy con axis

lunes, julio 19th, 2010

El siguiente codigo presenta el establecimiento de las variables de entono y la llamada al proceso que genera un proxy en Java con las librerías de Axis.

SET AXIS_HOME=..\axis-1_4\lib
SET CLASSPATH=..\java5\lib;.;%AXIS_HOME%\activation.jar;%AXIS_HOME%\mail.jar;%AXIS_HOME%\axis.jar;%AXIS_HOME%\axis-ant.jar;%AXIS_HOME%\commons-discovery-0.2.jar;%AXIS_HOME%\commons-logging-1.0.4.jar;%AXIS_HOME%\jaxrpc.jar;%AXIS_HOME%\log4j-1.2.8.jar;%AXIS_HOME%\saaj.jar;%AXIS_HOME%\wsdl4j-1.5.1.jar;%CLASSPATH%
SET JAVA_HOME=..\java5
SET PATH=%PATH%;%JAVA_HOME%\bin\
java org.apache.axis.wsdl.WSDL2Java ruta_al_wsdl

Moviendo hacia otro tablespace tablas e índices en oracle

miércoles, julio 7th, 2010

Para mover una tabla y/o indice de un tablespace a otro se debe aplicar un ALTER como los siguientes

ALTER TABLE NOMBRE_ESQUEMA.NOMBRE_TABLA MOVE TABLESPACE NOMBRE_TABLESPACE;
ALTER INDEX NOMBRE_ESQUEMA.NOMBRE_INDICE REBUILD TABLESPACE NOMBRE_TABLESPACE;

Se puede utilizar un script (si tienes privilegios sobre las tablas) para poder armar este movimiento de tablas desde un esquema a otro. La primera selecciona toda la lista de tablas pertenecientes a un esquema y construye el SQL que ya fue mostrado. La seguna construye toda la tabla de indices.

select 'ALTER TABLE NOMBRE_ESQUEMA.' || table_name || ' MOVE TABLESPACE NOMBRE_TABLESPACE;' from all_tables where owner = 'NOMBRE_ESQUEMA'
select 'ALTER INDEX NOMBRE_ESQUEMA.' || index_name || ' REBUILD TABLESPACE NOMBRE_TABLESPACE;' from all_indexes where table_owner = 'NOMBRE_ESQUEMA'