Compartir a través de


Evaluación de procedimientos recomendados de SQL para SQL Server en VM de Azure

Se aplica a:SQL Server en máquina virtual de Azure

La característica de evaluación de procedimientos recomendados de SQL de Azure Portal identifica posibles problemas de rendimiento y evalúa si SQL Server en máquinas virtuales (VM) de Azure está configurado para seguir los procedimientos recomendados mediante el conjunto de reglas enriquecido proporcionado por la API SQL Assessment.

Para más información, vea este vídeo sobre la evaluación de procedimientos recomendados de SQL:

Información general

Una vez habilitada la característica de evaluación de procedimientos recomendados de SQL, se examina la instancia de SQL Server y las bases de datos para proporcionar recomendaciones para aspectos como índices, características en desuso, marcas de seguimiento habilitadas o que faltan, estadísticas, etc. Las recomendaciones se muestran en la página de administración de máquinas virtuales con SQL de Azure Portal.

Los resultados de la evaluación se cargan en el área de trabajo de Log Analytics mediante Azure Monitor Agent (AMA). La extensión AMA se instala en la máquina virtual con SQL Server, si aún no está instalada. Los recursos AMA, como los puntos de conexión de recopilación de datos (DCE) y las reglas de recopilación de datos (DCR) se crean y se conectan al área de trabajo de Log Analytics especificada.

El tiempo de ejecución de la evaluación depende del entorno (número de bases de datos, objetos, entre otros), con una duración de unos minutos, hasta una hora. Del mismo modo, el tamaño del resultado de la evaluación también depende de su entorno. La evaluación se ejecuta en la instancia y en todas las bases de datos de esa instancia. En nuestras pruebas, observamos que una ejecución de evaluación puede tener un impacto de hasta un 5-10 % de CPU en la máquina. En estas pruebas, la evaluación se hizo mientras una aplicación de tipo TPC-C se ejecutaba en SQL Server.

Prerrequisitos

Para usar la característica de evaluación de procedimientos recomendados de SQL, debe cumplir con estos requisitos previos:

Permisos

Para habilitar las valoraciones de procedimientos recomendados de SQL, necesita los siguientes permisos:

Habilitar

Puede habilitar las valoraciones de procedimientos recomendados de SQL mediante el portal de Azure o la CLI de Azure.

Para habilitar las valoraciones de procedimientos recomendados de SQL mediante el portal de Azure, siga estos pasos:

  1. Inicie sesión en Azure Portal y vaya al recurso de máquinas virtuales de SQL.
  2. Seleccione SQL best practices assessments (Evaluaciones de procedimientos recomendados de SQL) en Configuración.
  3. Seleccione Enable SQL best practices assessments (Habilitar evaluaciones de procedimientos recomendados de SQL) o Configuración para ir a la página Configuración.
  4. Active la casilla Habilitar evaluaciones de procedimientos recomendados de SQL y proporcione la siguiente información:
    1. El área de trabajo de Log Analytics en la que se cargarán las evaluaciones. Elija un área de trabajo existente en la suscripción desde el menú desplegable.
    2. Elija un grupo de recursos donde se crearán los recursos del agente de Azure Monitor DCE y DCR. Si especifica el mismo grupo de recursos en varias máquinas virtuales de SQL Server, estos recursos se reutilizan.
    3. Run schedule (Ejecutar programación). Puede optar por ejecutar evaluaciones a petición o automáticamente según una programación. Si elige una programación, proporcione la frecuencia (semanal o mensual), el día de la semana, la periodicidad (cada 1-6 semanas) y la hora del día en que se deben iniciar las evaluaciones (hora local de la máquina virtual).
  5. Seleccione Aplicar para guardar los cambios e implementar el Agente de Azure Monitor en la máquina virtual con SQL Server si aún no está implementado. Una notificación de Azure Portal le indica que la característica de valoración de procedimientos recomendados de SQL está lista para la VM con SQL Server.

Evaluación de VM con SQL Server

Ejecución de evaluaciones:

  • Según una programación
  • A petición

Ejecución de la evaluación programada

Puede configurar la evaluación según una programación mediante el portal de Azure y la CLI de Azure.

Si establece una programación en el panel de configuración, se ejecuta automáticamente una evaluación en la fecha y hora especificadas. Elija Configuración para modificar la programación de evaluación. Una vez que proporcione una nueva programación, se sobrescribe la programación anterior.

Ejecución de la evaluación a petición

Una vez habilitada la característica de evaluación de procedimientos recomendados de SQL para la máquina virtual con SQL Server, es posible ejecutar una evaluación a petición mediante Azure Portal o la CLI de Azure.

Para ejecutar una evaluación a petición mediante el portal de Azure, seleccione Ejecutar evaluación en el panel de valoración de procedimientos recomendados de SQL de la página de recursos Máquina virtual con SQL en Azure Portal.

Vista de resultados

En la sección Assessments results (Resultados de las evaluaciones) de la página SQL best practices assessments (Evaluaciones de procedimientos recomendados de SQL), se muestra una lista de las ejecuciones de evaluación más recientes. En cada fila se muestra la hora de inicio de una ejecución y el estado: programada, en ejecución, cargando resultados, completada o con errores. Cada ejecución de evaluación tiene dos partes: evalúa la instancia y carga los resultados en el área de trabajo de Log Analytics. El campo de estado abarca ambas partes. Los resultados de la evaluación se muestran en los libros de Azure.

Puede acceder al libro de Azure de resultados de la evaluación de tres maneras:

  • Seleccione el botón View latest successful assessment (Ver la evaluación correcta más reciente) en la página SQL best practices assessments (Evaluaciones de procedimientos recomendados de SQL).
  • Elija una ejecución completada en la sección Assessments results (Resultados de las evaluaciones) de la página SQL best practices assessments (Evaluaciones de procedimientos recomendados de SQL).
  • Seleccione View assessment results (Ver los resultados de la evaluación) en Top 10 recommendations (10 recomendaciones principales) que se muestran en la página Información general de la página de recursos de VM con SQL.

Una vez que haya abierto el archivo, puede usar la lista desplegable para seleccionar ejecuciones previas. Puede ver los resultados de una sola ejecución mediante la página Resultados o revisar las tendencias históricas mediante la página Tendencias.

Página Resultados

En la página Resultados se organizan las recomendaciones con pestañas para lo siguiente:

  • Todas: todas las recomendaciones de la ejecución actual.
  • Nuevas: nuevas recomendaciones (la delta de las ejecuciones anteriores).
  • Resueltas: recomendaciones resueltas de ejecuciones anteriores.
  • Información: identifica los problemas más recurrentes y las bases de datos con más problemas.

El gráfico agrupa los resultados de la evaluación en diferentes categorías de gravedad: alta, media, baja e información. Seleccione cada categoría para ver la lista de recomendaciones o busque frases clave en el cuadro de búsqueda. Es mejor empezar con las recomendaciones más graves e ir bajando en la lista.

En la primera cuadrícula, se muestra cada recomendación y la cantidad de veces en que el entorno encontró ese problema. Al seleccionar una fila de la primera cuadrícula, en la segunda cuadrícula se muestran todas las instancias de esa recomendación concreta. Si no hay ninguna selección en la primera cuadrícula, en la segunda cuadrícula se muestran todas las recomendaciones, que posiblemente sea una lista larga. Puede usar los menús desplegables sobre la cuadrícula (Nombre, Gravedad, Etiquetas, Id. de comprobación) para filtrar los resultados. También puede usar las opciones Exportar a Excel y Abrir la última consulta ejecutada en la vista Registros. Para ello, seleccione los iconos pequeños e la esquina superior derecha de cada cuadrícula.

La sección correcto del gráfico identifica las recomendaciones que el sistema ya sigue.

Para ver información detallada de cada recomendación, seleccione el campo Mensaje, como una descripción larga y los recursos en línea pertinentes.

Hay tres gráficos en la página Tendencias para mostrar los cambios a lo largo del tiempo: todos los problemas, los nuevos y los resueltos. Los gráficos le ayudan a ver el progreso. Idealmente, el número de recomendaciones debería bajar mientras el número de problemas resueltos sube. La leyenda muestra el número medio de problemas para cada nivel de gravedad. Mantenga el puntero sobre las barras para ver los vales individuales de cada ejecución.

Si hay varias ejecuciones en un solo día, solo se incluye la ejecución más reciente en los gráficos de la página Tendencias.

Habilitación de todas las máquinas virtuales de una suscripción

Puede usar la CLI de Azure para habilitar la característica de valoración de procedimientos recomendados de SQL en todas las máquinas virtuales con SQL Server dentro de una suscripción. Para ello, utilice el siguiente script de ejemplo:

# This script is formatted for use with Az CLI on Windows PowerShell. You may need to update the script for use with Az CLI on other shells.
# This script enables SQL best practices assessment feature for all SQL Servers on Azure VMs in a given subscription. It configures the VMs to use a Log Analytics workspace to upload assessment results. It sets a schedule to start an assessment run every Sunday at 11pm (local VM time).
# Please note that if a VM is already associated with another Log Analytics workspace, it will give an error.

$subscriptionId = 'XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX'
# Resource Group where the Log Analytics workspace belongs
$myWsRg = 'myWsRg'
# Log Analytics workspace where assessment results will be stored
$myWsName = 'myWsName'
# Resource Group where the Azure Monitor Agent resources will be created
$myAgentRg = 'myAgentRg'

# Ensure in correct subscription
az account set --subscription $subscriptionId

$sqlvms = az sql vm list | ConvertFrom-Json

foreach ($sqlvm in $sqlvms)
{
  echo "Configuring feature on $($sqlvm.id)"
  az sql vm update --assessment-weekly-interval 1 --assessment-day-of-week Sunday --assessment-start-time-local "23:00" --workspace-name $myWsName --workspace-rg $myWsRg -g $sqlvm.resourceGroup --agent-rg $myAgentRg -n $sqlvm.name

  # Alternatively you can use this command to only enable the feature without setting a schedule
  # az sql vm update --enable-assessment true --workspace-name $myWsName --workspace-rg $myWsRg -g $sqlvm.resourceGroup --agent-rg $myAgentRg -n $sqlvm.name

  # You can use this command to start an on-demand assessment on each VM
  # az sql vm start-assessment -g $sqlvm.resourceGroup -n $sqlvm.name
}

Problemas conocidos

Es posible que encuentre algunos de los siguientes problemas conocidos al usar evaluaciones de procedimientos recomendados de SQL.

Migración al agente de Azure Monitor (AMA)

Anteriormente, la característica de valoración de procedimientos recomendados de SQL usaba Microsoft Monitoring Agent (MMA) para cargar valoraciones en el área de trabajo de Log Analytics. Microsoft Monitoring Agent se ha reemplazado por el Agente de Azure Monitor (AMA). Para migrar las valoraciones de procedimientos recomendados de SQL existentes de MMA a AMA, debe eliminar y, después, volver a registrar la VM con SQL Server con la extensión. Los resultados existentes seguirán estando disponibles una vez habilitadas las valoraciones. Si no hay otros servicios que usen MMA, puede quitarlo. Antes de migrar, asegúrese de que el análisis de registros de Azure Monitor es compatible con la región en la que se implementa la VM con SQL Server.

No se han podido habilitar las valoraciones

Para ver el mensaje de error asociado a la acción con error, consulte el historial de implementación del grupo de recursos que contiene la máquina virtual de SQL.

No se ha podido ejecutar una valoración

Compruebe el estado de la evaluación en Azure Portal. Si se produce un error en el estado, seleccione el estado para ver el mensaje de error. También puede iniciar sesión en la máquina virtual y revisar los mensajes de error detallados para las valoraciones con errores en el registro de extensiones en C:\WindowsAzure\Logs\Plugins\Microsoft.SqlServer.Management.SqlIaaSAgent\2.0.X.Y, donde 2.0.X.Y es la versión de la extensión.

