Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Diseño de Indices
Diseño de Indices
Contenido
Introduccin
12
19
25
Diseo de ndices
Diseo de ndices
Introduccin
Objetivo del tema
Proporcionar una
introduccin a los temas
y objetivos del mdulo.
Explicacin previa
Diseo de ndices
Explicacin previa
Diseo de ndices
Explicacin previa
Comprender cmo se
almacenan los datos es el
fundamento para entender
cmo SQL Server tiene
acceso a ellos.
Pginas de datos
Pgina 4
Con
Funk
White
...
...
Pgina 5
...
...
...
...
...
Rudd
White
Barr
...
...
Pgina 6
...
...
...
...
...
Akhtar
Funk
Smith
Martin
...
Pgina 8
Pgina 7
...
...
...
...
...
Smith
Ota
Jones
...
...
...
...
...
...
...
Martin
Phua
Jones
Smith
...
Pgina 9
...
...
...
...
...
Ganio
Jones
Hall
...
...
...
...
...
...
...
Diseo de ndices
Diseo de ndices
Explicacin previa
La creacin de un ndice no
es obligatoria. Veamos por
qu puede ser conveniente
crear un ndice.
Al considerar si debe crear un ndice, debe evaluar dos factores para asegurar
que el ndice va a ser ms eficiente que recorrer la tabla: la naturaleza de los
datos y la naturaleza de las consultas basadas en la tabla.
En general, los ndices aceleran las consultas que combinan tablas y que
realizan operaciones de ordenacin o agrupamiento.
Los ndices ms adecuados son los creados con columnas que tienen un alto
grado de selectividad; es decir, columnas o combinaciones de columnas en
las que la mayora de los datos son nicos.
Diseo de ndices
Sugerencia
Pregunta: Son
imprescindibles los
ndices?
Los ndices son tiles, pero consumen espacio en disco y generan costos de
procesamiento y mantenimiento adicionales. Al utilizar ndices, tenga en
cuenta los siguientes hechos y directrices:
Al modificar los datos de una columna indizada, SQL Server actualiza los
ndices asociados.
Diseo de ndices
Presentar la arquitectura
agrupada y no agrupada
de los ndices.
Explicacin previa
Uso de montones
Diseo de ndices
Diseo de ndices
Uso de montones
Objetivo del tema
SQL Server:
Explicacin previa
SQL Server mantiene las pginas de datos en un montn, a menos que se haya
definido un ndice agrupado en la tabla. SQL Server:
Recupera espacio para las nuevas filas del montn cuando se elimina
una fila.
Diseo de ndices
10
Explicacin previa
Sugerencia
Sugerencia
Pregunta: De dnde
procede el valor 1,2?
Respuesta: 1 = datos y
0,2 = ndice. Estos valores
son estimaciones
conservadoras.
Los ndices agrupados son tiles para las columnas en las que se buscan
frecuentemente intervalos de valores de clave o a las que se tiene acceso
siguiendo un orden. Al crear un ndice agrupado, tenga en cuenta los siguientes
hechos y directrices:
El orden fsico de las filas de la tabla y el orden de las filas en el ndice son
el mismo. Debe crear el ndice agrupado antes de crear cualquier ndice no
agrupado, ya que el primero cambia el orden fsico de las filas de la tabla.
Las filas se ordenan secuencialmente y se mantienen con esa ordenacin.
Pregunta: Por qu no es
posible tener dos ndices
agrupados en una tabla?
Respuesta: SQL Server
slo almacena una
ordenacin fsica de las
filas de cada tabla.
Diseo de ndices
11
Explicacin previa
Los ndices no agrupados son tiles cuando los usuarios requieren varios modos
de buscar datos. Por ejemplo, supongamos que un lector busca frecuentemente
en un libro de jardinera los nombres corrientes y cientficos de plantas. Podra
crear un ndice no agrupado para obtener los nombres cientficos y otro para
obtener los nombres corrientes. Al crear un ndice no agrupado, tenga en cuenta
los siguientes hechos y directrices:
Diseo de ndices
12
Presentar la recuperacin
de los datos.
Explicacin previa
Diseo de ndices
13
Describir la funcin de
sysindexes en una
bsqueda de datos.
Explicacin previa
Tipo
Tipo de
de objeto
objeto
00
Montn
Montn
11
ndice
ndice agrupado
agrupado
22 aa 250
250
ndice
ndice no
no agrupado
agrupado
255
255
text,
text, ntext
ntext oo image
image
Distribucin de datos
La columna indid
A continuacin se indica cmo las columnas de la tabla sysindexes ayudan a
encontrar pginas de datos para diferentes tipos de objetos:
Un ndice agrupado creado para una tabla tiene una fila en sysindexes con la
columna indid establecida en 1. La columna root de sysindexes apunta a la
parte superior del rbol equilibrado (rbol B) del ndice agrupado.
Diseo de ndices
Sugerencia
La informacin generada
por el comando UPDATE
STATISTICS tambin se
encuentra en sysindexes.
14
Cada ndice no agrupado creado para una tabla tiene una fila en sysindexes
con un valor en la columna indid. El valor de la columna indid de un ndice
no agrupado oscila entre 2 y 250. La columna root de sysindexes apunta a
la parte superior del rbol B del ndice no agrupado.
Cada tabla que tiene al menos una columna text, ntext o image tiene
tambin una fila en sysindexes con la columna indid establecida en 255.
La columna FirstIAM de sysindexes apunta a la cadena de pginas IAM
que administran las pginas text, ntext e image.
Diseo de ndices
15
sysindexes
id indid = 0
Describir la bsqueda de
datos en un montn.
Explicacin previa
IAM
Extensin
127
128
129
130
Montn
Extensin 127
01
Con
01
Rudd
01
Akhtar
02
01
Funk
Smith
02
01
White
Con
02
01
Funk
Rudd
03
02
White
01
Ota
Akhtar
03
02
Barr
01Funk
Smith
03
02
Smith
White
04
03
Durkin
02
Jones
Funk
......
04
03
...
02
White
Ota
03
Martin
05
Lang
03
...Barr
Smith
...............
...
03
Jones
...... ...Martin
...... ......
04
...
...... ...
......
......
...
Sugerencia
Extensin 128
01
Dunn
01
Rudd
01
Akhtar
02
01
Randall
Smith
02
01
White
Con
02
01
Funk
Rudd
03
02
Ota
01
Ota
Akhtar
03
02
Barr
01Funk
Smith
03
02
Smith
White
04
03
Slichter
02
Jones
Funk
......
04
03
...
02
White
Ota
03
Martin
05
LaBrie
03
...Barr
Smith
...............
...
03
Jones
...... ...Martin
...... ......
04
...
...... ...
......
......
...
Primera IAM
Mapa de bits
1
1
0
1
Extensin 129
01
Seattle
01
Rudd
01
Akhtar
02
01
Paris
Smith
02
01
White
Con
02
01
Funk
Rudd
03
02
Tokyo
01
Ota
Akhtar
03
02
Barr
01Funk
Smith
03
02
Smith
White
04
03
Atlanta
02
Jones
Funk
......
04
03
...
02
White
Ota
03
Martin
...
03
...Barr
Smith
...............
...
03
Jones
04
...... ...Martin
... ...
...... ...............
......
......
Extensin 130
01
Graff
01
Rudd
01
Akhtar
02
01
Bacon
Smith
02
01
White
Con
02
01
Funk
Rudd
03
02
Koch
01
Ota
Akhtar
03 02
Barr
01Funk
Smith
02
Smith
White
03
03
...
02
Jones
Funk
......
03
...
02
White
Ota
03
Martin
04
...
03
...Barr
Smith
...............
...
03
Jones
04
...... ...Martin
... ...
...... ...............
......
......
Cuando no hay ndices en una tabla, SQL Server debe utilizar un recorrido de
tabla para recuperar filas. SQL Server utiliza la tabla sysindexes para buscar
la pgina IAM. Gracias a que la pgina IAM contiene una lista de todas las
pginas relacionadas con esa tabla, en forma de un mapa de bits de extensiones
de ocho pginas, SQL Server puede leer todas las pginas de datos.
Iniciar una bsqueda de datos en un montn mediante una pgina IAM puede
ser un buen mtodo para un recorrido de tabla, pero no es conveniente para
buscar un nmero pequeo de filas en una tabla grande.
Las filas se devolvern sin orden. Aunque inicialmente pueden devolverse
en orden de insercin, este orden no se mantiene. Una vez producidas las
eliminaciones, las nuevas inserciones llenarn los huecos, lo que har que el
orden sea impredecible.
Diseo de ndices
16
sysindexes
Describir la bsqueda
de datos con un ndice
no agrupado.
id
indid = 2
raz
Akhtar
Akhtar
No situadas
...
...
en el nivel
Martin
Martin
lastname,
firstname
Pg. 37SELECT
Pg.
28
de hoja
SELECT
firstname
Pg.lastname,
12 - Raz
Akhtar
Martin
AkhtarFROM
Martin
FROM member
member
Ganio
Smith
GanioWHERE lastname
Smith
WHERE lastname ......
...
...
Explicacin previa
ndice
ndice
no
agrupado
no
agrupado
BETWEEN 'Masters'
AND
'Masters'
AND71 'Rudd'
'Rudd'
Pg. 61
Pg.
Nivel de hoja
BETWEEN
Pg. 41
Pg.
51
Akhtar
4:706:01 Ganio
4:709:01
Akhtar 4:706:01
Ganio 4:709:01
Barr
Hall
Barr 4:705:03
4:705:03
Hall 4:709:04
4:709:04
Con
Con 4:704:01
4:704:01 Jones
Jones 4:709:02
4:709:02
Funk
Funk 4:706:02
4:706:02 Jones
Jones 4:708:03
4:708:03
Funk
Funk 4:704:02
4:704:02 Jones
Jones 4:707:03
4:707:03
Martin
4:708:01
Martin 4:708:01
Matey 4:706:04
Matey
4:706:04
Ota
Ota
Ota 4:707:02
4:707:02
Phua
Phua 4:708:02
4:708:02
Rudd
4:705:01
Rudd 4:705:01
Smith
Smith
Smith
Smith
Smith
Smith
White
White
White
White
4:706:03
4:706:03
4:708:04
4:708:04
4:707:01
4:707:01
4:704:03
4:704:03
4:705:02
4:705:02
(Valor de
clave)
Montn
Pg. 704
01 ... Conn
02 ... Funk
03 ... White
... ... ...
... ... ...
File ID #4
Sugerencia
Pg. 705
01 ... Rudd
02 ... White
03 ... Barr
... ... ...
... ... ...
Pg. 706
01 ... Akhtar
02 ... Funk
03 ... Smith
04 ... Matey
... ... ...
Pg. 707
01 ... Smith
02 ...
02
... Ota
03 ... Jones
... ... ...
... ... ...
Pg. 808
01 ... Martin
02
02 ... Phua
03 ... Jones
04 ... Smith
... ... ...
P 709709
Pg.
01 ... Ganio
02 ... Jones
03 ... Hall
... ... ...
... ... ...
Ejemplo
Diseo de ndices
17
sysindexes
Describir la bsqueda
de datos con un ndice
agrupado.
id
Akhtar
Akhtar
Martin
Martin
Pg. 140 - Raz
Akhtar
Akhtar lastname, firstname Martin
Martin
SELECT
SELECT
lastname, firstname Smith
Ganio
Ganio
Smith
FROM
member
FROM
member
WHERE
lastname
=
'Ota'
WHERE
Pg.
141 lastname = 'Ota'
Pg. 145
Akhtar
Akhtar 2334
2334
Barr
Barr 5678
5678
Con
2534
Con
2534
Funk
Funk 1334
1334
Funk
Funk 1534
1534
...
...
...
...
Pg. 100
raz
ndice agrupado
Explicacin previa
Sugerencia
indid = 1
...
...
...
...
...
...
...
...
...
...
...
...
Ganio
Ganio 7678
7678
Hall
8078
Hall
8078
Jones
Jones 2434
2434
Jones
Jones 5978
5978
Jones
Jones 2634
2634
...
...
...
...
Pg. 110
...
...
...
...
...
...
...
...
...
...
...
...
Martin
Martin 1234
1234
Martin
Martin 7778
7778
Ota
5878
Ota
5878
Phua
Phua 7878
7878
Rudd
Rudd 6078
6078
...
...
...
...
Pg. 120
...
...
...
...
...
...
...
...
...
...
...
...
Smith
Smith 1434
1434
Smith
Smith 5778
5778
Smith
Smith 7978
7978
White
White 2234
2234
White
White 1634
1634
...
...
...
...
Pg. 130
...
...
...
...
...
...
...
...
...
...
...
...
Diseo de ndices
18
Describir la bsqueda de
datos cuando ambos tipos
de ndices estn presentes.
sysindexes
raz
No situadas
en el nivel
de hoja
Aaron
Aaron
...
...
Jose
Jose
Aaron
Aaron
Jose
Jose
SELECT
lastname,
phone
SELECT
lastname, firstname,
firstname,
phone
Deanna
Nina
Deanna
Nina
FROM
member
member
FROM
WHERE
WHERE firstname
firstname == 'Mike'
'Mike'
El ndice secundario se
utiliza para acelerar las
bsquedas en columnas
adicionales.
Aaron
Aaron
Adam
Adam
Amie
Amie
Con
Con
Barr
Barr
Baldwin
Baldwin
Barr
Barr
Cox
Cox
Daum
Daum
Deanna
Deanna
Don
Don
Doug
Doug
Daum
Daum
Hall
Hall
Hampton
Hampton
Jose
Jose
Judy
Judy
Mike
Mike
Lugo
Lugo
Kaethler
Kaethler
Nash
Nash
Nivel
de hoja
(Valor de clave
agrupado)
Barr
Barr
Kim
Kim
Nagata
Nagata
OMelia
OMelia
ndice agrupado
para Last Name
indid = 2
ndice no
agrupado
para
First Name
Explicacin previa
Sugerencia
id
Adam
Adam
Arlette
Arlette
Deanna
Deanna
Kim
Kim
Kobara
Kobara
LaBrie
LaBrie
Shane
Shane
Linda
Linda
Ryan
Ryan
Nagata
Nagata
Nash
Nash
Nixon
Nixon
Susanne
Susanne
Mike
Mike
Toby
Toby
Ejemplo
Diseo de ndices
19
Explicacin previa
Esta seccin explica cmo SQL Server mantiene ndices y montones al insertar,
actualizar y eliminar filas.
Diseo de ndices
20
Describir el concepto de
una divisin de pgina.
Pginas de ndice
INSERT
INSERT member
member (last
(last name)
name)
VALUES
VALUES lastname
lastname == Jackson'
Jackson'
Explicacin previa
No situadas
en el nivel
de hoja
Akhtar
Akhtar
Martin
Martin
Akhtar
Akhtar
Ganio
Ganio
Jackson
Lang
Lang
Smith
Smith
Nivel
Nivel de
de hoja
hoja
Sugerencia
Sugerencia
Akhtar
Akhtar
Barr
Barr
Barr
Barr
Borm
Borm
Buhl
Buhl
Ganio
Akhtar
Akhtar
Ganio
Hall
Barr
Hall
Barr
Hart
Barr
Hart
Barr
Borm
Borm
Buhl
Buhl
Jackson
Ganio
Jackson
Ganio
Jones
Hall
Jones
Hall
Jones
Hart
Jones
Hart
Jones
Jones
Jones
Jones
Lang
Lang
Martin
Martin
Martin
Martin
Martin
Martin
Moris
Moris
Smith
Smith
Smith
Smith
Smith
Smith
Smith
Smith
Smith
Smith
(Valor de clave)
Diseo de ndices
21
sysindexes
id
Describir el concepto de
un puntero de reenvo.
Explicacin previa
Pg. 37
Akhtar
Akhtar
Ganio
Ganio
UPDATE
...
...
UPDATE
indid = 2
Akhtar
Akhtar
...
...
Martin
Martin
Pg. 12 - Raz
member
member
raz
Pg. 28
Martin
Martin
Smith
Smith
...
...
No situadas
en el nivel
de hoja
ndice no
agrupado
SET
Address
==
<something
long>
SETPg.
Address
<something
long>
Pg. 41
51
Pg.
61
Pg. 71
Nivel de hoja
WHERE
==4:708:01
'Ota'
Akhtar
Ganio
4:709:01
(Valor (Valor
de clave)
de
4:706:01
4:709:01 Martin
4:708:01
4:706:03
Akhtar 4:706:01
Ganiolastname
Martin
Smith 4:706:03
WHERE
lastname
'Ota'Smith
Barr
4:705:03
Hall
4:709:04
Martin
4:706:04
Smith
4:708:04
Barr 4:705:03
Hall 4:709:04 Martin 4:706:04 Smith 4:708:04
clave)
Con
Ota
Con 4:704:01
4:704:01 Jones
Jones 4:709:02
4:709:02 Ota
Ota 4:707:02
4:707:02 Smith
Smith 4:707:01
4:707:01
Funk
Funk 4:706:02
4:706:02 Jones
Jones 4:708:03
4:708:03 Phua
Phua 4:708:02
4:708:02 White
White 4:704:03
4:704:03
Funk
Funk 4:704:02
4:704:02 Jones
Jones 4:707:03
4:707:03 Rudd
Rudd 4:705:01
4:705:01 White
White 4:705:02
4:705:02
Montn
Pg. 704
01 ... Conn
02 ... Funk
03 ... White
... ... ...
... ... ...
File ID #4
Sugerencia
Pg. 705
01 ... Rudd
02 ... White
03 ... Barr
... ... ...
... ... ...
Pg. 706
01 ... Akhtar
02 ... Funk
03 ... Smith
04 ... Martin
... ... ...
Pg. 707
01 ... Smith
02
... Ota
02 ...
03 ... Jones
04 ... Corets
05 ... Nash
Pg. 808
01 ... Martin
02 ... Phua
03 ... Jones
04 ... Smith
... ... ...
Pg. 709
01 ... Ganio
02 ... Jones
03 ... Hall
...
04 ... ...Ota
... ... ...
Inserciones en un montn
La insercin de una fila en un montn no puede hacer que se divida una pgina,
ya que es posible insertar una nueva fila siempre que haya espacio disponible.
Punteros de reenvo
Si la actualizacin de una fila en un montn necesita ms espacio del que hay
actualmente disponible en esa pgina, la fila se mover a una nueva pgina de
datos. La nueva fila deja un puntero de reenvo en su ubicacin original. Si la
fila con el puntero de reenvo tiene que moverse otra vez, el puntero original se
vuelve a dirigir a la nueva ubicacin.
El puntero de reenvo asegura que no se tengan que cambiar los ndices no
agrupados. Si una actualizacin hace que la fila avanzada se reduzca lo
suficiente como para que quepa en su ubicacin original, el puntero se elimina
y la actualizacin restaura el registro a su ubicacin original
Diseo de ndices
22
Explicacin previa
Diseo de ndices
23
Describir la eliminacin
de filas.
Explicacin previa
Diseo de ndices
24
Una vez eliminados los registros, los archivos se pueden reducir. SQL Server
reduce los archivos al trasladar los datos a pginas disponibles al principio del
archivo. Dentro de un ndice, SQL Server mueve pginas enteras para que las
filas se mantengan en el orden adecuado. Los punteros de pgina se ajustan para
vincular la pgina movida dentro de la secuencia correcta en la tabla. Si no hay
ningn ndice agrupado, las filas individuales se pueden mover siempre que
haya espacio en el archivo.
Nota La opcin de base de datos autoshrink intenta reducir la base de datos
sin intervencin manual. Lo hace cada cinco minutos despus del inicio y,
posteriormente, cada treinta minutos. El archivo queda reducido a un tamao
donde el 25 por ciento del archivo es espacio sin utilizar o al tamao de archivo
que tena cuando se cre, el que sea mayor.
Diseo de ndices
25
Explicacin previa
Directrices de indizacin
Determinacin de la selectividad
Determinacin de la densidad
Diseo de ndices
26
Explicacin previa
Tener una profunda compresin de los requisitos de datos del usuario ayudar a
determinar qu columnas indizar y qu tipos de ndices crear. Puede que tenga
que sacrificar algo de velocidad en una consulta para ganar mejor rendimiento
en otra.
Diseo de ndices
27
Directrices de indizacin
Objetivo del tema
Considerar qu columnas
se deben indizar.
Explicacin previa
Pregunta: Pueden
indizarse todas las
columnas?
Cree ndices basados en las columnas buscadas con frecuencia, por ejemplo:
Claves principales.
Respuesta: S, pueden
indizarse todas las
columnas, pero hacerlo
resultara poco eficiente.
Pregunta: Es posible
indizar una nica columna
ms de una vez?
Respuesta: S, pero en
general hacerlo es poco
eficiente.
Se definen con los tipos de datos text, ntext e image. Las columnas con
estos tipos de datos no se pueden indizar.
Diseo de ndices
28
Explicacin previa
A la hora de seleccionar el
ndice agrupado, tenga en
cuenta cmo se utiliza la
tabla.
Ordenacin
z
Sugerencia
Ordenacin
Las tablas que con frecuencia se ordenan para informes, se agrupan para
agregaciones o en las que se buscan intervalos de datos pueden beneficiarse de
un ndice agrupado en la columna de ordenacin. El uso de un ndice agrupado
resulta particularmente til cuando se devuelven muchas columnas de la tabla y
no es prctico utilizar un ndice no agrupado. Por ejemplo, una tabla de lista de
correo se beneficiara de un ndice agrupado en el cdigo postal, ya que las
etiquetas de correo deben imprimirse y aplicarse en un orden determinado.
Utilice el tipo de datos menor posible; por ejemplo, tinyint en lugar de int.
Diseo de ndices
29
Comprender por qu
es importante limitar la
bsqueda y cmo hacerlo.
Explicacin previa
El rendimiento de las
consultas depender de
lo bien que haya diseado
sus ndices y de lo selectivas que sean las
consultas. Siempre debe
escribir consultas que
limiten una bsqueda.
z
z
Comprobar que existe una expresin para cada tabla a la que se hace
referencia en la consulta.
Diseo de ndices
30
Consulta
Diseo de ndices
31
Determinacin de la selectividad
Objetivo del tema
Alta selectividad
member_no
member_no last_name
last_name first_name
first_name
Nmero de filas que cumplen el criterio
1000
11
Randall
Joshua
Randall
Joshua
= 10000 = 10%
Nmero total de filas en la tabla
22
Flood
Kathie
Flood
Kathie
..
SELECT
SELECT **
FROM
..
FROM member
member
WHERE
WHERE member_no
member_no >> 8999
8999
..
10000
Anderson
Bill
10000
Anderson
Bill
Presentar el concepto
de selectividad.
Explicacin previa
La selectividad es un
concepto y trmino
frecuentemente utilizado
para explicar los ndices.
Baja selectividad
member_no
member_no last_name
last_name first_name
first_name
Nmero de filas que cumplen el criterio 9000
11
Randall
Joshua
Randall
Joshua
= 10000 = 90%
Nmero total de filas en la tabla
22
Flood
Kathie
Flood
Kathie
..
SELECT
SELECT **
FROM
..
FROM member
member
WHERE
WHERE member_no
member_no << 9001
9001
..
10000
Anderson
Bill
Anderson
Bill
10000
Sugerencia
Los ejemplos de la
diapositiva no se
pueden ejecutar en la
base de datos credit.
Definicin de selectividad
La selectividad se deriva del porcentaje de filas de una tabla a las que tiene
acceso o devuelve una consulta. El optimizador de consultas determina la
selectividad de las instrucciones SELECT, UPDATE o DELETE. Cuando
cree ndices, debe crearlos en:
Estimacin de la selectividad
Puede determinar lo selectiva que es una consulta si estima el nmero de filas
devueltas, con relacin al nmero total de filas en una tabla para una consulta
especfica.
Diseo de ndices
Ejemplo 1
32
En este ejemplo, suponiendo que hay 10.000 filas en la tabla member y que
los nmeros de los miembros estn en el intervalo de 1 a 10.000 (todos valores
nicos), la consulta devuelve una fila.
SELECT *
FROM member
WHERE member_no = 8999
Ejemplo 2
En este ejemplo, suponiendo que hay 10.000 filas en la tabla member y que
los nmeros de los miembros estn en el intervalo de 1 a 10.000 (todos valores
nicos), la consulta devuelve 999 filas.
SELECT *
FROM member
WHERE member_no > 9001
Ejemplo 3
En este ejemplo, suponiendo que hay 10.000 filas en la tabla member y que
los nmeros de los miembros estn en el intervalo de 1 a 10.000 (todos valores
nicos), la consulta devuelve 9.000 filas.
SELECT *
FROM member
WHERE member_no < 9001
Diseo de ndices
33
Determinacin de la densidad
Objetivo del tema
Presentar el concepto
de densidad.
last_name
last_name first_name
first_name
Randall
Joshua
Randall
Joshua
..
..
Explicacin previa
La densidad es un
concepto relacionado
con la selectividad. Al
determinar las columnas
que se van a indizar, debe
examinar la densidad de
los datos.
..
Randall
Randall
Randall
Randall
Cynthia
Cynthia
Tristan
Tristan
..
..
..
Ota
Ota
..
Alta densidad
SELECT
SELECT **
FROM
FROM member
member
WHERE
WHERE last_name
last_name ==
Randall
Randall
Baja densidad
Lani
Lani
SELECT
SELECT **
FROM
FROM member
member
WHERE
WHERE last_name
last_name == Ota
Ota
..
..
Sugerencia
Los ejemplos de la
diapositiva no se pueden
ejecutar en la base de
datos credit.
Definicin de densidad
La densidad es el porcentaje promedio de las filas duplicadas en un ndice. Si
los datos o las consultas no son muy selectivas (baja selectividad), se tiene un
alto porcentaje de densidad.
Diseo de ndices
34
Diseo de ndices
35
Explicar el concepto de
distribucin de datos y las
diferentes formas en que
se puede examinar la
distribucin de datos.
Nmero
de
Last Names
Explicacin previa
La distribucin de datos
est relacionada con el
concepto de densidad.
Al determinar la densidad
de los datos, debe examinar
tambin el modo en que se
distribuyen.
A-E
F-J
K-O
P-U
Last Name
V-Z
Nmero
de
Last Names
A-B
C-F
G-K
L-N
Last Name
O-Z
Diseo de ndices
36
Sugerencia
Los ejemplos de la
diapositiva no se pueden
ejecutar en la base de
datos credit.