9.1 Visión general de -1 índice

el desarrollo de bases de datos SQL índice -TSQL- Capítulo IX

9.1 Descripción general Índice

1 es un índice en una vista de tabla asociado con el disco o en la memoria, o estructura, puede acelerar la tabla o la vista de las filas recuperadas. Se compone de un índice o una clave de generación de columnas tabla o vista. Para el índice en el disco, estas claves se almacenan en una estructura (árbol B) en el SQL Server de forma rápida y eficiente a encontrar la fila asociada con el valor de la clave.

https://gss3.bdstatic.com/-Po3dSag_xI4khGkpoWK1HF6hhy/baike/c0%3Dbaike80%2C5%2C5%2C80%2C26/sign=35678d408794a4c21e2eef796f9d70b0/4e4a20a4462309f773bdc15d720e0cf3d6cad6ab.jpg

2 al índice lógicamente organizado como una tabla que comprende filas y columnas para el almacenamiento de datos; un formato de datos en una fila (que se refiere como una línea de almacenamiento), o para almacenar datos en un formato de datos físico por columna (llamado un almacenamiento de columna).

 

¿Qué índice es 3: índices en el directorio de base de datos es similar a un libro, utilice la tabla de contenido en un libro podrá encontrar con rapidez la información que desee, sin tener que leer todo el libro. En una base de datos, el programa puede ser reutilizado índice para la tabla de datos ah, sin escanear toda la tabla. El contenido de la página del libro es una lista de palabras y cada palabra se encuentra, el índice de base de datos es una lista de valores en la tabla, así como el valor de la ubicación de almacenamiento.

Pros y los contras de 4 índices: la mayor parte del costo de ejecución de la consulta es el de E / S, un objetivo principal de utilizar el índice para mejorar el rendimiento es evitar el escaneo completo de tabla, ya que las necesidades de escaneo de una mesa llena de leer los datos de cada tabla de páginas desde el disco, si hay un índice puntos a los valores de datos, la consulta tiene que leer sólo unas pocas veces al disco en la línea. Por lo que el uso racional del índice puede acelerar la consulta de datos.

5 índice no siempre mejora el rendimiento del sistema, tablas indexadas requieren más espacio de almacenamiento en la base de datos, el mismo comando se utiliza para agregar o eliminar, los datos de tiempo de ejecución y el tiempo de mantenimiento requerido para procesar el índice será más largo. Así tenemos que el uso racional del índice, para actualizar el índice de eliminación de sub-óptima.

9.1.1 Glosario

 1 la estructura básica de los datos

Cuando se crea una nueva tabla, el sistema asignará a algunos a 8K unidades de espacio contiguo en el disco, cuando el valor del campo se escribe en el disco de la memoria, se guarda en el espacio determinado al azar, cuando un 8K acaba el tiempo , la base de datos automáticamente asignará espacio para un puntero a 8K. Aquí, cada 8K espacio se llama una página de datos (Página), también conocida como página o página de datos, y el número de página asignado por en 0-7, p 0 registro de cada archivo de información de guía, llame a la cabecera del fichero (cabecera del archivo ); cada combinación de ocho páginas de datos (64 K) está formado área extendida (extensión), referido como extendida. La combinación de todas las páginas de datos de formar una pila (Pila).

SQL no puede cruzar las páginas de datos de línea definido, por lo que la cantidad máxima de datos por fila sólo puede grabarse como 8K. Esto es a la vez la capacidad de carbón y la cadena de tipo varchar se limita a menos de 8K razón, almacenar más de 8K de datos debe utilizar el tipo de texto, de hecho, el campo de valor de tipo texto no se puede introducir y guardar directamente, simplemente almacena un puntero, punto de la zona de extensión por las páginas de datos de texto que consisten en una serie de 8K, los datos reales son los datos de estas páginas. 

Hay páginas y páginas en la página de datos espaciales de.  

Cuando las ocho páginas de datos en una región extendida contiene tanto el espacio y los datos de página o página de índice incluye un llamado expansión híbrida (extensión mixta), se inicia con la mezcla de cada extensión de la mesa, de lo contrario, llamada extensión consistente (Uniform medida), específicamente para guardar la información y los datos de índice. 

Cuando se crea la tabla, SQL asigna al menos una página de datos en la extensión mixta, con la cantidad de datos crece, SQLS pueden ser asignados al instante unas siete páginas en extensiones mixtas cuando más de ocho páginas de datos, a partir de la misma página de datos asignada extendida.  

2 división de páginas

La mitad de los datos se mantendrá en la página de edad, mientras que la otra mitad se coloca en una nueva página y una nueva página se puede asignar a cualquier página disponible. Por lo tanto, la página frecuentes dividida, las consecuencias son graves, tabla física se generan grandes cantidades de fragmentación de datos, lo que resulta en un resultado directo de una fuerte caída en E / eficiencia O, y, finalmente, detener la carrera y reconstruir el índice SQL será nuestra única opción!

3 de factor de relleno

Un índice característico, una cantidad definida de espacio disponible en cada página del índice. El factor de relleno (factor de relleno) después de los datos de tabla de extensión adaptación y reduce la probabilidad de divisiones de página. El factor de relleno es un valor de porcentaje de 0 a 100, mientras que 100 muestra una página de datos para llenar. Sólo cuando no hay cambios en los datos (por ejemplo de sólo lectura tabla) fue utilizado para este ajuste. Cuanto menor sea el valor, mayor será el espacio libre en la página de datos, lo que reduce la necesidad de dividir la página en el proceso de crecimiento del índice, pero esto puede tomar hasta más espacio en disco duro. factor de relleno especificado incorrectamente, disminuirá el rendimiento de lectura de la base de datos, lo que reduce la cantidad de dicho valor es inversamente proporcional al factor de llenado.

9.1.2 montón (una tabla sin un índice agrupado)

El montón es una tabla sin un índice agrupado. Puede crear uno o varios índice no agrupado en la tabla almacenada como un montón. Los datos almacenados en la pila y sin un orden especificado. Típicamente, los datos se almacenan en el orden de la primera fila en la tabla, pero el motor de base de datos puede ser movido en el montón cuatro de datos, con el fin de manera eficiente fila tienda, por lo tanto, la secuencia de datos no se puede predecir. Para garantizar el orden de filas del montón devuelto, debe utilizar la cláusula ORDER BY. 

1 Cuando usar montón

Si una tabla es un montón y no tiene ningún índice no agrupado, debe comprobar toda la tabla (exploración de tabla) con el fin de encontrar ninguna fila. Esto es cuando la mesa es pequeña (por ejemplo, una lista de 12 oficinas regionales de la empresa) es aceptable.

2 Cuando no utilizar el montón

Cuando los datos se vuelven a menudo a la orden después de la clasificación, no utilice el montón. índice agrupado en la operación de ordenación columna de clasificación puede ser evitado.

Cuando los datos se agrupan a menudo juntos, no utilice el montón. Los datos deben ser ordenados antes de que pueda ser agrupados y agrupados índice en la columna de ordenación operación de clasificación se puede evitar.

Cuando el alcance de frecuencia de consulta de datos de una tabla, no utilice el montón. índice agrupado en el alcance de la columna para evitar toda la pila de clasificación.

Cuando el índice no agrupado no existe y la tabla es relativamente grande, no utilice el montón. En un montón, para encontrar cualquier línea, es necesario leer todas las líneas de la pila.

3 montón de Gestión

Para crear un montón, crear una tabla sin un índice agrupado. Si la tabla tiene un índice agrupado, el índice agrupado se elimina con el fin de volver a la mesa en una pila.

Para quitar la pila, por favor crea un índice agrupado en el montón.

Para regenerar las pilas con el fin de recuperar el espacio perdido, el montón se crea en un índice agrupado, y luego borrar el índice agrupado.

 

 

9.2 Índice de principio involucrados

La gran mayoría de la gente conoce los beneficios de la indexación, pero muy pocas personas se sienten profundamente sus desventajas. Siempre pienso así, para SQL Server en el índice (o incluso todos los sistemas de gestión de base de datos, e incluso entonces la mayoría de las cosas del mundo) de que se trate, y no hay buena o mala absoluta absoluta. Al igual que para darle un hacha y una pala, por lo que se corta un árbol y cortar un trozo de papel, usted tiene que cortar árboles provistos de una hoja de corte hacha, palas y hachas y dicho cosas malas son, obviamente, no razonable (esto no un pedazo no es el pensamiento rápido, no se enreden demasiado).

