Primero, el diseño de bases de datos lógicas y tablas
El diseño lógico de la base de datos, incluida la relación entre tablas y tablas, es el núcleo de la optimización del rendimiento de las bases de datos relacionales. Un buen diseño lógico de base de datos puede sentar una buena base para optimizar bases de datos y aplicaciones.
El diseño lógico de la base de datos estandarizada implica reemplazar columnas largas de muchas columnas con una tabla grande, interrelacionada y estrecha. Estos son algunos de los beneficios de usar una tabla estandarizada.
A: Debido a la tabla estrecha, puede hacer que la clasificación y la indexación sean más rápidas.
B: Debido a la tabla múltiple, son posibles tantos índices.
C: Un índice más estrecho y más compacto.
D: Puede haber menos índices en cada tabla, por lo que puede mejorar la velocidad de inserción eliminar eliminar, etc., porque estas operaciones tendrán un gran impacto en el rendimiento del sistema en el caso de muchos índices.
E: Menos valores nulos y menos valores adicionales, lo que aumenta la compacidad de la base de datos. Debido a la estandarización, aumenta la complejidad del número de tablas de referencia y la relación de conexión entre ellas al adquirir datos. Demasiadas tablas y conexiones complejas pueden degradar el rendimiento del servidor, por lo que se debe hacer una consideración integral entre los dos.
Las principales cosas a tener en cuenta al definir claves primarias y externas con correlaciones son: la clave primaria utilizada para unir varias tablas y la clave a la que se hace referencia deben tener el mismo tipo de datos.
En segundo lugar, el diseño del índice
A: Intente evitar el escaneo de la tabla
Verifique la cláusula where de su consulta, porque este es el foco importante del optimizador. Cada columna contenida en donde es un posible índice candidato. Para lograr un rendimiento óptimo, considere el siguiente ejemplo: para la columna columna1 que figura en la cláusula where.
¡Las siguientes dos condiciones pueden mejorar el rendimiento de la consulta optimizada del índice!
Primero: hay un solo índice en la columna column1 de la tabla;
Segundo: hay múltiples índices en la tabla, pero column1 es la columna del primer índice.
Evite definir índices múltiples y column1 es el segundo índice o posterior. Dicho índice no puede optimizar el rendimiento del servidor.
Por ejemplo: el siguiente ejemplo utiliza la base de datos pubs.
SELECCIONE au_id, au_lname, au_fname DE los autores
WHERE au_lname = 'White'
Los índices creados en las siguientes columnas serán índices útiles para el optimizador
au_lname
au_lname, au_fname
Los índices creados en las siguientes columnas no funcionarán bien para el optimizador
au_address
au_fname, au_lname
Considere usar un índice estrecho en una o dos columnas. Un índice estrecho es más eficiente que un índice compuesto y de múltiples índices. Con un índice estrecho, habrá más filas y menos niveles de índice en cada página (a diferencia de múltiples índices e índices compuestos), lo que impulsará el rendimiento del sistema. Para los índices de varias columnas, SQL Server mantiene una estadística de densidad (para uniones) en todos los índices de columna y una estadística de histograma (histograma) en el primer índice. Según las estadísticas, si el primer índice en el índice compuesto rara vez se utiliza, el optimizador no utilizará el índice para muchas solicitudes de consulta.
Los índices útiles mejorarán el rendimiento de las declaraciones seleccionadas, incluyendo insertar, actualizar, eliminar. Sin embargo, el cambio del contenido de una tabla afectará al índice. Cada declaración de inserción, actualización y eliminación degradará el rendimiento. Los experimentos han demostrado que no debe usar una gran cantidad de índices en una sola tabla y no debe usar índices superpuestos en columnas compartidas (lo que significa que las restricciones de referencia se usan en varias tablas).
Verifique el número de datos únicos en una columna y compárelos con el número de filas en la tabla. Esta es la selectividad de los datos, y el resultado de esta comparación lo ayudará a decidir si va a utilizar una columna como un índice candidato y, de ser así, qué índice construir. Puede usar la siguiente consulta para devolver el número de valores diferentes en una columna.
seleccione el recuento (distinto nombre de columna) de table_name
Suponiendo que column_name es una tabla de 10000 filas, mire el valor de retorno de column_name para determinar si se debe usar y qué índice se debe usar.
Índice de valores únicos
5000 Índice no agrupado
20 Índice agrupado
3 Sin índice
镞 Selección de índice y no 镞
< 1 > El índice es el orden físico de las filas y el orden de los índices es el mismo. Las páginas de datos reales se incluyen en cada nivel del índice de nivel de página, nivel inferior, etc. Una tabla solo puede tener un índice. Debido a la actualización, la instrucción de eliminación requiere un número relativamente grande de operaciones de lectura, por lo que el índice a menudo puede acelerar tales operaciones. En una tabla con al menos un índice, debe tener un índice.
En los siguientes casos, puede considerar el uso del índice:
Por ejemplo: el número de valores diferentes incluidos en una columna es limitado (pero no muy raro)
La lista de estados de la tabla de clientes enumera los valores abreviados de aproximadamente 50 nombres de estados diferentes. Puede usar el índice 镞.
Por ejemplo: puede usar un 镞 índice para las columnas que devuelven un rango de valores, como las columnas que operan en columnas entre, >, > =, <, < = y así sucesivamente.
seleccione * de ventas donde ord_date entre '5/1/93' y '6/1/93'
Por ejemplo: puede usar un índice for para columnas que devuelven una gran cantidad de resultados al realizar consultas.
SELECCIONAR * DE LA libreta de teléfonos WHERE last_name = 'Smith'
Cuando se inserta una gran cantidad de filas en la tabla, evite una columna que crezca naturalmente en esta tabla (por ejemplo, la columna de identidad) Crear un índice en él. Si crea un índice defectuoso, el rendimiento de la inserción se reducirá en gran medida. Debido a que cada fila insertada debe ir a la última página de la tabla, la última página de datos de la tabla.
Cuando se está insertando un dato (cuando esta página está bloqueada), todas las demás líneas insertadas deben esperar hasta que la inserción actual haya finalizado.
La página de la hoja de un índice incluye las páginas de datos reales, y el orden de las páginas de datos en el disco duro es el mismo que el orden lógico del índice.
< 2 > Un índice no es que el orden físico de las filas es diferente del orden de los índices. Un nivel de hoja no indexado 镞 contiene punteros a páginas de datos de fila.
Puede haber múltiples índices no en una tabla, y puede considerar el uso de índices no en los siguientes casos.
en muchos valores diferentes en un índice de la columna puede ser considerado como un no-punta de flecha
Por ejemplo: un part_id que aparece en una parte de la mesa
select * Desde el empleado donde emp_id = 'pcm9809f'
puede considerar el uso de un índice on en una columna con una cláusula orden por en una declaración de consulta.
Tercero, el diseño de la declaración de consulta
El optimizador de SQL Server a través del análisis de las declaraciones de consulta, optimiza automáticamente la consulta y determina la implementación más efectiva. El optimizador analiza la consulta para determinar qué cláusula se puede optimizar y selecciona un índice útil para las cláusulas que se pueden optimizar para la consulta. Finalmente, el optimizador compara todos los escenarios posibles de ejecución y elige el más eficiente.
Al ejecutar una consulta, use una cláusula where para limitar el número de filas que se deben procesar. A menos que lo necesite, debe evitar leer y procesar todas las filas de forma indefinida en una sola tabla.
Por ejemplo, el siguiente ejemplo,
seleccionar cantidad de ventas donde stor_id = 7131
es muy eficiente que la siguiente consulta ilimitada
seleccionar cantidad Desde ventas
Evite devolver una gran cantidad de conjuntos de resultados a la selección final de datos del cliente. Es más eficiente permitir que SQL Server ejecute una función que cumpla su propósito de limitar el tamaño del conjunto de resultados.
Esto reduce la E /S de la red y mejora el rendimiento de la aplicación para la concurrencia relacionada con múltiples usuarios. Debido a que el foco del optimizador es la consulta de la cláusula where para aprovechar el índice útil. Cada índice en la tabla puede convertirse en un índice candidato incluido en la cláusula where. Para obtener el mejor rendimiento, siga el índice a continuación para una columna dada, columna1.
Primero: hay un solo índice en la columna column1 en la tabla;
Segundo: hay múltiples índices en la tabla, pero column1 es el primer índice de la columna, no en el sub donde Utilice una consulta sin el índice de columna column1 en la oración y evite indexar el índice no primero con un índice múltiple en la cláusula where.
En este punto, los índices múltiples son inútiles.
Por ejemplo, dado un índice de varias columnas en el au_lname,
au_fname columnas de la tabla de autores en
la base de datos de pubs,
La siguiente declaración de consulta Aproveche el índice en au_lname
SELECCIONE au_id, au_lname, au_fname DE los autores
DONDE au_lname = 'Blanco'
Y au_fname = 'Johnson'
SELECCIONE au_id, au_lname, au_fname DE los autores
WHERE au_lname = 'White'
La siguiente consulta no utiliza un índice porque usa un índice de múltiples índices de un índice no primero
SELECCIONA au_id, au_lname, au_fname DE los autores
DONDE au_fname = 'Johnson'
¿Alguna vez se ha encontrado con esta situación? En general, no habrá enrutadores en las
I. Introducción a DHCP: El nombre completo de DHCP es el Protocolo de configuración de host dinámico
Resincronización de la réplica de Hyper-V Este tema llama la atención de la gente, la primera pregun
Linux es compatible con chino, modifica /etc /sysconfig /i18n LANG = zh_CN.GB18030 SUPPORTED =
Al evitar el verdadero "virtual" VMware súper práctico
¿Qué debo hacer si el servidor está inactivo? Plan de emergencia por falla del servidor
Cómo elegir el servidor del sistema operativo del servidor
Configuración del servidor DHCP
Solución de problemas del tiempo de inactividad del servidor blade de IBM
de seguridad del servidor FTP de Linux Raiders por completo
Estrategia de infraestructura WLAN 802.11n: ancho de banda de 2.4 vs. 5 GHz
Método de configuración de optimización de Server 2003
Tres métodos para configurar la dirección IP de CentOS 6.5 en la máquina virtual
Le enseñará a ensamblar 8 discos duros 1U servidor de almacenamiento de películas
Proceso de resincronización de la réplica de Hyper-V detallado
El sistema Win8.1 siempre pregunta "Conectar tarjeta inteligente" ¿Qué debo hacer?
¿Cómo eliminar win7 virtual drive?
Tutorial detallado para la instalación de win7
¿Dónde está la cámara del sistema win7? ¿Cómo abrir la cámara win7?
Cómo abrir la carpeta de inicio en el sistema Win10 no se puede encontrar
Cómo guardar una página web en el sistema Win7 de 64 bits con una nota en la nube
La razón por la cual el escudo de plata en línea CCB no se puede usar en win8
Visualización limitada después de conectarse a VPN bajo Windows 8