Ajuste del rendimiento de SQL

Dec 19 2022
El ajuste del rendimiento de SQL es un proceso de optimización de consultas SQL para garantizar que se ejecuten lo más rápido posible. Hay muchos factores que afectan el rendimiento de las consultas SQL, como la cantidad de tablas consultadas, el tamaño y la cantidad de columnas en las tablas y los índices en las tablas.

El ajuste del rendimiento de SQL es un proceso de optimización de consultas SQL para garantizar que se ejecuten lo más rápido posible. Hay muchos factores que afectan el rendimiento de las consultas SQL, como la cantidad de tablas consultadas, el tamaño y la cantidad de columnas en las tablas y los índices en las tablas.

SQL es un componente crítico de muchos sistemas de bases de datos y es un lenguaje bien conocido para consultar, actualizar y administrar datos.
El ajuste del rendimiento de SQL es un tema importante para dominar, ya que puede ayudar con la escalabilidad y la velocidad de las consultas.
En esta sección, cubriremos diferentes formas de ajuste de SQL.

Todos nosotros siempre queremos una respuesta rápida en el proceso de recuperación de datos. Por lo tanto, debemos diseñar una buena base de datos que proporcione el mejor rendimiento durante la manipulación de datos, lo que da como resultado el mejor rendimiento de una aplicación.

Sin embargo, no existe una forma sencilla de definir el mejor rendimiento, pero podemos elegir varias formas de mejorar el rendimiento de las consultas SQL, que se incluyen en varias categorías, como la creación de índices, el uso de uniones y la reescritura de una subconsulta para usar JOIN, etc.

Como desarrollador, sabemos que cualquier consulta SQL se puede escribir de varias maneras, pero debemos seguir las mejores prácticas/técnicas para lograr un mejor rendimiento de la consulta. Algunos de ellos se destacan a continuación:

  1. Use EXISTS en lugar de IN para verificar la existencia de datos.
    2. Evite * en la instrucción SELECT. Proporcione el nombre de las columnas que necesita.
    3. Elija el tipo de datos adecuado. Por ejemplo, para almacenar cadenas, use varchar en lugar del tipo de datos de texto. Utilice el tipo de datos de texto siempre que necesite almacenar datos de gran tamaño (más de 8000 caracteres).
    4. Evite nchar y nvarchar si es posible, ya que ambos tipos de datos ocupan solo el doble de memoria que char y varchar.
    5. Evite NULL en campos de longitud fija. En caso de que se requiera NULL, use un campo de longitud variable (varchar) que ocupe menos espacio para NULL.
    6. Evite tener una cláusula. Se requiere tener una cláusula si además desea filtrar el resultado de una agregación.
    7. Cree índices agrupados y no agrupados.
    8. Mantenga el índice agrupado pequeño ya que los campos usados ​​en el índice agrupado también pueden usarse en el índice no agrupado.
    9. La mayoría de las columnas selectivas deben colocarse más a la izquierda en la clave de un índice no agrupado.
    10. Elimina los índices no utilizados.
    11. Es mejor crear índices en columnas que tengan valores enteros en lugar de caracteres. Los valores enteros utilizan menos sobrecarga que los valores de carácter.
    12. Utilice uniones en lugar de subconsultas.
    13. Use expresiones WHERE para limitar el tamaño de las tablas de resultados que se crean con uniones.
    14. Use TABLOCKX mientras inserta en una tabla y TABLOCK mientras fusiona.
    15. Use CON (NOLOCK) mientras consulta los datos de cualquier tabla.
    16. Use SET NOCOUNT ON y use TRY-CATCH para evitar la condición de interbloqueo.
    17. Evite los cursores ya que el rendimiento del cursor es muy lento.
    18. Use la variable Tabla en lugar de la tabla Temp. El uso de tablas temporales requería interacción con la base de datos TempDb, que es una tarea que lleva tiempo.
    19. Use UNION ALL en lugar de UNION si es posible.
    20. Utilice el nombre del esquema antes del nombre de los objetos SQL.
    21. Use Procedimiento almacenado para datos de uso frecuente y consultas más complejas.
    22. Mantenga la transacción lo más pequeña posible, ya que la transacción bloquea los datos de las tablas de procesamiento y puede provocar interbloqueos.
    23. Evite el prefijo "sp_" con el nombre del procedimiento almacenado definido por el usuario porque el servidor SQL primero busca el procedimiento definido por el usuario en la base de datos maestra y luego en la base de datos de la sesión actual.
    24. Evite el uso de subconsultas escalares no correlacionadas. Utilice esta consulta como una consulta independiente en lugar de como parte de la consulta principal y almacene el resultado en una variable, a la que se puede hacer referencia en la consulta principal o en una parte posterior del lote.
    25. Evite las funciones con valores de tabla (TVF, por sus siglas en inglés) de declaraciones múltiples. Los TVF de estados múltiples son más costosos que los TVF en línea.

    Como hemos visto anteriormente, en SQL Server, hay varios pasos que puede seguir para mejorar el rendimiento de sus consultas y la base de datos en su conjunto. Hay muchos pasos que se aplicarán a otros RDBMS, así como a ORACLE.
  1. Utilice EXPLAIN PLAN o AUTOTRACE para analizar el plan de ejecución de sus consultas e identificar cualquier problema con la forma en que se ejecutan.
  2. Use la sugerencia INDEX para especificar qué índice debe usar el optimizador para una consulta en particular.
  3. Considere el uso de sugerencias como FULL o INDEX_FFS para obligar al optimizador a usar una exploración completa de la tabla o una exploración completa rápida del índice, respectivamente.
  4. Use la sugerencia OPTIMIZER_MODE para especificar un modo de optimización particular para una consulta.
  5. Considere el uso de vistas materializadas para precalcular y almacenar datos a los que se accede con frecuencia, lo que puede mejorar el rendimiento de las consultas que acceden a esos datos.
  6. Utilice el paquete DBMS_STATS para analizar y recopilar estadísticas sobre su base de datos y sus objetos, lo que puede ayudar al optimizador a tomar decisiones más informadas al crear planes de ejecución.
  7. Considere el uso de particiones para dividir tablas grandes en partes más pequeñas y manejables, lo que puede mejorar el rendimiento de las consultas que acceden a esas tablas.
  8. Utilice SQL Tuning Advisor para identificar y corregir cualquier posible problema de rendimiento con sus instrucciones SQL.
  9. Estas son solo algunas de las muchas técnicas que puede utilizar para mejorar el rendimiento de sus consultas y base de datos Oracle SQL. Es importante tener en cuenta que los pasos específicos que deberá seguir dependerán de su base de datos y carga de trabajo específicas.
  10. Siempre es una buena idea consultar con un administrador de base de datos u otros expertos si tiene problemas de rendimiento.

Muchas formas de aprender GCP gratis con Google Cloud durante las vacaciones

Comprensión _

Comandos de Linux para el aprendizaje en la nube

¡Feliz lectura…..Feliz aprendizaje!