MUNDOSAP

Regresar   MUNDOSAP > DESARROLLO > Programación ABAP IV
Nombre de Usuario
Contraseña
Home Descargas Registrar FAQ Miembros Calendario Buscar Temas de Hoy Marcar Foros Como Leídos




 
Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Viejo 27/04/09, 16:35:35
uo4396 uo4396 is offline
Member
 
Fecha de Ingreso: ago 2008
Mensajes: 90
Problema con indices de tablas

Hola a todos,

Tenía dos dudas en relación a los índices. A ver si alguien me puede ayudar:

1- ¿ Como se yo cual es el índice que el optimizador está eligiendo a la hora de realizar una consulta ?

2- Como puedo hacer que una consulta a base de datos me elija el índice que yo quiero? Creo que se hacer insertando un hint en código pero no tengo ni idea de l que es ni de como implementarlo.

Muchas gracias a todos
Responder Con Cita
  #2  
Viejo 27/04/09, 17:24:33
zonanet zonanet is offline
Senior Member
 
Fecha de Ingreso: mar 2007
Localización: Durango, Dgo. México
Mensajes: 195
%_HINTS DB6 '<IXSCAN TABLE=''TABLA'' INDEX=''"TABLA~N"'' />'

donde
DB6 es tu base de datos.
TABLA es la tabla a la que haces la selección.
TABLA~N es el índice secundario que vas a utilizar.

Esta línea va al final de las condiciones del where.

Saludos
Responder Con Cita
  #3  
Viejo 27/04/09, 19:15:19
Avatar de DavidXD_XD
DavidXD_XD DavidXD_XD is offline
Moderator
 
Fecha de Ingreso: ago 2006
Localización: Lima - Perú
Mensajes: 1,251
Hola, la que se da el trabajo de elegir el indice mas optimo es la misma BD, prueba con esto, entra al debugg d tu programa en ejecucion, y cuando llegues a la linea donde realizar el SELECT antes de darle F5, vete a la ST05 y activa el trace, luego realizar el paso correspondiente en tu progama (F5), y luego regresas a la ST05 a desactivar el trace, ahi dale en Trace Display y veras el SELECT que realizaste, posicionate sobre la linea cuando hace OPEN (no sobre FECTH) y dale en el boton EXPLAIN, ahi veras la sentencia en nativo que ejecutaste y al mismo tiempo abajo aparecera la tabla de acceso y el indice que eligio la BD, para forzar a la BD que no eliga por nosotros el indice a su criterio haces uso de la prolongacion de sentencia SELECT que menciona Zonanet, espero te pueda ayudar
__________________
David Carballido Córdova
Responder Con Cita
  #4  
Viejo 27/04/09, 20:30:34
uo4396 uo4396 is offline
Member
 
Fecha de Ingreso: ago 2008
Mensajes: 90
Muchas gracias por vuestra ayuda. Mañana probaré a ver que tal.

Saludos
Responder Con Cita
  #5  
Viejo 28/04/09, 09:05:30
uo4396 uo4396 is offline
Member
 
Fecha de Ingreso: ago 2008
Mensajes: 90
Hola. He hecho lo que me habeis dicho pero el código no me compila:


SELECT ltak~tanum ltak~vbeln ltap~tapos ltap~nltyp ltap~pvqui
FROM ltak AS ltak INNER JOIN ltap AS ltap
ON ltak~tanum = ltap~tanum
AND ltak~lgnum = ltap~lgnum
INTO TABLE l_t_tanum_silo
WHERE ltap~lgnum EQ l_t_t346l-lgnum
AND ltap~pquit EQ ' '
AND ltak~lgnum EQ l_t_t346l-lgnum
AND ltak~kquit EQ ' '
AND ltak~queue EQ ip_queue.

%_HINTS DB2 '<IXSCAN TABLE="LTAP" INDEX="LTAP~M"/>'.

Me dice que la sentencia %_HINTS no está definida.

Saludos y a ver si me podeis ayudar!!!!
Responder Con Cita
  #6  
Viejo 28/04/09, 13:36:15
Avatar de DavidXD_XD
DavidXD_XD DavidXD_XD is offline
Moderator
 
Fecha de Ingreso: ago 2006
Localización: Lima - Perú
Mensajes: 1,251
Hola, prueba esta sentencia:

%_HINTS ORACLE 'INDEX ("LTAP" "LTAP~M")'.
__________________
David Carballido Córdova
Responder Con Cita
  #7  
Viejo 28/04/09, 13:54:19
zonanet zonanet is offline
Senior Member
 
Fecha de Ingreso: mar 2007
Localización: Durango, Dgo. México
Mensajes: 195


Te sobra un punto:

AND ltak~queue EQ ip_queue .

la línea es parte de la consulta, entonces es punto va al final de la misma.

saludos.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Reglas de Mensajes
no puedes crear nuevos temas
no puedes responder temas
no puedes adjuntar archivos
no puedes editar tus mensajes

El código vB está On
Las caritas están On
Código [IMG] está On
Código HTML está Off
Saltar a Foro


Husos Horarios son GMT. La hora en este momento es 13:06:16.


www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web