ayuda con Index

06/04/2010 - 23:10 por ronhi | Informe spam
Hola, que tal a todos?

Necesito algo de ayuda con respecto a los indexs, aun no entiendo cual es el
uso de ellos a un despues de agregarlos. Tengo una tabla con mas de 3
millones de registros. La informacion esta clasificada por versiones, existe
una columna que se llama Ver_id y especifica la version cargada, en estos
momentos existen 2 versiones 1 y 2. Digamos que la mitad pernetece a la
version 1 y la otra mitad a la version 2.

yo agregue este index para aumentar la velocidad de consulta:

CREATE CLUSTERED INDEX AK_Ver_Version ON
FINPER_BASE_PERUBAZ (VER_ID asc )
WITH (PAD_INDEX = ON, FILLFACTOR0)

pero no veo rapidez alguna.

Que tipo de index agrego en este ejemplo para volver mis consultas mas
rapidas?

Preguntas similare

Leer las respuestas

#1 Alejandro Mesa
07/04/2010 - 02:11 | Informe spam
Cual es la sentencia select que tratas de mejorar?

El factor de relleno que escojistes me parece demasiado pequeño. Ese factor
hara que el 70% de las pafinas esten vacias por lo que la tabla ocupara mas
paginas y eso implicara mas lecturas de disco. Trata de usar un factor mas
adecuado, quizas 80 si es que estas actualizando las filas con mucha
frecuencia.

AMB


"ronhi" wrote:

Hola, que tal a todos?

Necesito algo de ayuda con respecto a los indexs, aun no entiendo cual es el
uso de ellos a un despues de agregarlos. Tengo una tabla con mas de 3
millones de registros. La informacion esta clasificada por versiones, existe
una columna que se llama Ver_id y especifica la version cargada, en estos
momentos existen 2 versiones 1 y 2. Digamos que la mitad pernetece a la
version 1 y la otra mitad a la version 2.

yo agregue este index para aumentar la velocidad de consulta:

CREATE CLUSTERED INDEX AK_Ver_Version ON
FINPER_BASE_PERUBAZ (VER_ID asc )
WITH (PAD_INDEX = ON, FILLFACTOR0)

pero no veo rapidez alguna.

Que tipo de index agrego en este ejemplo para volver mis consultas mas
rapidas?




Respuesta Responder a este mensaje
#2 Aguardientico
07/04/2010 - 04:53 | Informe spam
Hola Ronhi,

Te cuento que por lo general para que un índice sea eficaz deben existir
datos dispersos, y esta cosa en español significa que los datos deben ser
diferentes, los mejores ejemplos son las fechas o los autoincrementos o los
números de identificación.

Si tienes una tabla con 3 millones de registros y quieres hacer un indice
donde tienes 2 valores diferentes, significa que aprox. tienes 1.5 millones
de registros con el mismo valor, en este caso los índices en vez de ayudarte
te perjudican por que no existen los suficientes valores para generar de
forma eficiente el arbol de indices.

Una buena opción para hacer indices es basado en la parte del WHERE de tus
consultas y entre más valores únicos tengas mejor será la eficiencia del
indice.

Si tienes más inquietudes, no dudes en realizarlas.

Atte.

Gustavo Gonzalez
http://aguardientech.blogspot.com

"ronhi" wrote in message
news:
Hola, que tal a todos?

Necesito algo de ayuda con respecto a los indexs, aun no entiendo cual es
el
uso de ellos a un despues de agregarlos. Tengo una tabla con mas de 3
millones de registros. La informacion esta clasificada por versiones,
existe
una columna que se llama Ver_id y especifica la version cargada, en estos
momentos existen 2 versiones 1 y 2. Digamos que la mitad pernetece a la
version 1 y la otra mitad a la version 2.

yo agregue este index para aumentar la velocidad de consulta:

CREATE CLUSTERED INDEX AK_Ver_Version ON
FINPER_BASE_PERUBAZ (VER_ID asc )
WITH (PAD_INDEX = ON, FILLFACTOR0)

pero no veo rapidez alguna.

Que tipo de index agrego en este ejemplo para volver mis consultas mas
rapidas?





__________ Information from ESET NOD32 Antivirus, version of virus
signature database 5005 (20100406) __________

The message was checked by ESET NOD32 Antivirus.

