martes, 12 de noviembre de 2024

EXPLAIN PLAN para el DBA

 `EXPLAIN PLAN` es una herramienta en Oracle que te permite ver cómo la base de datos planea ejecutar una consulta. Puedes usarla para verificar si la consulta está utilizando índices y optimizar su rendimiento. Aquí tienes los pasos básicos:


1. Configurar la salida:

   - Primero, asegúrate de tener una tabla llamada `PLAN_TABLE` en tu esquema. Esta tabla almacena los resultados de `EXPLAIN PLAN`.

   - Puedes crearla con el siguiente comando si no existe:


   sql

     @?/rdbms/admin/utlxplan.sql

   


2. Ejecutar `EXPLAIN PLAN`:

   - Usa `EXPLAIN PLAN FOR` seguido de la consulta que quieres analizar.


     ```sql

     EXPLAIN PLAN FOR

     SELECT NVL(SUM(o.ncanprest), 1) AS can

     FROM fact_grl f, ord_hist o

     WHERE f.nfacgrl = o.nfacgrl

       AND f.ncodosoc = 1

       AND TRUNC(o.dfec_pre) BETWEEN :FecIni AND :FecFin;



3. Ver el plan de ejecución:

   - Luego, consulta el plan con el siguiente comando:


     ```sql

     SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY());

     ```


   - Este comando muestra el plan de ejecución en un formato legible. 


4. Interpretar el resultado:

   - Observa los valores en la columna `Operation` para ver las acciones realizadas (como "TABLE ACCESS FULL" o "INDEX RANGE SCAN").

   - Si ves "TABLE ACCESS FULL", Oracle está realizando un escaneo completo de la tabla, lo que suele ser menos eficiente.

   - Si ves "INDEX RANGE SCAN" o "INDEX UNIQUE SCAN", la consulta está utilizando un índice, lo cual es generalmente más eficiente.


Este análisis te permitirá ver si Oracle utiliza el índice y cómo está accediendo a los datos, ayudándote a ajustar la consulta o los índices según sea necesario.

lunes, 17 de junio de 2024

Instalación de Jasper Reports Integracion en Oracle Ords 21

 Jasper Reports Integration:

Descargar el archivo:  jri-2.7.0-jasper-6.16.0.zip   del Sitio de Jasper.

en la carpeta del usuario Tomcat: /home/tomcat.


unzip jri-2.7.0-jasper-6.16.0.zip , nos crea la carpeta  jri-2.7.0-jasper-6.16.0/

mv jri-2.7.0-jasper-6.16.0/ jasper/

cd /home/tomcat/jasper/webapp/

mv jri.war jasper.war 

cp jasper.war /home/tomcat/apache-tomcat/webapss 

Configurando el directorio de Jasper

cd /home/tomcat/jasper/bin

./setConfigDir.sh  /home/tomcat/apache-tomcat/webapps/jasper.war /home/tomcat/jasper

Confirmación del directorio:

./getConfigDir.sh  /home/tomcat/apache-tomcat/webapps/jasper.war

Finalmente en la carpeta:

/home/tomcat/jasper/conf

cambiar la cadena de conexión a la base de datos oracle con usuario y contraseña en el archivo

application-properties.


y voila!



lunes, 6 de mayo de 2024

Correo electrónico con SMTP externo (Gmail y otros) en Oracle Apex

 

BEGIN
apex_instance_admin.set_parameter('SMTP_TLS_MODE', 'STARTTLS');
COMMIT;

END;

martes, 28 de julio de 2020

Jasper Repors - Tomcat - Ords

   Integración sin costo de Jasper Reports con Apex - Ords de Oracle y Apache Tomcat

En este artículo vamos a ver la integración de Jasper Reports, basándonos en el libro de 
la Ing. Clarisa Mamán Orfali, cuyo título es similar.
La diferencia está en que en vez de hacerlo con glassfish, uso Apache Tomcat.

Paso 1:
                Descargar Jasper Reports Integration zip de www.opel-consulting.de

# wget http://www.opal-consulting.de/downloads/free_tools/
JasperReportsIntegration/2.4.0/JasperReportsIntegration-2.4.0.0.zip

Paso 2:
             Crear la carpeta JasperReportsIntegration dentro la carpeta webapps de apache tomcat.
             copiar JasperReportsIntegration-2.4.0.0.zip dentro la carpeta creada y unzipear.
             copiar JasperReportsIntegration.war a la carpeta webapps donde se encuentra
             ords.war

Paso 3:
              Configurar el J2EE server tanto en Ords como en JasperReports:

               Dentro la carpeta donde se instala Oracle Ords
                entrar a la carpeta donde se hizo el configdir, en mi caso:
               # cd ords19-config/ords
               # vi default.xml 
                agregar: 
jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=esdras.cirmedico.com)(PORT=1522)
)(CONNECT_DATA=(SERVICE_NAME=cm12c.cirmedico.com)))::


en JasperReportsIntegretion/WEB-INF/conf

vi application_properties

url=jdbc:oracle:thin:@miservidor:1521:mi_sid


Paso 4:
      Instalar en Apex el formulario f121_JasperReportsIntegration
      en el workspace en uso.

lunes, 25 de mayo de 2020

cambiar set de caracteres a la base de datos oracle

SOLUCION SQL> shutdown immediate;
Base de datos cerrada.
Base de datos desmontada.
Instancia ORACLE cerrada.
SQL> startup mount;
Instancia ORACLE iniciada.

Total System Global Area 2.0310E+10 bytes
Fixed Size 2212976 bytes
Variable Size 1.1006E+10 bytes
Database Buffers 9126805504 bytes
Redo Buffers 175132672 bytes
Base de datos montada.
SQL> ALTER SYSTEM ENABLE RESTRIcted session;
Sistema modificado.

SQL> ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0; 
Sistema modificado.

SQL> alter database open;
Base de datos modificada.

SQL> ALTER DATABASE NATIONAL CHARACTER SET WE8MSWIN1252;
ALTER DATABASE NATIONAL CHARACTER SET WE8MSWIN1252
*
ERROR en linea 1:
ORA-12714: juego de caracteres nacional especificado no valido


SQL> ALTER DATABASE CHARACTER SET WE8MSWIN1252;
ALTER DATABASE CHARACTER SET WE8MSWIN1252
*
ERROR en linea 1:
ORA-12712: el juego de caracteres nuevo debe ser un superjuego del juego de
caracteres antiguo


SQL> UPDATE PROPS$ SET VALUE$ = 'WE8MSWIN1252' WHERE NAME = 'NLS_CHARACTERSET';

1 fila actualizada.

SQL> commit;

Confirmacion terminada.

SQL> shutdown immediate;
Base de datos cerrada.
Base de datos desmontada.
Instancia ORACLE cerrada.
SQL> startup;
Instancia ORACLE iniciada.

Total System Global Area 2.0310E+10 bytes
Fixed Size 2212976 bytes
Variable Size 1.1006E+10 bytes
Database Buffers 9126805504 bytes
Redo Buffers 175132672 bytes
Base de datos montada.
Base de datos abierta.
SQL> select value from nls_database_parameters where parameter = 'NLS_CHARACTERSET';

VALUE
----------------------------------------
WE8MSWIN1252

--La base nuevamente y la volvi a subir par aver que hubiera tomado los cambios permanentemente

Lance nuevamente la importacion , ya NO ambiente la variable NLS_LANG
imp usuario/contraseña file=archivo.dmp log=imp_110916_1439_archivo.log ignore=y statistics=none fromuser=deusaurio touser=ausuario

Import terminated successfully with warnings.

lunes, 3 de abril de 2017

Apex lenguaje español en tres pasos

Cambiar Apex a Español:

1.- Setear la variable de entorno NLS_LANG

$ export NLS_LANG=American_America.AL32UTF8

2.- ubicarse en el directorio "es", en mi caso:

$ cd /u01/app/oracle/apex/builder/es

3.- Ejecutar en sqlplus dos comandos:

alter session set CURRENT_SCHEMA = APEX_050100;

@load_es.sql

------------------------------------------