Es muy extenso el tema pero bueno, te paso una lista de cosas a chequear.
- Eliminar y reemplazar cualquier SELECT - ENDSELECT que haya.
- Quitar Select dentro de LOOPS. Si tenes Selects dentro de loops, ponelos afuera y dentro del loop accede con READ TABLE o LOOP a la tabla interna.
- Evitar Select que tengan muchos INNER JOIN. Usar varios selects separados con FOR ALL ENTRIES.
- Tratar de ingresar por campos claves y/o índices disponibles.
- Evitar el SELECT *
- Si utilizas la BSEG, la misma es una tabla CLUSTER reemplaza la búsqueda con las tablas BSID, BSIK, BSIS, BSAS, BSAD y BSAK.
- Evitar Select a tablas que tardan mucho, tratando de encontrar otras lógicas de búsqueda.
- En el caso que tengas LOOP Anidados con muchos registros, como por ejemplo:
Es mucho más performante utilizar la técnica de "Cursor Paralelo". Donde primero averiguas cual es el índice y accedes por índice.
Más info:
Saludos
Úlima edición por K-MUS fecha: 25/10/12 a las 20:20:34.
|