VENTAS: 1-800-867-1389

Administración de recursos de Base de datos SQL de Azure

Actualizado: septiembre de 2014

En este tema se describe cómo Base de datos SQL de Azure controla los recursos dedicados a las bases de datos para conseguir el máximo rendimiento previsible. La cantidad de recursos disponibles para cada base de datos depende del nivel de rendimiento asignado a la base de datos. Use la información de este tema para comprender los mecanismos usados para controlar los recursos. Esta información es útil al desarrollar la aplicación para el rendimiento óptimo. El tema incluye algunas prácticas recomendadas para problemas encontrados en cada categoría. 

La Base de datos SQL de Azure usa tres mecanismos distintos para controlar los recursos:

  • Regulador de recursos

    La CPU, la memoria, las escrituras en registro y las IOPS de consulta están sujetos al gobierno de recursos. Este mecanismo recién introducido, a diferencia del cumplimiento de límites máximos y limitaciones, no impide ni termina la ejecución de consultas, sino que pone en cola las consultas y concede recursos a las consultas en cola a medida que están disponibles. 

  • Cumplimiento de límites

    Los límites máximos se aplican para la cantidad de conexiones que se pueden abrir para una base de datos así como en la ejecución paralela de consultas (subproceso de trabajo). 

  • Limitación

    La limitación se produce cuando una máquina que hospeda bases de datos alcanza una cantidad crítica de carga, que conduce a una posible interrupción del sistema. La limitación es el mecanismo de último recurso del sistema para protegerse frente a la sobrecarga y se produce en raras ocasiones.

Uno de los objetivos de diseño de los niveles de servicio Basic, Standard y Premium es que la Base de datos SQL de Azure se comporte como si se ejecutara en su propia máquina, completamente aislada de las demás bases de datos. El gobierno de recursos emula este comportamiento durante la ejecución de consultas. Si la utilización del recurso agregado alcanza los recursos máximos disponibles de CPU, memoria, escrituras de registro e IOPS de consulta asignados a la base de datos, el gobierno de recursos pondrá en cola las consultas en ejecución y asignará recursos a las consultas en cola a medida que se vayan liberando.

Igual que en una máquina dedicada, la utilización de todos los recursos disponibles provocará una ejecución más larga de las consultas que se ejecutan actualmente, lo que puede dar lugar a tiempos de expiración de clientes. Las aplicaciones con lógica de reintento agresiva y las aplicaciones que ejecutan consultas en la base de datos con gran frecuencia pueden encontrar errores al intentar ejecutar nuevas consultas debido a la no disponibilidad de subprocesos de trabajo.

Recomendaciones: Supervise la utilización de recursos así como los tiempos de respuesta promedio de las consultas cuando se acerque a la utilización máxima de una base de datos. Cuando se encuentran consultas de larga ejecución, generalmente se tienen tres opciones: 

  1. Reducir la cantidad de solicitudes entrantes para la base de datos a fin de evitar tiempos de espera y que se apilen subprocesos de trabajo.

  2. Asignar un nivel de rendimiento superior a la base de datos.

  3. Optimizar las consultas para reducir la utilización de recursos de cada consulta. Para obtener más información, vea la sección sobre el ajuste de consultas y sugerencias en el artículo Versión preliminar Basic, Standard y Premium para Base de datos SQL de Azure.

Base de datos SQL de Azure emplea el regulador de recursos estableciendo un límite máximo en los subprocesos de trabajo simultáneos (solicitudes) y las sesiones simultáneas para cada base de datos. El mecanismo del regulador de recursos varía en función de si la base de datos de destino es una base de datos de la edición Web o Business o una base de datos Premium. Para obtener más información, vea Gobernanza de recursos de Base de datos SQL de Azure.

El número de conexiones con una base de datos SQL así como el número de solicitudes que se pueden procesar en paralelo están restringidas. La base de datos SQL permite que el número de conexiones con la base de datos sea mayor que el número de solicitudes simultáneas para admitir la agrupación de conexiones. 

Mientras que la cantidad de conexiones que están disponibles se puede controlar fácilmente por la aplicación, la cantidad de solicitudes paralelas es con frecuencia más difícil de estimar y controlar. Especialmente durante las cargas punta, cuando la aplicación envía muchas solicitudes o la base de datos no puede alcanzar sus límites de recursos y empieza a apilar subprocesos de trabajo debido a consultas de ejecución más larga, se puede encontrar el error <NUMBER>.

Recomendaciones:  cuando se queda sin subprocesos de trabajo generalmente se tienen tres opciones:

  1. Reducir la cantidad de solicitudes entrantes para la base de datos a fin de evitar que se apilen subprocesos de trabajo.

  2. Asignar un nivel de rendimiento superior a la base de datos que permitirá un número mayor de solicitudes simultáneas. Para obtener más información, vea Niveles de servicio y niveles de rendimiento de la Base de datos SQL de Azure.

  3. Optimizar las consultas para reducir la utilización de recursos de cada consulta. Para obtener más información, vea la sección sobre el ajuste de consultas y sugerencias en el artículo Versión preliminar Basic, Standard y Premium para Base de datos SQL de Azure.

La tabla siguiente lista los límites de recursos más allá de los que la Base de datos SQL de Azure deniega la solicitud o termina las conexiones con el recurso afectado y se devuelve un código de error.

 

Recurso Límite Código de error devuelto

Database Size

150 GB o menos según la cuota de base de datos (MAXSIZE)

40544

Transaction Duration

Estado 1: 24 horas

Estado 2: 20 segundos si una transacción bloquea un recurso requerido por una tarea del sistema subyacente

40549

Transaction Lock Count

1 millón de bloqueos por transacción

40550

Tempdb

Estado 1: 5 GB de espacio de tempdb

Estado 2: 2 GB por transacción en tempdb

Estado 3: 20 % de espacio total de registro en tempdb

40551

Transaction Log Length

Estado 1: 2 GB por transacción

Estado 2: 20 % de espacio total de registro

40552

Memory Usage

16 MB de memoria concedida durante más de 20 segundos

40553

Para obtener más información sobre cada uno de los códigos de error, vea Límites de recursos de Base de datos SQL de Azure.

La gravedad de la limitación se incluye en una de las dos etapas siguientes:

  • Limitación parcial: Es la primera etapa cuando los recursos de la máquina como el registro de transacciones, la E/S y el almacenamiento superan los umbrales de seguridad predefinidos. Base de datos SQL selecciona un subconjunto de las bases de datos que usan la mayor parte de los recursos y luego limita sus actividades. No todas las bases de datos del equipo experimentan la limitación, solo las que usan la mayor parte de los recursos. El uso por debajo del umbral predefinido indica que hay suficientes recursos para todas las bases de datos del servidor.

  • Limitación estricta: Es la segunda etapa y final cuando un equipo se ve afectado de forma grave debido a la sobrecarga. Con la limitación estricta, no se permiten más conexiones nuevas a las bases de datos hospedados en el equipo hasta que los recursos se liberan. Base de datos SQL devuelve mensajes de error cuando se intenta establecer nuevas conexiones que indican que el recurso se ha excedido.

Para obtener más información sobre el mecanismo de limitación del motor, el código de error correspondiente que se devuelve y las recomendaciones de cómo solucionarlo, vea. Limitación de la Base de datos SQL de Azure

Vea también

¿Te ha resultado útil?
(Caracteres restantes: 1500)
Gracias por sus comentarios
Mostrar:
© 2014 Microsoft