http://www.eset.com






__________ Information from ESET NOD32 Antivirus, version of virus signature database 5005 (20100406) __________

The message was checked by ESET NOD32 Antivirus.

http://www.eset.com
Respuesta Responder a este mensaje
#3 ronhi
07/04/2010 - 16:56 | Informe spam
Hola Alejandro esta es la sentencia que uso para regresar informacion:

select
'Guatemala',a.unit_id,d.mem_id,d.mem_name,b.Mem_Id,B.mem_name,e.llaveNueva,[value]
from #FINPER_BASE_GuatemalaBAZ a
inner join cust1_GuatemalaBAZ b on(a.cust1_id=b.mem_Id)
INNER JOIN Line_GuatemalaBaz c ON (a.line_id=c.mem_id)
INNER JOIN Line_GuatemalaBaz d ON (c.mem_pid=d.mem_id)
inner join Info_gral.dbo.Semanas2010Aprobadas e on (a.per_id=e.semanacien)
where c.mem_id <60000 and d.mem_id in (30025,30285,30130,30355,30435,30345)
and a.ver_id=2

sin embargo aun tarda mucho, aun despues del indice que coloque. La
información ya no cambiara, tal vez despues ingrese la nueva versión, la 3.


"Alejandro Mesa" wrote:

Cual es la sentencia select que tratas de mejorar?

El factor de relleno que escojistes me parece demasiado pequeño. Ese factor
hara que el 70% de las pafinas esten vacias por lo que la tabla ocupara mas
paginas y eso implicara mas lecturas de disco. Trata de usar un factor mas
adecuado, quizas 80 si es que estas actualizando las filas con mucha
frecuencia.

AMB


"ronhi" wrote:

> Hola, que tal a todos?
>
> Necesito algo de ayuda con respecto a los indexs, aun no entiendo cual es el
> uso de ellos a un despues de agregarlos. Tengo una tabla con mas de 3
> millones de registros. La informacion esta clasificada por versiones, existe
> una columna que se llama Ver_id y especifica la version cargada, en estos
> momentos existen 2 versiones 1 y 2. Digamos que la mitad pernetece a la
> version 1 y la otra mitad a la version 2.
>
> yo agregue este index para aumentar la velocidad de consulta:
>
> CREATE CLUSTERED INDEX AK_Ver_Version ON
> FINPER_BASE_PERUBAZ (VER_ID asc )
> WITH (PAD_INDEX = ON, FILLFACTOR0)
>
> pero no veo rapidez alguna.
>
> Que tipo de index agrego en este ejemplo para volver mis consultas mas
> rapidas?
>
>
>
>
Respuesta Responder a este mensaje
#4 ronhi
07/04/2010 - 17:02 | Informe spam
Hola Gustavo,

Agradezco de antemano tu ayuda, esta es la parte que me esta dificultando la
vida, de esos 3 millones solo nececito la version 2, pero es muy tardado,
tengo varios campos que con información diferente como el periodo que me dice
el numero de semanas, o el campo cuenta.

Supongo que debo aplicar un index de tipo Agrupado?


"Aguardientico" wrote:

Hola Ronhi,

Te cuento que por lo general para que un índice sea eficaz deben existir
datos dispersos, y esta cosa en español significa que los datos deben ser
diferentes, los mejores ejemplos son las fechas o los autoincrementos o los
números de identificación.

Si tienes una tabla con 3 millones de registros y quieres hacer un indice
donde tienes 2 valores diferentes, significa que aprox. tienes 1.5 millones
de registros con el mismo valor, en este caso los índices en vez de ayudarte
te perjudican por que no existen los suficientes valores para generar de
forma eficiente el arbol de indices.

Una buena opción para hacer indices es basado en la parte del WHERE de tus
consultas y entre más valores únicos tengas mejor será la eficiencia del
indice.

Si tienes más inquietudes, no dudes en realizarlas.

Atte.

Gustavo Gonzalez
http://aguardientech.blogspot.com

