consejo sobre Indices

29/07/2008 - 18:29 por Imac_Man | Informe spam
Hola,

tengo una tabla con los campos codigo, seccion, nombre. tiene una gran
cantidad de registros el codigo es un autonumerico y tiene un indice
clustered, pero la seccion para todos los registro solo pueden ser 6 codigos
diferentes y normalmente las consultas se hacen por medio de la seccion y no
por el codigopor ende las consultas son lentas, como debo hacer los
indices para que esto funcione repido. muchas gracias de antemano

Saludos

Preguntas similare

Leer las respuestas

#11 Imac_Man
30/07/2008 - 20:16 | Informe spam
ok amigos...este es el query

select

a.codigo , a.seccion, a.fechadesde, a.fechahasta, b.nombre, c.nomciudad,
d.nombrered from ventas a inner join personas b on b.idpersona = idpersona
left join ciudades c on c.idciudad = a.idciudad left join redes d on d.idred
= a.idred
where a.seccion = '0001'
and d.tipo = 'A'

No saben como les agradezco por su tiempo y ayuda.

Saludos







"Jesús López" wrote:

¿Cual es la consulta que quieres optimizar?. Lo mejor sería que las pusieras
aquí y entonces podríamos ver como hacerlo.

Jesús López
www.solidq.com


"Imac_Man" escribió en el mensaje
news:
> Hola,
>
> tengo una tabla con los campos codigo, seccion, nombre. tiene una gran
> cantidad de registros el codigo es un autonumerico y tiene un indice
> clustered, pero la seccion para todos los registro solo pueden ser 6
> codigos
> diferentes y normalmente las consultas se hacen por medio de la seccion y
> no
> por el codigopor ende las consultas son lentas, como debo hacer los
> indices para que esto funcione repido. muchas gracias de antemano
>
> Saludos
>



Respuesta Responder a este mensaje
#12 Fredy (Co)
31/07/2008 - 00:02 | Informe spam
Con tan baja selectividad, es casi seguro que se hara un tabla scan... pero
eso solo lo dira un plan de ejecucion...

Saludos desde Colombia!
Fredy(co)



"Imac_Man" wrote:

ok amigos...este es el query

select

a.codigo , a.seccion, a.fechadesde, a.fechahasta, b.nombre, c.nomciudad,
d.nombrered from ventas a inner join personas b on b.idpersona = idpersona
left join ciudades c on c.idciudad = a.idciudad left join redes d on d.idred
= a.idred
where a.seccion = '0001'
and d.tipo = 'A'

No saben como les agradezco por su tiempo y ayuda.

Saludos







"Jesús López" wrote:

> ¿Cual es la consulta que quieres optimizar?. Lo mejor sería que las pusieras
> aquí y entonces podríamos ver como hacerlo.
>
> Jesús López
> www.solidq.com
>
>
> "Imac_Man" escribió en el mensaje
> news:
> > Hola,
> >
> > tengo una tabla con los campos codigo, seccion, nombre. tiene una gran
> > cantidad de registros el codigo es un autonumerico y tiene un indice
> > clustered, pero la seccion para todos los registro solo pueden ser 6
> > codigos
> > diferentes y normalmente las consultas se hacen por medio de la seccion y
> > no
> > por el codigopor ende las consultas son lentas, como debo hacer los
> > indices para que esto funcione repido. muchas gracias de antemano
> >
> > Saludos
> >
>
>
>
Respuesta Responder a este mensaje
#13 Alejandro Mesa
31/07/2008 - 19:16 | Informe spam
Gracías!!!


AMB

"Jesús López" wrote:

Table hint: sugerencia de tabla




Respuesta Responder a este mensaje
#14 Alejandro Mesa
31/07/2008 - 19:30 | Informe spam
Para poderte ayudar mejor, cuando tengas este tipo de pregunta o inquietud,
es preferible que postess lo sgte:

- Estructura de las tablas involucradas, incluyendo restricciones e indices
- Sentencia "select" a optimizar
- Plan de ejecucion actual

Como ya mencionastes anteriormente, existen muy pocos valores distinctos en
la columna [seccion], por lo que el filtro " where a.seccion = '0001' "
seleccionara un numero de filas que hacen que la busqueda en el indice
nonclustered, seguida por la busqueda en el indice clustered, sea mas costosa
que soloamente escanear en el indice clustered. Fijate que la sentencia
referencia 7 columnas de la tabla [ventas], que son:

codigo, seccion, fechadesde, fechahasta, idpersona, idciudad, idred

por lo que tener un indice solo por [seccion] no cubriria todas las columnas
referenciadas y por lo tanto siempre se tendra que ir al indice clustered
para traer el resto de la data que no esta en el indice nonclustered por
[seccion].


AMB


"Imac_Man" wrote:

ok amigos...este es el query

select

a.codigo , a.seccion, a.fechadesde, a.fechahasta, b.nombre, c.nomciudad,
d.nombrered from ventas a inner join personas b on b.idpersona = idpersona
left join ciudades c on c.idciudad = a.idciudad left join redes d on d.idred
= a.idred
where a.seccion = '0001'
and d.tipo = 'A'

No saben como les agradezco por su tiempo y ayuda.

Saludos







"Jesús López" wrote:

> ¿Cual es la consulta que quieres optimizar?. Lo mejor sería que las pusieras
> aquí y entonces podríamos ver como hacerlo.
>
> Jesús López
> www.solidq.com
>
>
> "Imac_Man" escribió en el mensaje
> news:
> > Hola,
> >
> > tengo una tabla con los campos codigo, seccion, nombre. tiene una gran
> > cantidad de registros el codigo es un autonumerico y tiene un indice
> > clustered, pero la seccion para todos los registro solo pueden ser 6
> > codigos
> > diferentes y normalmente las consultas se hacen por medio de la seccion y
> > no
> > por el codigopor ende las consultas son lentas, como debo hacer los
> > indices para que esto funcione repido. muchas gracias de antemano
> >
> > Saludos
> >
>
>
>
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida