Diferencia de velocidad entre definir índice sobre varchar o nvarchar????

07/10/2003 - 23:43 por cg | Informe spam
Tengo unas tablas de 1.000.000 registros y hay unos
campos de tipo nvarchar de 30, que lo defino como
nvarchar por las dudas que alguna vez me venga un
caracter raro para no tener problemas, pero que
tranquilamente lo podría poner como varchar. Este campo
lo uso para hacer joins con otras tablas (aunque estas
tablas No son tan grandes)
La pregunta es existiría una diferencia apreciable entre
definir estos campos de tipo varchar en vez de nvarchar
(con lo que ocuparían la mitad)??????
Me gustaría que estos campos sean numéricos para que sea
mucho más rápido (pues son identificadores) pero esto es
imposible...
A su vez, hay mucha diferencia entre que sean caracter de
30 por ej. y de tipo numérico para hacer join y demás.
Tienen alguna estadística de esto???

Preguntas similare

Leer las respuestas

#1 Gustavo Larriera [MVP]
08/10/2003 - 04:30 | Informe spam
Los joins mejorarán la performance si los campos fueran de tipo CHAR. Los
campos de caracteres de largo variable (VARCHAR) y los campos UNICODE
(NCHAR, NVARCHAR, etc.) comparan menos eficazmente.

Tambien ayuda que el ancho de los campos sea lo más corto posible.

La comparación entre números es de muy buena performance.

saludos
gux
Gustavo Larriera, MSFT MVP-SQL
Uruguay LatAm

***IMPORTANTE*** Microsoft Security Bulletin MS03-039
http://www.microsoft.com/security/s...03-039.asp

This message is provided "AS IS" with no warranties expressed or implied,
and confers no rights.


"cg" wrote in message
news:0f7301c38d1c$0022b0a0$
Tengo unas tablas de 1.000.000 registros y hay unos
campos de tipo nvarchar de 30, que lo defino como
nvarchar por las dudas que alguna vez me venga un
caracter raro para no tener problemas, pero que
tranquilamente lo podría poner como varchar. Este campo
lo uso para hacer joins con otras tablas (aunque estas
tablas No son tan grandes)
La pregunta es existiría una diferencia apreciable entre
definir estos campos de tipo varchar en vez de nvarchar
(con lo que ocuparían la mitad)??????
Me gustaría que estos campos sean numéricos para que sea
mucho más rápido (pues son identificadores) pero esto es
imposible...
A su vez, hay mucha diferencia entre que sean caracter de
30 por ej. y de tipo numérico para hacer join y demás.
Tienen alguna estadística de esto???
Respuesta Responder a este mensaje
#2 Javier Loria
08/10/2003 - 15:58 | Informe spam
Hola:
Para agregarle numeros a la excelente respuesta de Gustavo.
Asumiendo:
a) Que la columna es un indice clustered (Indice Agrupado).
b) Que el resto de las columnas ocupan 440 bytes.
c) Con FillFactor de 100% y totalmente desfragmentado.
El indice si usas NVARCHAR la tabla ocupara 532 Mb, y la parte del
Indice que no son datos incluidos en la tabla, ocuparan 4.5 Mb.
Si cambias el indice por un VARCHAR la tabla ocupara 497 Mb y la parte
del indice que no son datos incluidos en la tabla, ocuparan 2.4 Mb.
El mayor impacto lo sufriran los demas indices de la tabla que usan el
indice clustered para llegar a los datos.
Saludos,


Javier Loria
Costa Rica
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda.

cg escribio:
Tengo unas tablas de 1.000.000 registros y hay unos
campos de tipo nvarchar de 30, que lo defino como
nvarchar por las dudas que alguna vez me venga un
caracter raro para no tener problemas, pero que
tranquilamente lo podría poner como varchar. Este campo
lo uso para hacer joins con otras tablas (aunque estas
tablas No son tan grandes)
La pregunta es existiría una diferencia apreciable entre
definir estos campos de tipo varchar en vez de nvarchar
(con lo que ocuparían la mitad)??????
Me gustaría que estos campos sean numéricos para que sea
mucho más rápido (pues son identificadores) pero esto es
imposible...
A su vez, hay mucha diferencia entre que sean caracter de
30 por ej. y de tipo numérico para hacer join y demás.
Tienen alguna estadística de esto???
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida