Professional Documents
Culture Documents
PRESENTAN:
Adrian Rodriguez Gonzales
Maria Magdalena Rodriguez Avalos
Ana Cecilia Novoa Ordaz
Edsel Onchi Gonzales
PROFESOR:
Ing. Leonardo Martnez Gonzales
JIQUILPAN DE JUAREZ, MICH. A 19 DE Mayo DEL 2017.
INDICES PASO A PASO
1. Qu es un ndice?
Un ndice es una estructura de disco asociada con una tabla que acelera la
recuperacin de filas de la tabla. Un ndice contiene claves generadas a partir
de una o varias columnas de la tabla. Dichas claves estn almacenadas en una
estructura (rbol b) que permite que SQL Server busque de forma rpida y
eficiente la fila o filas asociadas a los valores de cada clave.
Los ndices bien diseados pueden reducir las operaciones de E/S de disco y
consumen menos recursos del sistema, con lo que mejoran el rendimiento de
la consulta. Los ndices pueden ser tiles para diversas consultas que
contienen instrucciones SELECT, UPDATE, DELETE o MERGE.
Al realizar un recorrido de la tabla, el optimizador de consultas leer todas las
filas de la tabla y extraer las filas que cumplen con los criterios de la
consulta. Un recorrido de la tabla genera muchas operaciones de E/S de disco
y puede consumir recursos. No obstante, puede ser el mtodo ms eficaz si,
por ejemplo, el conjunto de resultados de la consulta es un porcentaje
elevado de filas de la tabla.
Cuando el optimizador de consultas utiliza un ndice, busca en las columnas
de clave de ndice, busca la ubicacin de almacenamiento de las filas que
necesita la consulta y extrae las filas coincidentes de esa ubicacin.
Generalmente, la bsqueda del ndice es mucho ms rpida que la bsqueda
de la tabla porque, a diferencia de la tabla, un ndice frecuentemente
contiene muy pocas columnas por fila y las filas estn ordenadas.
El optimizador de consultas normalmente selecciona el mtodo ms eficaz
cuando ejecuta consultas. No obstante, si no hay ndices disponibles, el
optimizador de consultas debe utilizar un recorrido de la tabla. Su tarea
consiste en disear y crear los ndices ms apropiados para su entorno de
forma que el optimizador de consultas disponga de una seleccin de ndices
eficaces entre los que elegir.
4. Funciones de ndices.
4.1. UNIQUE
Crea un ndice nico en una tabla o una vista. Un ndice nico es aquel en el
que no se permite que dos filas tengan el mismo valor de clave del ndice. El
ndice clster de una vista debe ser nico.
Motor de base de datos no admite la creacin de un ndice nico sobre
columnas que ya contengan valores duplicados, independientemente de si
se ha establecido o no IGNORE_DUP_KEY en ON. Si se intenta, Motor de
base de datos muestra un mensaje de error. Se deben quitar los valores
duplicados para poder crear un ndice nico en la columna o columnas. Las
columnas que se utilizan en un ndice nico se deben establecer en NOT
NULL, dado que varios valores NULL se consideran duplicados cuando se crea
un ndice nico.
4.2. CLUSTERED
Crea un ndice en el que el orden lgico de los valores de clave determina el
orden fsico de las filas correspondientes de la tabla. El nivel inferior, u hoja,
de un ndice clster contiene las filas de datos reales de la tabla. Una tabla o
vista permite un ndice clster al mismo tiempo. Para obtener ms
informacin, vea Estructuras de ndices clster.
Una vista con un ndice clster nico se denomina vista indizada. La creacin
de un ndice clster nico en una vista materializa fsicamente la vista. Es
necesario crear un ndice clster nico en una vista para poder definir otros
ndices en la misma vista. Para obtener ms informacin, vea Disear vistas
indizadas.
Cree el ndice clster antes de crear los ndices no clster. Los ndices no
clster existentes en las tablas se vuelven a generar al crear un ndice
clster.
Si no se especifica CLUSTERED, se crea un ndice no clster.
4.3 NONCLUSTERED
Crea un ndice que especifica la ordenacin lgica de una tabla. Con un
ndice no clster, el orden fsico de las filas de datos es independiente del
orden indizado. Para obtener ms informacin, vea Estructuras de ndices no
agrupados.
Cada tabla puede tener hasta 999 ndices no clster, independientemente de
cmo se crean: de forma implcita con las restricciones PRIMARY KEY y
UNIQUE, o explcita con CREATE INDEX.
Para las vistas indizadas, solo se pueden crear ndices no clster en una vista
que ya tenga definido un ndice clster nico.
El valor predeterminado es NONCLUSTERED.
4.4 index_name
Es el nombre del ndice. Los nombres de ndice deben ser nicos en una
tabla o vista, pero no es necesario que sean nicos en una base de datos. Los
nombres de ndice deben seguir las reglas de los identificadores.
4.5 column
Es la columna o columnas en las que se basa el ndice. Especifique dos o ms
nombres de columna para crear un ndice compuesto sobre los valores
combinados de las columnas especificadas. Enumere las columnas que desee
incluir en el ndice compuesto (en orden de prioridad) entre parntesis
despus de table_or_view_name.
Se pueden combinar hasta 16 columnas en la clave de un nico ndice
compuesto. Todas las columnas de una clave del ndice compuesto deben
encontrarse en la misma tabla o vista. El tamao mximo permitido de los
valores de ndice combinado es 900 bytes.
Las columnas de tipos de datos de objetos grandes
(LOB) ntext, text, varchar(max), nvarchar(max), varbinary(max), xml o image
no se pueden especificar como columnas de clave de un ndice. Adems, una
definicin de vista no puede incluir columnas ntext, text ni image, aunque no
se haga referencia a ellas en la instruccin CREATE INDEX.
Puede crear ndices en columnas de tipo definido por el usuario CLR si el tipo
admite el orden binario. Tambin puede crear ndices en columnas
calculadas que estn definidas como invocaciones de mtodo de una
columna de tipo definido por el usuario, siempre que los mtodos estn
marcados como deterministas y no realicen operaciones de acceso a datos.
Para obtener ms informacin acerca de la indizacin de columnas de tipo
definido por el usuario CLR, vea Tipos definidos por el usuario CLR.
4.6 [ ASC | DESC ]
Determina la direccin ascendente o descendente del orden de la columna
de ndice determinada. El valor predeterminado es ASC.
5. Sintaxis
[;]
<object> ::=
{
[ database_name. [ schema_name ] . | schema_name. ]
table_or_view_name
}
<relational_index_option> ::=
{
PAD_INDEX = { ON | OFF }
| FILLFACTOR = fillfactor
| SORT_IN_TEMPDB = { ON | OFF }
| IGNORE_DUP_KEY = { ON | OFF }
| STATISTICS_NORECOMPUTE = { ON | OFF }
| DROP_EXISTING = { ON | OFF }
| ONLINE = { ON | OFF }
| ALLOW_ROW_LOCKS = { ON | OFF }
| ALLOW_PAGE_LOCKS = { ON | OFF }
| MAXDOP = max_degree_of_parallelism
| DATA_COMPRESSION = { NONE | ROW | PAGE}
[ ON PARTITIONS ( { <partition_number_expression> | <range> }
[ , ...n ] ) ]
}
<filter_predicate> ::=
<conjunct> [ AND <conjunct> ]
<conjunct> ::=
<disjunct> | <comparison>
<disjunct> ::=
column_name IN (constant ,...n)
<comparison> ::=
column_name <comparison_op> constant
<comparison_op> ::=
{ IS | IS NOT | = | <> | != | > | >= | !> | < | <= | !< }
<range> ::=
<partition_number_expression> TO <partition_number_expression>
<object> ::=
{
[ database_name. [ owner_name ] . | owner_name. ]
table_or_view_name
}
<backward_compatible_index_option> ::=
{
PAD_INDEX
| FILL
FACTOR = fillfactor
| SORT_IN_TEMPDB
| IGNORE_DUP_KEY
| STATISTICS_NORECOMPUTE
| DROP_EXISTING
}
10. Para que nuestra base de datos detecte cada incidencia y sea ms
eficiente se necesita una optimizacin de recursos, Existen varias
maneras de optimizar las BD y las consultas. A menudo las BD no son bien
diseadas y no estn normalizadas. Esto puede afectar de forma radical la
velocidad de su BD. Como regla general aprenda las 3 formas normales y
aplquelas en todo momento. Existen diseos que van ms all de la
tercera forma normal, stos generalmente se usan para hacer an ms
rpida una BD
13. Clster
Los ndices clster ordenan y almacenan las filas de los datos de la tabla o
vista de acuerdo con los valores de la clave del ndice. Son columnas incluidas
en la definicin del ndice. Solo puede haber un ndice clster por cada tabla,
porque las filas de datos solo pueden estar ordenadas de una forma.
La nica ocasin en la que las filas de datos de una tabla estn ordenadas es
cuando la tabla contiene un ndice clster. Cuando una tabla tiene un ndice
clster, la tabla se denomina tabla agrupada. Si una tabla no tiene un ndice
clster, sus filas de datos estn almacenadas en una estructura sin ordenar
denominada montn.
14.No agrupado
Los ndices no clster tienen una estructura separada de las filas de datos. Un
ndice no clster contiene los valores de clave de ndice no clster y cada
entrada de valor de clave tiene un puntero a la fila de datos que contiene el
valor clave.
El puntero de una fila de ndice no clster hacia una fila de datos se
denomina localizador de fila. La estructura del localizador de filas depende de
si las pginas de datos estn almacenadas en un montn o en una tabla
agrupada. Si estn en un montn, el localizador de filas es un puntero hacia
la fila. Si estn en una tabla agrupada, el localizador de fila es la clave de
ndice clster.
Puede agregar columnas sin clave al nivel hoja de un ndice no clster con el
fin de eludir los lmites existentes para las claves de ndice, 900 bytes y 16
columnas de clave, as como para ejecutar consultas indizadas y totalmente
cubiertas. Para ms informacin, consulte Create Indexes with Included
Columns.
Hash Con un ndice hash, se accede a los datos a travs de una tabla hash en
memoria. Los ndices hash utilizan una cantidad fija de memoria, que es una
funcin del nmero de depsitos.
ndices no clster Para los ndices no clster con optimizacin para memoria, el consumo de
con optimizacin memoria depende del nmero de filas y del tamao de las columnas de clave
para memoria de ndice.
Clster Un ndice clster ordena y almacena las filas de datos de la tabla o vista por
orden en funcin de la clave del ndice clster. El ndice clster se implementa
como una estructura de rbol b que admite la recuperacin rpida de las filas
a partir de los valores de las claves del ndice clster.
No agrupado Los ndices no clster se pueden definir en una tabla o vista con un ndice
clster o en un montn. Cada fila del ndice no clster contiene un valor de
clave no agrupada y un localizador de fila. Este localizador apunta a la fila de
datos del ndice clster o el montn que contiene el valor de clave. Las filas
del ndice se almacenan en el mismo orden que los valores de la clave del
ndice, pero no se garantiza que las filas de datos estn en un determinado
orden a menos que se cree un ndice clster en la tabla.
ndice con ndice no clster que se extiende para incluir columnas sin clave adems de
columnas incluidas las columnas de clave.
ndice en columnas ndice de una columna que se deriva del valor de una o varias columnas, o
calculadas algunas entradas deterministas.
costosas.
Texto completo Tipo especial de ndice funcional basado en smbolos (token) que compila y
mantiene el motor de texto completo de Microsoft para SQL Server.
Proporciona la compatibilidad adecuada para bsquedas de texto complejas
en datos de cadenas de caracteres.
CONCLUSIONES
Aprend que los ndices se usan principalmente para optimizar las consultas en las bases
de datos, ya que tomamos un ndice valga la redundancia de lo que queremos buscar,
ordenadamente, tambin nos sirven para agregar de manera alfabtica los registros de los
campos que elijamos para hacerlo, un ejemplo es si queremos que los datos ingresen en
orden alfabtico usando el apellido paterno, nos aparecera una lista as si usamos el
ndice del campo a_paterno:
Pero tambin aprend que no hay que abusar del nmero de ndices, ya que si ponemos
de ms el sistema podra hacerse lento, ya que tiene que buscar entre muchos registros y
cambiarlos de posicin para agregar uno nuevo y a la larga esto sera ms tedioso para los
usuarios finales, ya que tendran que esperar mucho tiempo, adems aprend que la base
de datos de encarga de seleccionar el mejor ndice para ejecutar de los muchos que tiene.
Y en nuestro trabajo de incidencias siento que el uso de ndices nos pueden servir para
identificar ms fcilmente el nmero de incidencias que tenga un empleado de la
institucin, ya que encontraramos de forma ms fcil la informacin requerida y los datos
que buscamos.
Nombre: Mara Magdalena Rodriguez Avalos
NC:14420518