Para la base de datos OLTP, un único índice de la tabla no debe ser demasiado. De acuerdo con la experiencia práctica:

Para la tabla de núcleo (tabla comunes): no más de seis índices de todas.

Para mesa común: no todos los índices de más de cuatro.

Para las tablas pequeñas: todos los índices no más de dos.

 

Al diseñar el índice, debe considerar lo siguiente

9.2.1 directrices de bases de datos:

1 par de índice de la tabla masa preparada afecta INSERT, UPDATE, DELETE, y el rendimiento de la instrucción MERGE, porque cuando los cambios de datos a la tabla, todos los índices deben ser ajustados de forma apropiada. Por ejemplo, si una pluralidad de índices en una columna, y la instrucción UPDATE de modificación de datos en columna realizada deben actualizarse para incluir la columna y la base de cada tabla de base de índice (montón o índice agrupado) de la columna .

 

2 para evitar frecuentes actualizaciones de la tabla demasiados índices, y el índice se debe mantener estrecha , es decir, la columna que desea lo menos posible .

3 utilizando la actualización del índice múltiple puede mejorar pequeñas y grandes volúmenes de rendimiento de datos de consulta. Un gran número de índices no puede modificar la consulta de datos (como las instrucciones SELECT) el rendimiento porque el optimizador de consultas tiene más índices para elegir, que puede determinar el método de acceso más rápido.

Cuatro pares de índice de la tabla pequeña puede no producir resultados optimizados, debido a que el optimizador de consultas cuando se atraviesa un índice para la búsqueda de los datos, el tiempo que se tarda más tiempo que podría llevar a cabo un recorrido de tabla simple. Por lo tanto, el índice de tablas pequeñas no puede usar, pero aún debe ser mantenida cuando los datos cambian a la mesa.

9.2.2 Notas de consulta

Al diseñar el índice, tenga en cuenta las siguientes directrices de consulta:

1 Crear un índice no agrupado a una columna en una predicados de consulta y se unen a las condiciones se proporcionan a menudo. Estos son la columna SARGable1. Sin embargo, se debe evitar la adición de columnas innecesarias. Añadir demasiadas columnas de índice de espacio en disco y puede afectar negativamente al mantenimiento de índices de rendimiento.

2 que cubre índice de consulta puede mejorar el rendimiento porque todos los datos coinciden con la consulta están presentes en el propio índice. En otras palabras, sólo las páginas de índice, sin la necesidad de una mesa o páginas de datos de índice agrupado para recuperar los datos necesarios, reduciendo así el conjunto de disco I / O. Por ejemplo, en una tabla (columna en la que a, b y c para crear un índice compuesto) columnas A y B de la consulta, solamente los datos especificados se pueden recuperar desde el propio índice.

 importante

Un índice de recubrimiento está designada por índice no agrupado, que resuelve directamente uno o varios resultados similares, sin acceder a la tabla de base, y no dará lugar a las operaciones de búsqueda. Tales índices tienen todo lo necesario no sargable aparece en el nivel de hoja. Este medio, está cubierto por una cláusula SELECT y todos los parámetros se devuelven DONDE y unirse índice de la columna. Cuando la propia tabla en comparación con las filas y columnas, si el índice es lo suficientemente estrecha, entonces la ejecución de la consulta I / O puede ser mucho menor, lo que significa que es un verdadero subconjunto de la columna total. Si una fracción seleccionada de tablas de gran tamaño, considere cubrir índice, en el que una pequeña parte se define por un predicado fijo, tal como un columnas dispersas, por ejemplo, que contiene sólo un valor no nulo pocos.

 

3 consulta para insertar o modificar tantas filas dentro de una sola declaración por escrito en lugar de varias consultas para actualizar la misma fila. Utilice sólo una declaración, se puede usar un índice de mantenimiento optimizado.

