Distinct superfluos y rendimiento

16/01/2008 - 12:12 por Alfredo Novoa | Informe spam
Hola,

¿Alguien sabe si poner una clausula "distinct" cuando es innecesaria
puede causar una pérdida apreciable en el rendimiento?


Gracias

Preguntas similare

Leer las respuestas

#11 Jesús López
17/01/2008 - 17:33 | Informe spam
Lo que para tí es preciso para mi no lo es. El término "DISTINCT superfluo"
no es preciso hasta que alguien no lo defina, como tú mismo lo acabas de
hacer, por mucho que aparezca en el diccionario el término supérfluo.
"DISTINCT superfluo" no aparece ni una sola vez en una búsqueda en el
google, así que debes ser tú la primera persona que lo utliza.

Cuando ví el término "DISTINCT supefluo", como era la primera vez en mi vida
que veía ese término tuve que preguntarme ¿Qué querrá decir este hombre con
"DISTINCT supérfluo"?. Hice mi interpretación y di la respuesta que me
pareció más coherente.




"Alfredo Novoa" escribió en el mensaje
news:
On Thu, 17 Jan 2008 16:42:24 +0100, "Jesús López"
wrote:

¿Dónde narices está definido el término "DISTINCT superfluo" en el
contexto
de bases de datos?



La definición de superfluo viene en el diccionario, y no tiene ningún
significado especial en el contexto de las bases de datos.

¿No está sujeto entonces a la interpretación de cada
uno, por muy evidente que a alguien le pueda parecer?



No, no lo está. Era suficientemente preciso.

Superfluo significa innecesario. En el contexto de una consulta es
evidente que significa que si lo eliminas entonces tienes una consulta
equivalente. Una consulta que puede devolver resultados iguales o
diferentes no es una consulta equivalente.

Por ejemplo "select * from x where a = 1" no es equivalente a "select
* from x" aunque en algunos casos las dos consultas puedan devolver el
mismo resultado.


Saludos
Respuesta Responder a este mensaje
#12 Alfredo Novoa
18/01/2008 - 16:45 | Informe spam
On Thu, 17 Jan 2008 17:33:50 +0100, "Jesús López"
wrote:

Hola Jesús,

Lo que para tí es preciso para mi no lo es. El término "DISTINCT superfluo"
no es preciso hasta que alguien no lo defina, como tú mismo lo acabas de
hacer, por mucho que aparezca en el diccionario el término supérfluo.



Perdona, pero esto es una solemne tontería. Si sabemos lo que es una
clausula y sabemos lo que significa "superflua" no hace falta que
nadie defina el término "clausula superflua". Las palabras están para
combinarlas, siempre que sigamos las reglas de la gramática.

"DISTINCT superfluo" no aparece ni una sola vez en una búsqueda en el
google, así que debes ser tú la primera persona que lo utliza.



Por que no te habrás molestado en buscarlo en el idioma de la
informática, por que si que salen unos cuantos resultados e incluso el
término aparece formalmente definido.

http://www-db.in.tum.de/~grust/teaching/ss07/DBfA/db1-04.pdf

En la página 13 del documento hay una definición formal de "distinct
superfluo" que no pego aquí por que no salen bien los símbolos
matemáticos.

Aquí tienes otro ejemplo sacado de la prensa de mercado:

we described when DISTINCT is superfluous. DISTINCT is not necessary
in subqueries.

Example 29.13. Find, for each match, the match number and the name of
the player.
SELECT DISTINCT MATCHNO, NAME
FROM MATCHES, PLAYERS
WHERE MATCHES.PLAYERNO = PLAYERS.PLAYERNO

DISTINCT is unnecessary here because the SELECT clause contains the
primary key of the MATCHES table, as well as a condition on the
primary key of the PLAYERS table.

http://safari.oreilly.com/0321305965/ch29lev1sec11

Cuando ví el término "DISTINCT supefluo", como era la primera vez en mi vida
que veía ese término tuve que preguntarme ¿Qué querrá decir este hombre con
"DISTINCT supérfluo"?. Hice mi interpretación y di la respuesta que me
pareció más coherente.



Y te equivocaste, y no pasa nada hombre, todos nos equivocamos. Pero
no intentes arreglarlo por que es peor.


Saludos
Alfredo
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida