PDA

Ver la Versión Completa : Select en Base de Datos muy grande


winsor
24/10/09, 14:00:06
Hola,

EStoy haciendo un desarrollo que consulta la tabla VBAK con el sisguiente WHERE:

vbeln IN r_vbeln OR vgbel IN r_vbeln

LO que se quiere es tener el flujo de documentos.

Si lo pruebo con la primera condición el tiempo de respuesta es aceptable pero si lo pruebo con las dos condiciones el tiempo de respuesta es supremamente elevado.

1. Opción 1: Esto pensando en crear un indice por el campo vgbel, pero teniendo en cuenta que este sistema es muy grande (1.5 TB), es posible que mejore el select pero otros procesos relacionados con esta tabla se vean afectados.

2. Opción 2: Hacer el select con un inner join así:

VBAK AS a
INNER JOIN vbfa AS
ON a~vbeln = b~vbelv
INNER JOIN vbap AS c
ON b~vbeln = c~vbeln

Y así obtengo los datos que necesito presentar en el reporte

Observese que esta última consulta se hace utilizando las llaves de las tablas.

Cuál de estas dos opciones es más viable ...?

También he estado investigando con la opción del manejo de cursores pero los tiempos de respuesta no se mejoran.

Agradezco cualquier colaboración o tip que me puedan dar.

Winsor

DavidXD_XD
26/10/09, 18:48:15
Hola Winsor, pues la tienes tranca ... el campo VGBEL te malogra todo, para sacar informacion del flujo de documentos uso esta funcion RV_ORDER_FLOW_INFORMATION, no demora casi nada y lo saca rapido ... pues mi iria a la primera opcion pues el JOIN tbm va demorar mucho ... tampoco x part de SAP no veo ningun indice a menos q esta (VBAK, VBAP se relacione con alguna otra tabla o alguna vista), si t fijas x esa parte hay varias, tal vez una t pueda servir