Consideraciones acerca del uso de servidores de prueba

Se aplica a: SQL Server

El uso de un servidor de prueba para ajustar una base de datos en un servidor de producción es una ventaja importante de asistente para la optimización de motor de base de datos. Mediante esta característica se puede descargar la sobrecarga de optimización en un servidor de prueba sin copiar los datos reales del servidor de producción a ese servidor de prueba.

Nota:

La característica de optimización del servidor de prueba no es compatible con la interfaz gráfica de usuario (GUI) del Asistente para la optimización de motor de base de datos.

Para utilizar correctamente esta característica, revise las consideraciones enumeradas en las siguientes secciones:

Configurar el entorno del servidor de prueba/servidor de producción

  • El usuario que desea utilizar un servidor de prueba para optimizar una base de datos de un servidor de producción debe existir en ambos servidores; de lo contrario, este escenario no funcionará.

  • El procedimiento almacenado extendido, xp_msver, debe estar habilitado para usar el escenario del servidor de prueba/servidor de producción. El asistente para la optimización de motor de base de datos usa este procedimiento almacenado extendido para capturar el número de procesadores y la memoria disponible del servidor de producción que se usará al ajustar el servidor de prueba. Si xp_msver no está habilitado, el asistente para la optimización de motor de base de datos asume las características de hardware del equipo en el que se ejecuta el asistente para la optimización de motor de base de datos. Si no están disponibles las características de hardware del equipo donde se ejecuta el Asistente para la optimización de motor de base de datos, se presuponen un procesador y 1.024 MB de memoria. Este procedimiento almacenado extendido se activa de forma predeterminada al instalar SQL Server. Para obtener más información, consulte Configuración de área expuesta y xp_msver (Transact-SQL).

  • El asistente para la optimización de motor de base de datos espera que las ediciones de SQL Server sean las mismas en el servidor de prueba y en el servidor de producción. Si hay ediciones diferentes, tiene prioridad la edición del servidor de prueba. Por ejemplo, si el servidor de prueba ejecuta SQL Server Standard, el asistente para la optimización de motor de base de datos no incluirá vistas indizadas, particiones y operaciones en línea en sus recomendaciones, incluso si el servidor de producción está ejecutando SQL Server Enterprise.

Comportamiento del servidor de prueba/servidor de producción

  • El asistente para la optimización de motor de base de datos tiene en cuenta las diferencias de hardware entre la producción y el servidor de prueba al crear recomendaciones. La recomendación es la misma que si se hubiera realizado la optimización solo en el servidor de producción.

  • El asistente para la optimización de motor de base de datos puede imponer cierta carga en el servidor de producción para recopilar metadatos, así como la creación de estadísticas necesarias para el ajuste.

  • El asistente para la optimización de motor de base de datos no copia datos reales del servidor de producción al servidor de prueba. Solo copia los metadatos de las bases de datos y las estadísticas necesarias.

  • Toda la información de la sesión se almacena en msdb en el servidor de producción. Esto permite explotar cualquier servidor de prueba disponible para la optimización, y la información sobre todas las sesiones está disponible en un mismo lugar (el servidor de producción).

  • Después del ajuste, el asistente para la optimización de motor de base de datos debe quitar los metadatos que creó en el servidor de prueba durante el proceso de ajuste. Esto incluye la base de datos de shell. Si está realizando una serie de sesiones de optimización con los mismos servidores de producción y de prueba, es posible que desee mantener esta base de datos de shell para ahorrar tiempo. En el archivo de entrada XML, especifique el subelemento RetainShellDB con los demás subelementos del elemento primario TuningOptions . El uso de estas opciones hace que el asistente para la optimización de motor de base de datos conservar la base de datos del shell. Para obtener más información, consulte Referencia de archivo de entrada XML (Asistente para la optimización de motor de base de datos).

  • Después de una sesión de optimización correcta en un servidor de producción o de prueba, pueden quedar bases de datos de shell en el servidor de prueba, aunque no se haya especificado la opción RetainShellDB . Estas bases de datos de shell no deseadas pueden interferir con las sesiones de optimización posteriores y se deben quitar antes de ejecutar otra sesión de optimización del servidor de prueba o de producción. Además, si una sesión de optimización se cierra de forma inesperada, las bases de datos de shell en el servidor de prueba y los objetos que hay en esas bases de datos se pueden quedar en el servidor de prueba. También debe eliminar estas bases de datos y objetos antes de iniciar una nueva sesión de optimización del servidor de prueba o de producción.

  • El usuario debe comprobar si el registro de optimización contiene errores de optimización derivados de las diferencias entre los servidores de producción y de prueba, y errores derivados de copiar metadatos del servidor de producción en el de prueba. Por ejemplo, es posible que no exista ningún inicio de sesión de usuario en el servidor de prueba. Si no existe ningún inicio de sesión de usuario en el servidor de prueba, es posible que los eventos de la carga de trabajo emitidos por ese inicio de sesión de usuario no puedan optimizarse. Use la GUI del asistente para la optimización de motor de base de datos para ver el registro de ajuste. Para obtener más información, vea Ver y trabajar con la salida del Asistente para la optimización de motor de base de datos.

  • Si el asistente para la optimización de motor de base de datos no puede optimizar muchos eventos porque faltan objetos en la base de datos de shell que el asistente para la optimización de motor de base de datos crea en el servidor de prueba, el usuario debe comprobar el registro de ajuste. Los eventos que no se pueden optimizar aparecen en el registro. Para optimizar correctamente la base de datos en el servidor de prueba, el usuario debe crear los objetos que faltan en la base de datos de shell y, a continuación, iniciar una nueva sesión de optimización.

  • Si ya existe una base de datos con el mismo nombre en el servidor de prueba, el asistente para la optimización de motor de base de datos no copia los metadatos, pero continúa ajustando y recopila las estadísticas según sea necesario. Esto resulta útil si el usuario ya ha creado una base de datos en el servidor de prueba y ha copiado los metadatos adecuados antes de invocar el asistente para la optimización de motor de base de datos.

  • Si la opción DATE_CORRELATION_OPTIMIZATION está activada para una base de datos en el servidor de producción, no se genera un script completo de los metadatos y los datos asociados a esta opción durante la optimización del servidor de prueba. Cuando se lleva a cabo la optimización para un escenario de servidor de prueba/servidor de producción, es posible que surjan los problemas siguientes:

    • Los usuarios pueden tener distintos planes de consulta en los servidores para las consultas que utilizan la opción DATE_CORRELATION_OPTIMIZATION.

    • El asistente para la optimización de motor de base de datos puede sugerir quitar vistas indizadas que apliquen la opción DATE_CORRELATION_OPTIMIZATION en el script de recomendación.

    Por lo tanto, puede que desee omitir las recomendaciones que el asistente para la optimización de motor de base de datos realice sobre las vistas indizadas que contienen estadísticas de correlación porque el asistente para la optimización de motor de base de datos conoce sus costos, pero no sus beneficios. El asistente para la optimización de motor de base de datos puede no recomendar la selección de determinados índices, como índices agrupados en columnas datetime, lo que podría ser beneficioso cuando se habilita DATE_CORRELATION_OPTIMIZATION.

    Para saber si una vista se basa en las estadísticas de correlación, seleccione la columna is_date_correlation_view de la vista de catálogo sys.views .