Ver Mensaje Individual
  #1  
Antiguo 01-03-2013
Avatar de StartKill
StartKill StartKill is offline
Miembro
 
Registrado: ene 2004
Posts: 299
Reputación: 21
StartKill Va por buen camino
Question ClientDataset cambiar tipo de parametro

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ú
Responder Con Cita