FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
||||
|
||||
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.
__________________
mas confundido que Garavito el día del Niño. Última edición por mightydragonlor fecha: 26-06-2012 a las 03:42:09. Razón: Mea culpa. |
#2
|
||||
|
||||
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. |
#3
|
||||
|
||||
Sólo recordar que es 'coalesce', no coalence.
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#4
|
||||
|
||||
Cita:
Muchas gracias, Saludos.
__________________
mas confundido que Garavito el día del Niño. |
#5
|
||||
|
||||
Sinceramente nunca había escuchado sobre este asunto. Es interesante todo esto que estás diciendo.
|
#6
|
||||
|
||||
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.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no). |
#7
|
||||
|
||||
Yo creo que talvez a lo que te refieres es a esto:
http://weblogs.sqlteam.com/jeffs/arc...e-clauses.aspx |
#8
|
||||
|
||||
Gracias guillotmarc y Chris por sus respuestas, la verdad es que ambas me han servido mucho, muchísimas gracias =)
__________________
mas confundido que Garavito el día del Niño. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
SQL CASE y COALESCE | mjjj | SQL | 1 | 17-12-2008 17:37:52 |
Error al Crear INDICE... FIREBIRD/INTERBASE | Rogersito Plus | Firebird e Interbase | 6 | 04-01-2008 02:02:29 |
Duda sobre COALESCE | AGAG4 | Firebird e Interbase | 4 | 28-04-2006 22:00:57 |
Algo sobre COALESCE | jwmoreira | Firebird e Interbase | 1 | 08-03-2005 21:23:20 |
Indice Secundario en Firebird | barrauda | Conexión con bases de datos | 4 | 01-02-2004 14:38:32 |
|