|
#1
|
|||
|
|||
Hola Jotabin, Gracias por reforzar mi comentario.
Saludos a todos |
#2
|
|||
|
|||
Tienes razón, esa es la manera correcta, igualmente prueba en la consulta usar todos EQ y cambiarlos por IN, y la performance baja.
Saludos a todos! |
#3
|
|||
|
|||
Compañeros,
Creo que de lo anterior surge un nuevo tema, el cual yo no estoy muy adentrado... el uso del TRACE (ST05), alguno de ustedes nos puede dar una catedra de como usarlo y saber especificamente que INDICE se esta ocupando al momento de ejecucion???. Espero sus comentarios Saludos |
#4
|
|||
|
|||
Abaperos
según lei en unos datos que consegui por la internet una de las cosas principales que tenemos que hacer al momento de realizar un select es colocar las ? falsas delante y luegos las verdaderas, ademas creo que lo mejor es tratar de colocar la mayor cantidad de campos claves dentro del where es lo mejor.
|
#5
|
||||
|
||||
Eso de las condiciones falsas por delante no lo conocía, pero sí tengo entendido que cuando la condición para uno de los campos del WHERE es negativa, ese campo no cuenta para el índice; es decir que, para asegurarte de que tu SELECT use un índice [que puede ser la clave principal] no sólo tenés que asegurarte de incluir todos los campos de ese índice, sino que además la condición con la cual los usás tiene que ser positiva.
__________________
resistance is futile
|
#6
|
||||
|
||||
Ah, y sí... si alguien puede aportar una pequeña explicación o algún manual sobre el uso del TRACE, yo también lo agradecería mucho porque no tengo idea de ese tema.
__________________
resistance is futile
|
#7
|
||||
|
||||
Hola, gracias a todos, por la ayuda.
No se como realizar el indice o no entiendo a que os referis... no llevo mucho tiempo en este mundillo. Me podriais explicar a que os referis con el indice, creo q un ejemplo me vendria de perlas. Gracias
__________________
Carpe Diem !! |
#8
|
|||
|
|||
aupa gente,
La ST05 que tengo en este sistema me aparece en aleman, y no me acuerdo de los nombres en castellano, pero mas o menos a ver si nos entendemos . Lo he usado poco, pero se trata de marcar el acceso SQL-Trace en las opciones de la izquierda, viene por defecto. En las de la derecha activar el trace. En otro modo que ya tienes que tener abierto, realizas la ejecucion del programa que quieres analizar. Despues detienes el analisis en las opciones de la derecha, y finalmente examinas los resultados con otra de las opciones. A mi me pone 'Trace einschalten' en la primera, activar trace; 'Trace ausschalten' en la tercera, interrumpir trace; y 'Trace anzeigen' en la cuarta, mostrar trace; seguro que a ti te viene en castellano. Al mostrar el trace te aparece la ventanita con tu usuario...y al aceptar ves los accesos y tiempos de la ejecucion que hayas realizado, o de lo que sea que estes realizando en ese momento, para no liarse es mejor tener solo lo que interesa... no se si te habre ayudado con tanto aleman , espero que si saludos, sealons. |
#9
|
|||
|
|||
Los indices solo funcionan si se utiliza el operador de igualdad y el orden de las clausulas depende, generalmente es muy optimo poner los campos en el select y en el where en el mismo orden que estan en la tabla pero si hay una clausula que sabemos que es muy restrictiva deberia ir primero en la where, por otro lado la eleccion del indice por parte del motor del sgbd es algo bastante complicado pero hay una manera de "forzar" al select para que vaya por un determinado indice, aqui os dejo un ejemplo
SELECT k~vbeln k~augru k~zsfecins k~zsordser p~posnr p~matnr p~pstyv p~uepos p~kwmeng f~vbtyp_n f~rfmng f~erdat f~bwart INTO TABLE i_informe FROM vbak AS k INNER JOIN vbap AS p ON k~vbeln = p~vbeln LEFT OUTER JOIN vbfa AS f ON p~vbeln = f~vbelv AND p~posnr = f~posnv WHERE k~auart IN rg_auart AND k~zsordser IN s_ordser %_HINTS ORACLE 'INDEX ("VBAK" "VBAK~Z01")'. aqui forzaria al select a ir por el indice Z01 de la tabla vbak otra forma que el estandar utiliza bastante para optimizar los select es partir los rangos en fragmentos mas pequeños y unir los resultados con select appending Un saludo |
#10
|
|||
|
|||
LA transaccion ST05 se utiliza basicamente por los BASIS para medir las cuotas de las trazas SQL para utilizarla es preferible ingresar al sistema en el idioma ingles (ya que ingrasamos en español, el idioma en el cual se va a cargar es ALEMAN, -no me pregunten por que-) y alli seleccionamos el tipo de traza que queremos evaluar (si es SQL Trace, Enqueue Trace, RFC Trace o Buffer Trace) y se selecciona la opcion de la traza con los parametros que ella pida, entre las que se encuentran:
Activate Trace: Sirve para activar el medidor de la traza para todos los selects de los programas que este corriendo el usuario en curso. Activate Trace with Filter: Sirve para activar el medidor de la traza para los selects de un programas que este corriendo el usuario en curso, en ese momento, podemos especificar la transacción, el nombre del programa, el usuario, la identificacion del proceso e include y podemos incluir o excluir de acuerdo a lo que necesitemos evaluar. Deactivate Trace: Desactiva la traza SQL para que despues podamos ver el resultado de la Evaluacion el Display Trace. Display Trace: Aqui se puede ver el resultado de el desempeño de la traza que decidimos evaluar, podemos especificar una serie de opciones que se nos presentan o simplemente activar con las que ya vienen por defecto. Enter SQL Statment: Esta opcion evalua una Traza SQL que nosotros introduzcamos en el editor que se nos presenta en la pantalla, recomiendo no usar variables sino valores directamente. En lo personal solo he utilizado en lo que se refire a los tipos de traza las SQL Trace (que miden las trazas SQL en tiempo de ejecución de un programa, para lo que hago un debugin del programa que contiene la traza a evaluar en un nodo y corro la trancación en otro) y las RFC Trace (que miden - a mi parecer - la conectividad entre las BAPIS y los web dinpro). Espero haberles ayudado en algo. P.D.: Todo lo anteriormente dicho lo he sacado de mi propia autoria y experiencia, cualquier cosa pueden contactarme a mi correo . P.D2.: Voy a ver si puedo Hacer una presentacion de anteriormente narrado y les escribo de nuevo. Úlima edición por worwa fecha: 14/12/06 a las 14:06:35. |
Herramientas | Buscar en Tema |
Desplegado | |
|
|