Si tiene problemas para ejecutar una valoración:

  • Asegúrese de que su entorno cumpla todos los requisitos previos.
  • Asegúrese de que el servicio Agente de IaaS de SQL se ejecuta en la máquina virtual y la extensión Agente de IaaS de SQL está en buen estado. Si la extensión Agente de IaaS de SQL es incorrecta, repare la extensión para solucionar cualquier problema y actualícela a la última versión sin tiempo de inactividad de SQL Server.
  • Si ve errores de inicio de sesión para NT SERVICE\SqlIaaSExtensionQuery, asegúrese de que la cuenta existe en SQL Server con el Server permission - CONTROL SERVER permiso .

Error al cargar el resultado en el área de trabajo de Log Analytics

Este error indica que Microsoft Monitoring Agent (MMA) no pudo cargar los resultados en el período de tiempo esperado.

Si los resultados no se cargan en el área de trabajo de Log Analytics, pruebe la siguiente solución:

Errores con una configuración de TLS incorrecta mediante Log Analytics

El error más común de Seguridad de la Capa de Transporte (TLS) se produce cuando la extensión "Microsoft Monitoring Agent" (MMA) no puede establecer un "handshake" SSL al conectarse al punto de conexión de "Log Analytics". Este error suele producirse cuando el Registro o el GPO aplican TLS 1.0 en el nivel de sistema operativo, pero no se actualizan para .NET Framework. Si ha aplicado TLS 1.0 o posterior en Windows y ha deshabilitado protocolos SSL anteriores, como se describe en Claves del Registro específicas de Schannel, también debe asegurarse de que .NET Framework está configurado para usar criptografía segura.

No se puede cambiar el área de trabajo de Log Analytics después de configurar instancias de SQL Assessment

Después de que una máquina virtual está asociada a un área de trabajo de Log Analytics, no se puede cambiar desde el recurso de la máquina virtual de SQL. Esta restricción impide que Log Analytics se use para otros casos de uso. Puede desconectar la máquina virtual mediante la pestaña recurso de Log Analytics de la página Máquinas virtuales de Azure Portal.

El resultado expiró debido a la retención de datos del área de trabajo de Log Analytics

Este error indica que los resultados ya no se conservan en el área de trabajo de Log Analytics, en función de su directiva de retención. Puede cambiar el período de retención del área de trabajo.

Evaluación de las mejores prácticas de SQL no habilitada en el portal de Azure después de activarla mediante Azure Policy u otra automatización.

Los nombres de la regla de recopilación de datos y de la asociación de estas para la evaluación de las mejores prácticas de SQL siguen una convención de nomenclatura específica que diferencia entre mayúsculas y minúsculas. Si la evaluación de procedimientos recomendados de SQL está habilitada mediante una instancia de Azure Policy u otra forma de automatización, que crea un nombre que no puede seguir la convención de nomenclatura adecuada, no se habilitará la evaluación de procedimientos recomendados de SQL .

Tanto la regla de recopilación de datos como los nombres de asociación de reglas de recopilación de datos son sensible a mayúsculas y minúsculas, con DCR y DCRA capitalizadas, mientras que el resto del nombre debe estar en minúsculas.

Los nombres deben usar las siguientes convenciones de nomenclatura:

  • La regla de recopilación de datos debe denominarse mediante la <guid>_<regionname>_DCR_<number> convención de nomenclatura, como el ejemplo siguiente: 37e0cae3-c2bd-44f3-85af-975f28b08871_eastus2_DCR_1
  • La asociación de reglas de recopilación de datos debe denominarse mediante la <guid>_<regionname>_DCRA_<number> convención de nomenclatura, como el ejemplo siguiente: 37e0cae3-c2bd-44f3-85af-975f28b08871_eastus2_DCRA_1