buenas queria preguntarles si entre mas campos restrictivos hayan en la clausula WHERE mas rapida es la consulta o es mas lenta.
gracias!
| ||||
Entre mas campos hayan en el WHERE mas rapida es la consulta? buenas queria preguntarles si entre mas campos restrictivos hayan en la clausula WHERE mas rapida es la consulta o es mas lenta. gracias!
__________________ SEO en Medellin |
| |||
Re: Entre mas campos hayan en el WHERE mas rapida es la consulta? Pues supongo que dependerá del numero de resultados que cumplan la(s) condición(es). Pero a igualdal de resultados imagino que cuantos más "where" peor, porque tiene más cosas que comprobar y filtrar. |
| ||||
Re: Entre mas campos hayan en el WHERE mas rapida es la consulta? entre mas where tienes, es mas especifica la consulta y mas rápida, yo he comprobado eso tanto en oracle,sql y access
__________________ Vanidad de Vanidades... Todo es Vanidad... |
| ||||
Re: Entre mas campos hayan en el WHERE mas rapida es la consulta? Entiendo sus puntos de vistas, ahora profundizo un poco mas. Sucede que en una tabla de usuario necesito hacer una busqueda de usuarios por pais y usuarios por region ( son dos ID unicos ) entonces tengo dos opciones crear un indice para ID_regio y crear otro indice para ID_pais o crear un solo indice para ambos agregando ambos campos al indice. ahora bien desde el pundo te vista de los insert y los update resulta mas optimo hacer un solo indice, pero queria saber como se comportan las consultas: si uso la segunda opcion el where para buscar regiones tendria que ser: where ID_pais=ID_del_pais_buscado AND ID_region=ID_region_buscada es decir dos condiciones para el where. ( aunque es usando un indice) si estuvieran en mi lugar que harian ustedes?
__________________ SEO en Medellin |
| |||
Re: Entre mas campos hayan en el WHERE mas rapida es la consulta? Prodrías mostrar esa comprobación??? |
| ||||
Re: Entre mas campos hayan en el WHERE mas rapida es la consulta? Corriendo una consulta, en un caso de oracle, tengo una tabla con 254,512 registros, tenia q hacer inner join con esa tabla a otras 4 más en 2 diferentes tablespaces, para generar un reporte pdf, y entre mas where tenia la consulta, era mucho mas rapido, incluso desde el manejador, o en una consulta directa de sql, en el caso de sql server o de access, entre mas filtros y mas si estos tienen indices.
__________________ Vanidad de Vanidades... Todo es Vanidad... |
| |||
Re: Entre mas campos hayan en el WHERE mas rapida es la consulta? Cita: Creo que estás equivocada.
Iniciado por nohemibaac Corriendo una consulta, en un caso de oracle, tengo una tabla con 254,512 registros, tenia q hacer inner join con esa tabla a otras 4 más en 2 diferentes tablespaces, para generar un reporte pdf, y entre mas where tenia la consulta, era mucho mas rapido, incluso desde el manejador, o en una consulta directa de sql, en el caso de sql server o de access, entre mas filtros y mas si estos tienen indices. Lo que te pasa en el caso de Oracle, es que el planificador saca un buen rendimiento de tus condiciones, pero eso no significa que a más condiciones mejor rendimiento, depende de las condiciones, de los indices, etc. Tambien debes tener en cuenta que el rendimiento no se puede medir en "tiempo", porque depende de la carga de la BD, S.O., etc.... Si la select con más condiciones, reduce significativamente el número de resultados, logicamente la consulta es mucho más rápida, pero es porque tienes menos "datos" que entregar al informe. Por tanto, esto para mi no es una prueba valida. Un saludo |
| ||||
Re: Entre mas campos hayan en el WHERE mas rapida es la consulta? Tampoco para mí es una prueba válida. Es decir, ¿cómo lo cuantificas? ¿Cual es el costo por registro? Supon que tienes un índice definido por dos campos A y B. Con una consulta como:
Código:
El índice localizará de inmediato la página donde se localizan los datos. La demora dependerá unicamente del tiempo requerido para obtener la página.SELECT A, B, ..., N FROM Table WHERE A = ? AND B = ? Ahora la misma consulta con la condición:
Código:
Puede llegar a usar el mismo índice, pero debe discriminar los datos de la página para devolverte sólo lo que requieres. Obviamente el proceso de discriminación tiene un costo adicional que no pesaba sobre la primera consulta. Sin embargo, la cantidad de registros devueltos suele ser menor y por lo tanto da la impresión de que ha sido más rápida la consulta. WHERE A = ? AND B = ? AND C = ? |
| |||
Re: Entre mas campos hayan en el WHERE mas rapida es la consulta? No se como se pueden hacer ciertas afirmaciones despues de la clase magistral dada por matanga Apoyado por Beakdan y seyko. Que una vez una consulta me fue mas rapida en tres motores no prueba absolutamente nada. Bueno no se si a Access se le puede llamar motor... Quim |
| ||||
Re: Entre mas campos hayan en el WHERE mas rapida es la consulta? OK, muchas gracias a todos, he entendido lo que me dicen y además he hecho tambien pruebas... hasta luego
__________________ SEO en Medellin |
| |||
Respuesta: Entre mas campos hayan en el WHERE mas rapida es la consulta? Tambien estoy deacuerdo con lo que ha dicho matanga. La velocidad de la consulta queda expresada en la concecuencia que tiene al procesador. Entre menos procesador tiene en uso, significa que debio realizar menos calculos. Muchas veces creemos que por que aparece mas rapido en nuestra pantalla es mas rapida, lo unico que pasa es que como nuestro cpu no tiene que procesar y preparar un informe de muchos datos resultantes no demora tanto. Matanga excelente respuesta. |
| ||||
Respuesta: Entre mas campos hayan en el WHERE mas rapida es la consulta? Lo siento, pero los temas resucitados se cierran, especialmente aquellos que llevan muuuucho tiempo muertos y que no aporte novedades al análisis. Este tenía ya cinco años...
__________________ ¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente... "El problema es la interfase silla-teclado." (Gillermo Luque) |