sql >> Base de Datos >  >> RDS >> Oracle

Ajuste de SQL

No hace mucho, di un tutorial sobre el plan de explicación a nuestro personal de desarrollo de aplicaciones. Una pregunta que surgió fue ¿cómo hago para decidir qué declaraciones SQL necesitan ajuste? Utilizo algunos enfoques diferentes y encuentro candidatos para la optimización de SQL desde diferentes ángulos.

  1. Rutinariamente realizo revisiones de código en sentencias SQL que llegan a nuestra base de datos. Aprovecho mi experiencia para mirar rápidamente una declaración SQL que es nueva o ha sido modificada significativamente para decidir si necesito investigar más el SQL. Por ejemplo, si una consulta en una tabla está buscando en una columna PK o Unique, entonces puedo estar bastante seguro de que se ejecutará rápidamente. Si la declaración SQL me parece sospechosa, la ejecutaré a través del plan de explicación y/o cronometraré la declaración para asegurarme de que se ejecute lo suficiente.
  2. Hago que Enterprise Manager de Oracle me avise sobre la contención de recursos en nuestro sistema de base de datos de prueba. Cualquier instrucción SQL que me perdí durante la revisión del código a veces se puede encontrar aquí. Si recibo una alerta de contención de recursos, saltaré y veré si una declaración SQL o dos están causando un problema. Esta es mi última oportunidad de capturar sentencias SQL antes de que lleguen a producción.
  3. Aprovecho Ignite para Oracle. Este producto es de Confio, pero Confio ahora es parte de Solarwinds. Normalmente, no conecto los productos del proveedor, pero haré una excepción en este caso. Lo que me gusta de Ignite es que me envía un informe por correo electrónico todos los lunes. El informe contiene los N infractores principales según el tiempo de espera. Me toma segundos mirar este informe. Busco las barras grandes en el informe. En la siguiente captura de pantalla de ejemplo, puede ver una barra azul que inmediatamente llama su atención. El número a la derecha es un valor de identificación y si hace clic en él, puede obtener el texto SQL. Esta es una excelente manera de identificar las declaraciones SQL que necesitan ajuste. Es súper rápido y súper fácil.

Como puede ver, trato de encontrar SQL problemáticos a medida que se desarrollan, cuando están en nuestro sistema de prueba e incluso después de que llegan a la producción.