Oracle optimo

Solo disponible en BuenasTareas
  • Páginas : 9 (2086 palabras )
  • Descarga(s) : 0
  • Publicado : 31 de agosto de 2010
Leer documento completo
Vista previa del texto
1) Validación Sintáctica
2) Validación Semántica
3) Optimización
4) Generación del QEP (Query Execution Plan)
5) Ejecución del QEP (Query Execution Plan)

En ejecuciones batch que hagan un volcado masivo de datos en una misma tabla usando un insert o update por registro dentro de un bloque por el motivo x se pueden optimizar con el uso de parámetros (si el cliente lo permite) o si usamosodbc con bind variables.

Optimizar cursores Java-Oracle
A menudo muchos programadores necesitan por algunas circunstancias leer gran cantidad de registros desde una base de datos Oracle o enviar una gran cantidad de registros. Lo que genera un grave problema de desempeño, el tiempo en que a Java le toma leer millones de registros o enviar millones de insert es muy tardado.
Para lectura:...
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
...
PreparedStatement pstmt = conn.prepareStatement(
"SELECT ... FROM ...");
ResultSet rs = pstmt.executeQuery();rs.setFetchSize(1024);
while (rs.next()) {
...
}
rs.close();
...
Para escritura:
...
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;...
PreparedStatement pstmt = conn.prepareStatement(
"INSERT INTO ... VALUES (?)");
((OraclePreparedStatement)pstmt).setExecuteBatch(1024);
...
while ((line=buffer.readLine()) != null) {
pstmt.setString(1, line);
pstmt.executeUpdate();
}

La cadena deconexión que solicitas es la siguiente:
            Connection cn = null;
            Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
       

            boolean valid = true;
            try{

                        cn = DriverManager.getConnection("jdbc:oracle:thin:@pelimdb12:1521:PEDWHPRD", user, passOut);
               
            }catch (Exception e) {                e.printStackTrace();
                valid = false;
                throw new Exception("Usuario o contraseña inválida.");
            } finally {
                try {
                  if (cn != null && !cn.isClosed())
                    cn.close();
                } catch (Exception e) {
                    e.printStackTrace();
                    valid = false;                } finally {
                    cn = null;
                }
            }
PESGAPRD =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = peracvdb01)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = peracvdb02)(PORT = 1521))
(LOAD_BALANCE = yes)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = pesgaprd)
)
)

JDBC: interfaz que proporciona Javapara la conexión a bases de datos, de clases e interfaces que permiten a Java ejecutar consultas y órdenes en unas bases de datos. Se necesita de classes12.jar
Driver para conexión:
* JDBC Thin Driver: No requiere de la instalación cliente de ORACLE. Ideal para Applets. 
* JDBC OCI :API nativa de ORACLE, para aplicaciones J2EE.
* JDBC KPRB driver: (default connection) Para Java StoredProcedures y Database JSP's.
El driver JDBC Thin se conecta y comunica con ORACLE a nivel de sockets. Proporciona su propia versión del protocolo Net8 (SQL*Net) sobre TCP/IP, por lo que no es necesario que exista una instalación de la parte cliente de ORACLE.
"jdbc:oracle:thin:@WIN01:1521:oracleBD", "user", "passw"
El driver JDBC OCI usa el API ORACLE OCI (Oracle Call...
tracking img