Ver Mensaje Individual
  #6  
Antiguo 04-05-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Reputación: 28
jachguate Va por buen camino
Hablando de eficiencia... si usas Interbase/Firebird, y pasas la letra como parámetro de la forma:

Código SQL [-]
Select *
  from tabla
 where nombre like arametro

el motor no usará un indice definido sobre el nombre, sino recorerá todos los registros de la tabla. Esto es debido a que el plan se determina antes de conocer el valor del parámetro. Es mas eficiente una clausula starts with:
Código SQL [-]
Select *
  from tabla
 where nombre starts with arametro

donde el valor de parametro debiera ser solamente 'M' (sin porcentajes).

Aqui si que se usará el indice; claro, siempre que esté definido...

Aclaro que esto es válido para Interbase. No doy fe de otros motores, salvo de Oracle, que entiendo que utilizaría el indice si el parámetro es del tipo 'M%'.

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita