Rendimiento en un select

02/09/2005 - 19:58 por Nattanahel chaves | Informe spam
Buenos días:

Tengo un select más o menos así:

Select campo from tabla where substring(campo,1,10)
=variable

Es sobre SQLServer 2000, el campo está indexado, el
problema es que al hacer el substring el índice no me
sirve y la búsqueda se vuelve muy lenta. Alguién sabe de
alguna técnica que me pueda server.

NOTA: Uso el substring porque es necesario lo que tengo
para comparar es más pequeño que el campo completo.

Preguntas similare

Leer las respuestas

#1 Bela Istok
02/09/2005 - 21:30 | Informe spam
Creo que si el indice es clustered, funcionaria un poco mejor.

Saludos,

Bela Istok
"Nattanahel chaves" wrote in message
news:046101c5afe7$e45837a0$
Buenos días:

Tengo un select más o menos así:

Select campo from tabla where substring(campo,1,10)
=variable

Es sobre SQLServer 2000, el campo está indexado, el
problema es que al hacer el substring el índice no me
sirve y la búsqueda se vuelve muy lenta. Alguién sabe de
alguna técnica que me pueda server.

NOTA: Uso el substring porque es necesario lo que tengo
para comparar es más pequeño que el campo completo.
Respuesta Responder a este mensaje
#2 Arjona
02/09/2005 - 21:49 | Informe spam
Prueba usando comodines en lugar de substring

SELECT campo FROM tabla WHERE campo LIKE variable + '%'



"Nattanahel chaves" escribió en el
mensaje news:046101c5afe7$e45837a0$
Buenos días:

Tengo un select más o menos así:

Select campo from tabla where substring(campo,1,10)
=variable

Es sobre SQLServer 2000, el campo está indexado, el
problema es que al hacer el substring el índice no me
sirve y la búsqueda se vuelve muy lenta. Alguién sabe de
alguna técnica que me pueda server.

NOTA: Uso el substring porque es necesario lo que tengo
para comparar es más pequeño que el campo completo.
Respuesta Responder a este mensaje
#3 Emmanuelle B. S.
04/09/2005 - 23:58 | Informe spam
Creo que si el indice es clustered, funcionaria un poco


mejor.

Saludos,

Bela Istok
"Nattanahel chaves"


wrote in message
news:046101c5afe7$e45837a0$
Buenos días:

Tengo un select más o menos así:

Select campo from tabla where substring(campo,1,10)
=variable

Es sobre SQLServer 2000, el campo está indexado, el
problema es que al hacer el substring el índice no me
sirve y la búsqueda se vuelve muy lenta. Alguién sabe de
alguna técnica que me pueda server.

NOTA: Uso el substring porque es necesario lo que tengo
para comparar es más pequeño que el campo completo.




Yo lo cambiaría por:

SELECT campo FROM tabla WHERE campo LIKE variable+"%"

Y ya que estás usando SQL Server, mejor metelo como un
procedimiento almacenado,ya que en caso de usarse
repetidamente los procedimientos almaenaods presnetan
mejor rendimiento que un query. ¿Que tanto mejora? Bueno,
no me he puesto a hacer pruebas, pero según la
documentación que he llegado a leer, todos lo recomiendan
y más cuando se va a usar intensivamente.
Respuesta Responder a este mensaje
#4 Alfredo Novoa
06/09/2005 - 10:37 | Informe spam
On Sun, 4 Sep 2005 14:58:46 -0700, "Emmanuelle B. S."
wrote:

Y ya que estás usando SQL Server, mejor metelo como un
procedimiento almacenado,ya que en caso de usarse
repetidamente los procedimientos almaenaods presnetan
mejor rendimiento que un query. ¿Que tanto mejora?



Prácticamente nada.


Saludos
Respuesta Responder a este mensaje
#5 Bela Istok
06/09/2005 - 15:18 | Informe spam
Bueno, en realidad esta respuesta es relativa, si se manejan muchos
registros la mejora es significativa, sin embargo si son pogos los registros
la diferencia es casi nada como lo expresas tu alfredo.

Saludos,

Bela Istok

"Alfredo Novoa" wrote in message
news:
On Sun, 4 Sep 2005 14:58:46 -0700, "Emmanuelle B. S."
wrote:

Y ya que estás usando SQL Server, mejor metelo como un
procedimiento almacenado,ya que en caso de usarse
repetidamente los procedimientos almaenaods presnetan
mejor rendimiento que un query. ¿Que tanto mejora?



Prácticamente nada.


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