Buenas foro.
Acudiendo a sus experiencias y soluciones...
Uso el SQL Server 2008, allí tengo una tabla de un aproximado de 16 millones de filas.
Una de sus columnas es de tipo char(8) y es el PK..
Para usar esta tabla, tengo un adoQuery y el sql es:
Código SQL
[-]select * from nro_key = :nro_key
el adoQuery tiene parametro "nro_key" de tipo ftString.
Acá viene mi pesadilla
1.- Utilizando profiler me doy cuenta que la sentencia es enviada al server de la siguiente forma:
Código SQL
[-]exec sp_executesql N'
select * from padron
where nro_key = @P1 ',N'@P1 nvarchar(8)',N'00148894'
y demora 25 segundos para darme el resultado.
2.- Como manager utilizo el EMS y eh digitado en duro:
Código SQL
[-]select * from padron where nro_key = '00148894'
El resultado es menos de un segundo.
3.- Si yo modifico la primera sentencia y cambio el tipo de parámetro por varchar(8)
Código SQL
[-]exec sp_executesql N'
select * from padron
where nro_key = @P1 ',N'@P1 varchar(8)',N'00148894'
El resultado también es una bala como en el punto 2.
//------------
Entonces me pregunto, existe alguna forma de cambiar el tipo de dato en el parámetro del adoQuery para que no sea nvarchar(8) y que sea varchar(8) o char(8).
O tengo que pensar de otra forma?
A la espera de sus comentarios, criticas y regalos...
Your friend
Startkill
Lima-Perú