"ronhi" wrote in message
news:
> Hola, que tal a todos?
>
> Necesito algo de ayuda con respecto a los indexs, aun no entiendo cual es
> el
> uso de ellos a un despues de agregarlos. Tengo una tabla con mas de 3
> millones de registros. La informacion esta clasificada por versiones,
> existe
> una columna que se llama Ver_id y especifica la version cargada, en estos
> momentos existen 2 versiones 1 y 2. Digamos que la mitad pernetece a la
> version 1 y la otra mitad a la version 2.
>
> yo agregue este index para aumentar la velocidad de consulta:
>
> CREATE CLUSTERED INDEX AK_Ver_Version ON
> FINPER_BASE_PERUBAZ (VER_ID asc )
> WITH (PAD_INDEX = ON, FILLFACTOR0)
>
> pero no veo rapidez alguna.
>
> Que tipo de index agrego en este ejemplo para volver mis consultas mas
> rapidas?
>
>
>
>
>
> __________ Information from ESET NOD32 Antivirus, version of virus
> signature database 5005 (20100406) __________
>
> The message was checked by ESET NOD32 Antivirus.
>
> http://www.eset.com
>
>
>

__________ Information from ESET NOD32 Antivirus, version of virus signature database 5005 (20100406) __________

The message was checked by ESET NOD32 Antivirus.

http://www.eset.com



.

Respuesta Responder a este mensaje
#5 Antonio Ortiz R
07/04/2010 - 21:45 | Informe spam
Una sugerencia sencilla, es que las columnas que frecuentemente aparecen en
la clausula Where, deberian ser candidatos a indexarse, en tu consulta pude
observar la columna 'c.mem_id' <60000' como una buena opcion (de 3
millones, estas reduciendo a un subconjunto de 60000)

saludos,

Antonio Ortiz
www.aortiz.net
www.qsoluciones.net
www.qsoluciones.net/visualcaja



"ronhi" escribió en el mensaje de
noticias:
Hola Gustavo,

Agradezco de antemano tu ayuda, esta es la parte que me esta dificultando
la
vida, de esos 3 millones solo nececito la version 2, pero es muy tardado,
tengo varios campos que con información diferente como el periodo que me
dice
el numero de semanas, o el campo cuenta.

Supongo que debo aplicar un index de tipo Agrupado?


"Aguardientico" wrote:

Hola Ronhi,

Te cuento que por lo general para que un índice sea eficaz deben existir
datos dispersos, y esta cosa en español significa que los datos deben ser
diferentes, los mejores ejemplos son las fechas o los autoincrementos o
los
números de identificación.

Si tienes una tabla con 3 millones de registros y quieres hacer un indice
donde tienes 2 valores diferentes, significa que aprox. tienes 1.5
millones
de registros con el mismo valor, en este caso los índices en vez de
ayudarte
te perjudican por que no existen los suficientes valores para generar de
forma eficiente el arbol de indices.

Una buena opción para hacer indices es basado en la parte del WHERE de
tus
consultas y entre más valores únicos tengas mejor será la eficiencia del
indice.

Si tienes más inquietudes, no dudes en realizarlas.

Atte.

Gustavo Gonzalez
http://aguardientech.blogspot.com

"ronhi" wrote in message
news:
> Hola, que tal a todos?
>
> Necesito algo de ayuda con respecto a los indexs, aun no entiendo cual
> es
> el
> uso de ellos a un despues de agregarlos. Tengo una tabla con mas de 3
> millones de registros. La informacion esta clasificada por versiones,
> existe
> una columna que se llama Ver_id y especifica la version cargada, en
> estos
> momentos existen 2 versiones 1 y 2. Digamos que la mitad pernetece a la
> version 1 y la otra mitad a la version 2.
>
> yo agregue este index para aumentar la velocidad de consulta:
>
> CREATE CLUSTERED INDEX AK_Ver_Version ON
> FINPER_BASE_PERUBAZ (VER_ID asc )
> WITH (PAD_INDEX = ON, FILLFACTOR0)
>
> pero no veo rapidez alguna.
>
> Que tipo de index agrego en este ejemplo para volver mis consultas mas
> rapidas?
>
>
>
>
>
> __________ Information from ESET NOD32 Antivirus, version of virus
> signature database 5005 (20100406) __________
>
> The message was checked by ESET NOD32 Antivirus.
>
> http://www.eset.com
>
>
>

__________ Information from ESET NOD32 Antivirus, version of virus
signature database 5005 (20100406) __________

The message was checked by ESET NOD32 Antivirus.

http://www.eset.com



.

Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida