Indices

06/09/2004 - 18:34 por Marcelo W. Lopez Cremona | Informe spam
Hola,
Cuando creo un indice en una tabla este es seleccionado automáticamente por
la consulta, pero el problema se presenta cdo tengo que usar un between
tengo que forzar el uso del indice, porq sucede esto, existe otra solución.


Marcelo Lopez
MCP

Preguntas similare

Leer las respuestas

#6 Lázaro
07/09/2004 - 09:00 | Informe spam
Por lo que yo sé, cuando se usa un between la mejor forma de estar seguro
que use un índice sin forzarlo es que sea de tipo cluster, como con este
tipo los datos están ordenados físicamente acorde con él, el SQL usará el
índice para posicionarse en la primera fila que cumple y a partir de ahí
realiza un tablescan con lo que el IO es óptimo.

Con los índices non-cluster como tiene que recorrerse las páginas de índices
y realizar saltos a la página de datos para recuperar cada valor, puede que
decida no usarlo ya que tiene más IO que hacer tablescan, ya que la tabla no
debe ser muy grande.

Salu2

"Marcelo W. Lopez Cremona" wrote in message
news:
Hola,
Cuando creo un indice en una tabla este es seleccionado automáticamente


por
la consulta, pero el problema se presenta cdo tengo que usar un between
tengo que forzar el uso del indice, porq sucede esto, existe otra


solución.


Marcelo Lopez
MCP


Respuesta Responder a este mensaje
#7 Emilio Boucau
07/09/2004 - 14:07 | Informe spam
Marcelo,

despues de lo que agregaron Adrián y Lázaro, pudiste avanzar en el tema ?


Saludos !

Emilio Boucau
Buenos Aires - Argentina
http://www.portalsql.com
Respuesta Responder a este mensaje
#8 Adrian D. Garcia
07/09/2004 - 17:32 | Informe spam
Eso es verdad siempre y cuando:
a) El indice sea lo suficientemente selectivo
b) La informacion de estadisticas referidas al indice este actualizada

Saludos
Adrian D. Garcia
MCSD
NDSoft Consultoria y Desarrollo

"Lázaro" wrote in message
news:%23h$
Por lo que yo sé, cuando se usa un between la mejor forma de estar seguro
que use un índice sin forzarlo es que sea de tipo cluster, como con este
tipo los datos están ordenados físicamente acorde con él, el SQL usará el
índice para posicionarse en la primera fila que cumple y a partir de ahí
realiza un tablescan con lo que el IO es óptimo.

Con los índices non-cluster como tiene que recorrerse las páginas de


índices
y realizar saltos a la página de datos para recuperar cada valor, puede


que
decida no usarlo ya que tiene más IO que hacer tablescan, ya que la tabla


no
debe ser muy grande.

Salu2

"Marcelo W. Lopez Cremona" wrote in message
news:
> Hola,
> Cuando creo un indice en una tabla este es seleccionado automáticamente
por
> la consulta, pero el problema se presenta cdo tengo que usar un between
> tengo que forzar el uso del indice, porq sucede esto, existe otra
solución.
>
>
> Marcelo Lopez
> MCP
>
>


Respuesta Responder a este mensaje
#9 Marcelo Lopez
07/09/2004 - 18:36 | Informe spam
Si muchas gracias, lo cambie a clustered y ahora funciona bien.

;-)

Marcelo W. Lopez
MCP
"Emilio Boucau" escribió en el mensaje
news:#
Marcelo,

despues de lo que agregaron Adrián y Lázaro, pudiste avanzar en el tema ?


Saludos !

Emilio Boucau
Buenos Aires - Argentina
http://www.portalsql.com


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