![]() |
Coalesce en índice de firebird
Hola a todos, hace un tiempo leí en un hilo de este mismo foro, la forma de crear un índice con Coalesce para mejorar el desempeño de las consultas, pero desafortunadamente no lo encuentro, basicamente lo que necesito es que al hacer una consulta del tipo:
Muchas gracias de antemano. |
COALENCE no es para mejorar el desempeño de la consulta. COALENCE es un operador seguro para evaluar Nulos. Lee: http://www.firebirdsql.org/refdocs/l...-coalesce.html
Entonces, COALENCE podría decirse que funciona así: COALANCE(Value, Value2, Value3) equivaldrá a:
COALENCE devolverá el primer parámetro que no sea NULL. Recuerda que, a excepción de "IS", no puedes utilizar los operadores para hacer comparaciones con NULL. Ya que el valor de NULL no está definido según el estándar SQL. Saludos. |
Sólo recordar que es 'coalesce', no coalence.
|
Cita:
Muchas gracias, Saludos. |
Sinceramente nunca había escuchado sobre este asunto. Es interesante todo esto que estás diciendo.
|
Hola.
Puedes utilizar un Expression Index (Índice sobre expresión). Mira la documentación sobre CREATE INDEX. http://www.firebirdsql.org/refdocs/l...ate-index.html Aunque no va a funcionar para el ejemplo concreto que has dado, puesto que tu expresión tiene parámetros, y por tanto no es posible evaluarla en el momento de insertar un registro (cuando se crea una entrada en el índice). Solo se puede evaluar en el momento de lanzar la consulta con unos parámetros concretos. Es decir : Esta expresión se puede optimizar mediante un índice. create index ix_T on T computed by (coalesce(A, '')); Pero esta expresión no se puede optimizar (no puedes indicar parámetros que solo existen en tiempo de lanzar la consulta). create index ix_T on T computed by (coalesce(:A, A)); Saludos. |
Yo creo que talvez a lo que te refieres es a esto:
http://weblogs.sqlteam.com/jeffs/arc...e-clauses.aspx |
Gracias guillotmarc y Chris por sus respuestas, la verdad es que ambas me han servido mucho, muchísimas gracias =)
|
La franja horaria es GMT +2. Ahora son las 21:16:23. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi