En uno de los hilos en este foro, alguien me escribio que es recomendable evitar la utilización del operador In.
¿Cual es la razón de esta recomendación?
De lo contrario - ¿que es la alternativa?
¿Alguien conoce un sitio que explica el tema?
| |||
Cuales son las desventajas del operador In? En uno de los hilos en este foro, alguien me escribio que es recomendable evitar la utilización del operador In. ¿Cual es la razón de esta recomendación? De lo contrario - ¿que es la alternativa? ¿Alguien conoce un sitio que explica el tema?
__________________ El Castellano no es mi lengua materna: discúlpenme por los errores gramaticales. Mi blog |
| |||
¿Tienes algún ejemplo? Intentá el siguiente código:
Código SQL:
Los planes de ejecución de ambas consultas son identicos.Ver original ¿Tienes algún ejemplo que muestra que el Exist es mejor que el In, o algun artículo acerca de este tema? Desde ya- muchas gracias.
__________________ El Castellano no es mi lengua materna: discúlpenme por los errores gramaticales. Mi blog |
| ||||
Respuesta: Cuales son las desventajas del operador In?
__________________ What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me |
| |||
Respuesta: Cuales son las desventajas del operador In? Gracias por el vinculo. La mayoria de las respuestas allí son sobre la diferencia funcional (las capacidades de cada una) y no en el rendimiento. Sin embargo- encontre por lo menos una respuesta util.
__________________ El Castellano no es mi lengua materna: discúlpenme por los errores gramaticales. Mi blog |
| ||||
Respuesta: Cuales son las desventajas del operador In? Tambien la puedes buscar en las MEJORES PRACTICAS de SQL Server, sobre el uso de T-SQL, ahi especifica claramente que el IN, debe dejarse como ultima opcion. Se habla, sobre grandes cantidades de datos, no con algunos registros. Saludos
__________________ MCTS Isaias Islas |
| |||
Respuesta: Cuales son las desventajas del operador In? Abrí un nuevo blog, y mi primera entrada a sobre este tema: https://sqlserverencastellano.wordpr...iento/#more-18 Mi conclusión (si no tienen paciecia a leér toda la entrada..) es que el operador Not In es menos eficaz que el Not Exists solo en caso de columnas que permiten nulos. En otros casos (In vs. Exists, columnas que no habilitan nulos..) el rendimiento de ambos operadores es lo mismo.
__________________ El Castellano no es mi lengua materna: discúlpenme por los errores gramaticales. Mi blog |
| ||||
Respuesta: Cuales son las desventajas del operador In? GeriReshef Respeto tu opinion, pero ambos operadores se han probado con MILLONES de registros y es muhco mas eficiente el NOT EXISTS/EXISTS. Saludos
__________________ MCTS Isaias Islas |
| |||
Respuesta: Cuales son las desventajas del operador In? iislas- ¿donde han probado? ¿quien ha probado? ¿tienes algún vínculo a un artículo en la red? ¿un script? Mi "opinión" esta apoyada por una entrada muy detallada con scripts, impresiones de pantalla, planes de ejecución, Statistics IO, etcetera. Libras, cuando me respondio, adjunto vínculos útiles que después del hecho coincidieron con mis conclusiones.
__________________ El Castellano no es mi lengua materna: discúlpenme por los errores gramaticales. Mi blog |
| ||||
Respuesta: Cuales son las desventajas del operador In? Con esta respuesta cierro mis comentarios sobre el tema: ¿Escucho hablar del proyeto LA ACADEMIA para México?, fue el "refrito" de OPERACION TRIUNFO en España. Bueno, pues ese proyecto fue desarrollado para Grupo Salinas (TV Azteca, Iusacel, Elektra, Salinas y Rocha, etc.) por tu servidor y otros 7 colaboradores (comunicaciones, desarrollo, web, bases de datos). A mi me toco desarrollar la base de datos (SQL Server 2000), que recibia MILLONES de llamadas, por un canal multi-hilos, para hacer todos los comparativos de recepcion ("Venta por llamadas telefonicas 01900"). Cuando haciamos comparativos, nos dimos cuenta que al utilizar NOT IN - IN (.....), era mucho mas lento que con NOT EXISTS. Al ponerme a leer sobre el asunto, me di cuenta que el NOT IN - IN, hace un recorrido de los registtros (SCAN) y que el EXIST - NOT EXIST, por el contrario, utiliza los indices. Por tanto, era mucho mas eficiente utlizar EXIST - NOT EXIST. Como los programas fueron en VIVO, requeriamos de query's bastante eficientes, no deseo ocultar que al principio cometimos muchos errores en cuanto a la decision de utilzar "x o z" instruccion, pero con el tiempo, fuimos tomando experiencia al respecto (hablo de los años 2000). Solo para que te des una idea de cuantos registros recibiamos, en la final de este programa, que fue un domingo, empezamos a las 2:30 y terminamos a las 00:30 hrs, recibiendo mas de 3 millones de llamadas. Si esto no es significativo, entonces, ya no se que decir. Saludos.
__________________ MCTS Isaias Islas |
| ||||
Respuesta: Cuales son las desventajas del operador In? : aplauso:
__________________ What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me |
| |||
Respuesta: Cuales son las desventajas del operador In? iislas- con actitud tal como "Con esta respuesta cierro mis comentarios.." es muy dificil compartir nuestros conocimiento y experiencia con los demas. No doy nada por sentado, cuando dudo - pruebo, y cuando no entiendo - pregunto. Supongo que las columnas implicadas (en el In/Exist) en el proyecto que mencionaste fueron definidas como Null. Mis conclusiones no son tan diferentes de las tuyas: el Exists / Not Exists es mejor que el In / Not In porque en caso de Null el Not Exists es mejor, y en los otros casos no es peor; así que como "regla de pulgar" mejor optar por Exists / Not Exists (incluso en casos que tienen el mismo rendimiento como In / Not In). Para que esté mas tranquilo- voy a verificar mis conclusiones con tablas de 10,000,000 filas, lo antes posible.
__________________ El Castellano no es mi lengua materna: discúlpenme por los errores gramaticales. Mi blog |