indices

29/11/2004 - 17:53 por Henrys | Informe spam
hola a todos
realizaba unas consultas a la base de datos y tardaban algo en procesarce,
por lo cual le puese indice, y mejoro 100% pero ahora mi pregunta es debo de
ponerle indices a todos mi campos que consulto claro los mas usuales (ó sea
nombre, apellido paterno, materno) ó a todo las columnas de la tabla

Saludos

Preguntas similare

Leer las respuestas

#1 Gustavo Larriera [MVP]
29/11/2004 - 18:11 | Informe spam
Hay una excelente recomendación en los Books Online (BOL), busca el artículo
"Diseñar un índice".

También puedes usar el asistente Index Tuning Wizard, que en base a una
traza de carga realizada contra el servidor SQL, te asiste para definir los
índices apropiados acorde a la traza realizada. Los detalles están en el
artículo "Asistente para optimización de índices" de los BOL.

Gustavo Larriera, MVP
Uruguay LatAm
http://sqljunkies.com/weblog/gux/
Este mensaje se proporciona "COMO ESTA" sin garantias y no otorga ningun
derecho / This posting is provided "AS IS" with no warranties, and confers
no rights.
"Henrys" wrote in message
news:
hola a todos
realizaba unas consultas a la base de datos y tardaban algo en procesarce,
por lo cual le puese indice, y mejoro 100% pero ahora mi pregunta es debo
de
ponerle indices a todos mi campos que consulto claro los mas usuales (ó
sea
nombre, apellido paterno, materno) ó a todo las columnas de la tabla

Saludos
Respuesta Responder a este mensaje
#2 Henrys
29/11/2004 - 19:45 | Informe spam
Excelente Gustavo te lo agradezco saludos

"Gustavo Larriera [MVP]" escribió:

Hay una excelente recomendación en los Books Online (BOL), busca el artículo
"Diseñar un índice".

También puedes usar el asistente Index Tuning Wizard, que en base a una
traza de carga realizada contra el servidor SQL, te asiste para definir los
índices apropiados acorde a la traza realizada. Los detalles están en el
artículo "Asistente para optimización de índices" de los BOL.

Gustavo Larriera, MVP
Uruguay LatAm
http://sqljunkies.com/weblog/gux/
Este mensaje se proporciona "COMO ESTA" sin garantias y no otorga ningun
derecho / This posting is provided "AS IS" with no warranties, and confers
no rights.
"Henrys" wrote in message
news:
> hola a todos
> realizaba unas consultas a la base de datos y tardaban algo en procesarce,
> por lo cual le puese indice, y mejoro 100% pero ahora mi pregunta es debo
> de
> ponerle indices a todos mi campos que consulto claro los mas usuales (ó
> sea
> nombre, apellido paterno, materno) ó a todo las columnas de la tabla
>
> Saludos



Respuesta Responder a este mensaje
#3 Javier Loria
29/11/2004 - 20:00 | Informe spam
Hola:
Los indices deben construirse dependiendo del rendimiento de las
consultas, no se requieren para todas las columnas, y con frecuencia sobran.
Los indices pueden acelerar las consultas, SIEMPRE hacen mas lentas las
actualizaciones (INSERT/UPDATE/DELETE) excepto en algunos casos muy
puntuales de UPDATE's.
Algunas recomendaciones:
a) No pongas indices sobre tablas pequenas. (Dependen de las columnas y
su ancho, pero si tiene menos de 10,000 filas y esta normalizada,
probablemente no necesita mas que los "default" (Llave Primaria y los
Unique).
b) No pongas indices sobre columnas poco selectivas: (Estado Civil,
Sexo, ) Si una columna no tiene bastantes valores, el indice no es
importante.Probablemente si tiene menos de 500 valores diferentes no lo
necesita.
c) Las llaves foraneas son buenos candidatos a indices, si se cumplen a
y b, es muy probable que necesites un indice sobre la llave foranea ya que
se usan en JOINs y en WHERE's
d) Columnas que aperecen con frecuencia en los WHERE: Fechas, Nombres.
Si en la tabla de Facturas, es muy frecuente las consultas por Fecha, y
luego Fechas-Cliente es problable que se requieras estos indices. (Las
Fechas suelen ser buenos indices)
e) El orden importa, un indice NumeroFactura-Fecha es diferente a
Fecha-NumeroFactura. Si hago un SELECT con la condicion de la Fecha
unicamente, no se usara el primero, pero si el segundo.
En todo esto hay que probarlo con los datos reales, porque la forma en
que funciona el optimizador es a veces muy dificil saber cuando usara un
indice y cuando no. Finalmente toma las consultas mas lentas y usa el
Asistene de configuracion de indices para algunas excelentes
recomendaciones.
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

"Henrys" wrote in message
news:
hola a todos
realizaba unas consultas a la base de datos y tardaban algo en procesarce,
por lo cual le puese indice, y mejoro 100% pero ahora mi pregunta es debo


de
ponerle indices a todos mi campos que consulto claro los mas usuales (ó


sea
nombre, apellido paterno, materno) ó a todo las columnas de la tabla

Saludos
Respuesta Responder a este mensaje
#4 Henrys
29/11/2004 - 22:31 | Informe spam
Muchisimas gracias Javier y saludos

"Javier Loria" escribió:

Hola:
Los indices deben construirse dependiendo del rendimiento de las
consultas, no se requieren para todas las columnas, y con frecuencia sobran.
Los indices pueden acelerar las consultas, SIEMPRE hacen mas lentas las
actualizaciones (INSERT/UPDATE/DELETE) excepto en algunos casos muy
puntuales de UPDATE's.
Algunas recomendaciones:
a) No pongas indices sobre tablas pequenas. (Dependen de las columnas y
su ancho, pero si tiene menos de 10,000 filas y esta normalizada,
probablemente no necesita mas que los "default" (Llave Primaria y los
Unique).
b) No pongas indices sobre columnas poco selectivas: (Estado Civil,
Sexo, ) Si una columna no tiene bastantes valores, el indice no es
importante.Probablemente si tiene menos de 500 valores diferentes no lo
necesita.
c) Las llaves foraneas son buenos candidatos a indices, si se cumplen a
y b, es muy probable que necesites un indice sobre la llave foranea ya que
se usan en JOINs y en WHERE's
d) Columnas que aperecen con frecuencia en los WHERE: Fechas, Nombres.
Si en la tabla de Facturas, es muy frecuente las consultas por Fecha, y
luego Fechas-Cliente es problable que se requieras estos indices. (Las
Fechas suelen ser buenos indices)
e) El orden importa, un indice NumeroFactura-Fecha es diferente a
Fecha-NumeroFactura. Si hago un SELECT con la condicion de la Fecha
unicamente, no se usara el primero, pero si el segundo.
En todo esto hay que probarlo con los datos reales, porque la forma en
que funciona el optimizador es a veces muy dificil saber cuando usara un
indice y cuando no. Finalmente toma las consultas mas lentas y usa el
Asistene de configuracion de indices para algunas excelentes
recomendaciones.
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

"Henrys" wrote in message
news:
> hola a todos
> realizaba unas consultas a la base de datos y tardaban algo en procesarce,
> por lo cual le puese indice, y mejoro 100% pero ahora mi pregunta es debo
de
> ponerle indices a todos mi campos que consulto claro los mas usuales (ó
sea
> nombre, apellido paterno, materno) ó a todo las columnas de la tabla
>
> Saludos



Respuesta Responder a este mensaje
#5 Henrys
29/11/2004 - 22:35 | Informe spam
Muchisimas gracias Javier por tus recomendaciones, Saludos

"Javier Loria" wrote:

Hola:
Los indices deben construirse dependiendo del rendimiento de las
consultas, no se requieren para todas las columnas, y con frecuencia sobran.
Los indices pueden acelerar las consultas, SIEMPRE hacen mas lentas las
actualizaciones (INSERT/UPDATE/DELETE) excepto en algunos casos muy
puntuales de UPDATE's.
Algunas recomendaciones:
a) No pongas indices sobre tablas pequenas. (Dependen de las columnas y
su ancho, pero si tiene menos de 10,000 filas y esta normalizada,
probablemente no necesita mas que los "default" (Llave Primaria y los
Unique).
b) No pongas indices sobre columnas poco selectivas: (Estado Civil,
Sexo, ) Si una columna no tiene bastantes valores, el indice no es
importante.Probablemente si tiene menos de 500 valores diferentes no lo
necesita.
c) Las llaves foraneas son buenos candidatos a indices, si se cumplen a
y b, es muy probable que necesites un indice sobre la llave foranea ya que
se usan en JOINs y en WHERE's
d) Columnas que aperecen con frecuencia en los WHERE: Fechas, Nombres.
Si en la tabla de Facturas, es muy frecuente las consultas por Fecha, y
luego Fechas-Cliente es problable que se requieras estos indices. (Las
Fechas suelen ser buenos indices)
e) El orden importa, un indice NumeroFactura-Fecha es diferente a
Fecha-NumeroFactura. Si hago un SELECT con la condicion de la Fecha
unicamente, no se usara el primero, pero si el segundo.
En todo esto hay que probarlo con los datos reales, porque la forma en
que funciona el optimizador es a veces muy dificil saber cuando usara un
indice y cuando no. Finalmente toma las consultas mas lentas y usa el
Asistene de configuracion de indices para algunas excelentes
recomendaciones.
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

"Henrys" wrote in message
news:
> hola a todos
> realizaba unas consultas a la base de datos y tardaban algo en procesarce,
> por lo cual le puese indice, y mejoro 100% pero ahora mi pregunta es debo
de
> ponerle indices a todos mi campos que consulto claro los mas usuales (ó
sea
> nombre, apellido paterno, materno) ó a todo las columnas de la tabla
>
> Saludos



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