Indexar Campos

15/11/2004 - 15:20 por Jorge Eldis | Informe spam
Buenas a todos,



Tengo unas consultas

Cuando creo un Index en una tabla por medio del SQL Server Manager
Enterprise este me pone un nombre de índice y uno puede escoger el campo que
desea indexar o varios campos.



1- La pregunta es que diferencia hay en crear Índices con varios campos o
crear un índice por cada campo?



2- He estado leyendo sobre las características que se le asignan a los
índices pero no logro entender bien, alguien podría explicarme o decirme
donde puedo referirme para saber que significan las siguientes
características?



a) Fill factor %

b) Create as CLUSTERED

c) Do not automatically recompute statics



Saludos y gracias por todo





Jorge Eldis

Preguntas similare

Leer las respuestas

#1 Maxi
15/11/2004 - 16:53 | Informe spam
Jorge, creo que te haria falta un mini cursillo de BDD ;-)

Un indice es la forma de ordenar algo (en este caso datos)

Vos podrias por ej tener un indice por una sola columna o indices compuestos
(mas de una columna).

Aqui es muy importante el orden de los campos, por ej

CIUDAD,PAIS es una cosa y Pais,ciudad es otra cosa.

El de la izquierda sera la primer busqueda y el segundo la segunda.

a) Fill factor %
Esto se denomina Factor de relleno y es un porcenrtaje que quieres
que tenga el indice de relleno. con este seteo podes definir los Split de
indices

b) Create as CLUSTERED

El indice Cluster es un indice donde el orden es fisico, con lo
cual solo podes tener un solo indice Cluster por tabla

c) Do not automatically recompute statics

Esta opcion lo que indica es si quieres que las statisticas para
este indice se calculen de forma automatica o no. Si no lo haces de forma
automatica lo vas a tener que hacer por medio de un proceso T-sql.
Hay casos donde esto se justifica mucho, ya que actualizar las estadisticas
suele ser una terea pesada para el motor y si lo esta haciendo de forma
constante es una cosa!! en BDD muy grandes donde se quieren hacer ajustes
muy finos este tipo de opciones son de suma importancia

Te recomiendo una leida por los BOL (Book on line) sobre el tema de indices,
ya que esta muy bien explicado ahi
:-)


Salu2
Maxi
Buenos Aires - Argentina
Desarrollador Microsoft 3 Estrellas .NET
Nunca consideres el estudio como una obligación sino como
una oportunidad para penetrar en el bello y maravillosos
mundo del saber.
- Albert Einstein



"Jorge Eldis" escribió en el mensaje
news:%
Buenas a todos,



Tengo unas consultas

Cuando creo un Index en una tabla por medio del SQL Server Manager
Enterprise este me pone un nombre de índice y uno puede escoger el campo
que desea indexar o varios campos.



1- La pregunta es que diferencia hay en crear Índices con varios campos o
crear un índice por cada campo?



2- He estado leyendo sobre las características que se le asignan a los
índices pero no logro entender bien, alguien podría explicarme o decirme
donde puedo referirme para saber que significan las siguientes
características?



a) Fill factor %

b) Create as CLUSTERED

c) Do not automatically recompute statics



Saludos y gracias por todo





Jorge Eldis







Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.795 / Virus Database: 539 - Release Date: 12/11/2004
Respuesta Responder a este mensaje
#2 Jorge Eldis
15/11/2004 - 17:13 | Informe spam
Gracias Maxi por tu explicacion y tu sugerencia voy a investigar sobre este
tema mas profundo.

Saludos Jorge Eldis
"Maxi" wrote in message
news:%
Jorge, creo que te haria falta un mini cursillo de BDD ;-)

Un indice es la forma de ordenar algo (en este caso datos)

Vos podrias por ej tener un indice por una sola columna o indices
compuestos (mas de una columna).

Aqui es muy importante el orden de los campos, por ej

CIUDAD,PAIS es una cosa y Pais,ciudad es otra cosa.

El de la izquierda sera la primer busqueda y el segundo la segunda.

a) Fill factor %
Esto se denomina Factor de relleno y es un porcenrtaje que quieres
que tenga el indice de relleno. con este seteo podes definir los Split de
indices

