#1
|
|||
|
|||
Select en Base de Datos muy grande
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 |
#2
|
||||
|
||||
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
__________________
David Carballido Córdova |
Herramientas | Buscar en Tema |
Desplegado | |
|
|