4 Evaluar el tipo de consulta y como columnas en una consulta. Por ejemplo, utilizando la consulta correspondencia exacta en el tipo de columna adecuada para uso en un índice no agrupado o índice agregado.

 "Sargable" palabra en medio de una base de datos relacional es una demostrables predicados de búsqueda que pueden utilizar un índice para acelerar el proceso de ejecución de la consulta.

9.2.3 columna Notas

Al diseñar el índice, debe tener en cuenta las siguientes pautas:

Para un índice agregado, longitud de clave de índice se mantiene corto. Además, una única columna o columnas de aire pueden crear un índice agrupado beneficio índice agrupado.

2 no se puede especificar ntext, texto, imagen, varchar (max), nvarchar (max) y varbinary (max) tipo de datos como una columna de clave de índice. Sin embargo, varchar (max), nvarchar (max), varbinary (max) y el tipo de datos XML de la columna como la no implicación de índice de columna de índice no agregada clave. Para obtener más información, consulte el índice con columnas incluidas en esta guía.

columna de tipo de datos 3 xml se puede utilizar como la columna de la clave de índice en el XML. Para obtener más información, véase el índice XML (SQL Server). SQL Server 2012 SP1 introduce un nuevo índice XML llamado índice XML selectiva. Este nuevo índice puede mejorar el rendimiento de consultas en SQL Server para los datos almacenados como XML, por lo que para acelerar la indexación de grandes cargas de trabajo de datos XML y mejorar la escalabilidad mediante la reducción de índice de costos de almacenamiento en sí. Para obtener más información, véase el índice de selectividad XML (SXI).

4 Compruebe la singularidad de la columna. En un índice único en lugar de índice no único en la misma combinación de columnas proporciona información adicional sobre el índice optimizador de consultas más útil.

distribución de datos 5 verificación de la columna. Por lo general, la columna que contiene unos valores únicos para crear un índice o realizar una combinación en la columna como un resultaría en consultas de larga ejecución. Este es el problema básico de datos y consultas, por lo general no reconocen esta situación no puede resolver estos problemas. Por ejemplo, si la guía telefónica física ordenada alfabéticamente apellido, y todo el mundo en la ciudad se nombran Smith o Jones, no se puede encontrar rápidamente a alguien. Para obtener más información acerca de la distribución de datos, ver las estadísticas.

6 consideraciones (por ejemplo de fila, las columnas dispersas, el valor es NULL más columna, la columna que contiene el valor de varios tipos y con diferentes rangos de valores) de una columna que tiene un subconjunto bien definido usando un índice filtrado. Un índice filtrado bien diseñado puede mejorar la consulta de rendimiento, reducir los costes de mantenimiento de índices y los costes de almacenamiento.

7 si el índice incluye una pluralidad de columnas, orden de la columna debe ser considerado. Es igual a (=), mayor que (>), menor que (<), o entre condición de búsqueda en la cláusula WHERE unirse o participar en la columna se debe colocar en primer lugar. Otra columna debe ordenarse en función de sus niveles distintos, es decir, desde el más pequeño hasta la columna duplicado columna más duplicado.

Por ejemplo, si el índice se define como apellido, nombre, la búsqueda de artículos como DONDE LastName = 'Smith' o WHERE LastName = Smith y FirstName como cuando 'J%' sería útil. Sin embargo, el optimizador de consultas no consulta este índice se utiliza basa en FirstName (DONDE Nombre = 'Jane') y de búsqueda.

9.3 Índice de Clasificación

1 SQL SERVER Hay muchos tipos de índices.

Estructura de almacenamiento de acuerdo con distinguir: "índice agrupado (también llamada índice de agrupación, índice de agrupación)", "sub-índice agrupado (índice no agrupado, índice no agrupado)"

Datos distingue por la singularidad: "índice único", "índice no único."

tabla de índice no agrupado es completa o filtrada, utilizando, cuando filtrada índice.

índice no agrupado contiene columnas, INCLUYEN.

El número de columnas de clave distingue: "un índice separado", "índice de varias columnas."

Hay almacén de columnas, hachís, índice de optimización de memoria no agrupado.

Publicado 37 artículos originales · ganado elogios 0 · Vistas 2419

Supongo que te gusta

Origin blog.csdn.net/syjhct/article/details/86652666
Recomendado
Clasificación