b) Create as CLUSTERED

El indice Cluster es un indice donde el orden es fisico, con lo
cual solo podes tener un solo indice Cluster por tabla

c) Do not automatically recompute statics

Esta opcion lo que indica es si quieres que las statisticas
para este indice se calculen de forma automatica o no. Si no lo haces de
forma automatica lo vas a tener que hacer por medio de un proceso T-sql.
Hay casos donde esto se justifica mucho, ya que actualizar las
estadisticas suele ser una terea pesada para el motor y si lo esta
haciendo de forma constante es una cosa!! en BDD muy grandes donde se
quieren hacer ajustes muy finos este tipo de opciones son de suma
importancia

Te recomiendo una leida por los BOL (Book on line) sobre el tema de
indices, ya que esta muy bien explicado ahi
:-)


Salu2
Maxi
Buenos Aires - Argentina
Desarrollador Microsoft 3 Estrellas .NET
Nunca consideres el estudio como una obligación sino como
una oportunidad para penetrar en el bello y maravillosos
mundo del saber.
- Albert Einstein



"Jorge Eldis" escribió en el mensaje
news:%
Buenas a todos,



Tengo unas consultas

Cuando creo un Index en una tabla por medio del SQL Server Manager
Enterprise este me pone un nombre de índice y uno puede escoger el campo
que desea indexar o varios campos.



1- La pregunta es que diferencia hay en crear Índices con varios campos o
crear un índice por cada campo?



2- He estado leyendo sobre las características que se le asignan a los
índices pero no logro entender bien, alguien podría explicarme o decirme
donde puedo referirme para saber que significan las siguientes
características?



a) Fill factor %

b) Create as CLUSTERED

c) Do not automatically recompute statics



Saludos y gracias por todo





Jorge Eldis







Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.795 / Virus Database: 539 - Release Date: 12/11/2004

Respuesta Responder a este mensaje
#3 Miguel Egea
15/11/2004 - 22:18 | Informe spam
Te contesto en linea

"Jorge Eldis" escribió en el mensaje
news:%
Buenas a todos,



Tengo unas consultas

Cuando creo un Index en una tabla por medio del SQL Server Manager
Enterprise este me pone un nombre de índice y uno puede escoger el campo
que desea indexar o varios campos.


1- La pregunta es que diferencia hay en crear Índices con varios campos o
crear un índice por cada campo?




Un indice es útil en función de muchas circunstancias, fundamentalmente es
el tipo de consutlas que haces si tu haces una consulta en que miras las
ventas de un cliente en un día, lo normal será que sea util un índice por
los dos campos (cliente,fecha). Un índice por cada dato serviriá si solo hay
un criterio, pero no los dos ya que no podrías encontrar lo que buscas de
forma directa. Espero que se entienda



2- He estado leyendo sobre las características que se le asignan a los
índices pero no logro entender bien, alguien podría explicarme o decirme
donde puedo referirme para saber que significan las siguientes
características?



a) Fill factor %



El factor de relleno es como de llenas dejará las páginas del último nivel
cuando cree el índice. Como comentario te diré que un error muy común es
dejarlas siempre al 90% que es como lo hacen los planes de mantenimiento. Es
necesario un estudio profundo para determinar un fillfactor optimo. Si no se
sabe cual es lo mejor es dejarlo al 100% y monitorizar un contador del
monitor de rendimiento que es el 'page split', si hay muchas rupturas de
página entonces hay que reconsiderar este número.


b) Create as CLUSTERED




El orden físico de los datos dentro de cada página, como es físico dentro de
cada página solo puede haber 1.

c) Do not automatically recompute statics




Las estadísticas se recalculan automáticamente cuando incrementa el número
de registros en función a una fórmula fija que puedes encontrar en el Inside
SQL Server de Kalen Delaney. Sirven al optimizador de consultas indicandole
que tan efectivo sería el uso de uno u otro indicie o cual plan de ejecución
es mejor. En mi opinión debes dejarlo siempre en que SI se actualicen,
acertarás en la mayoría de los casos y sin un coste desmesurado de
rendimiento en inserciones.




Saludos y gracias por todo





Jorge Eldis


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