¡Acceso ilimitado 24/7 a todos nuestros libros y vídeos! Descubra la Biblioteca Online ENI. Pulse aquí
¡Acceso ilimitado 24/7 a todos nuestros libros y vídeos! Descubra la Biblioteca Online ENI. Pulse aquí
  1. Libros
  2. SQL Server 2019
  3. Herramientas adicionales
Extrait - SQL Server 2019 Aprender a administrar una base de datos transaccional con SQL Server Management Studio
Extractos del libro
SQL Server 2019 Aprender a administrar una base de datos transaccional con SQL Server Management Studio Volver a la página de compra del libro

Herramientas adicionales

La auditoría de la actividad de SQL Server

SQL Server tiene la capacidad de realizar una auditoría de su funcionamiento.

Esta auditoría se puede definir en la instancia de SQL Server o en una o varias bases de datos. La auditoría va a seguir los eventos y registra el seguimiento de estos eventos en el diario de auditoría. Este diario de auditoría puede ser un archivo, el diario de eventos de seguridad o el diario de los eventos de aplicaciones de Windows. Sea cual sea el objetivo de la auditoría, el archivo se debe guardar regularmente con objeto de garantizar el espacio necesario para registrar los eventos.

Para poder realizar o modificar una auditoría, es necesario ser miembro del rol sysadmin. También es posible auditar cada modificación de la auditoría.

Es importante notar que la puesta en marcha de una auditoría puede tener un efecto negativo en el rendimiento, ya que la activación de los contadores de auditoría consume recursos del servidor y, por lo tanto, hay menos recursos disponibles para responder a las peticiones de los usuarios. Entonces, en general y con el fin de optimizar el funcionamiento del servidor, sólo se debe realizar una auditoría si se busca resolver un problema.

1. Definir una auditoría en el servidor

El establecimiento de este tipo de auditoría se inicia con la creación y configuración de un objeto de tipo SQL Server...

La limitación de los recursos utilizados por una consulta

El coste de una consulta corresponde a la duración estimada (en segundos) de su ejecución. La opción query governor cost limit permite especificar un límite superior para la ejecución de una consulta.

Por defecto, esta opción recibe el valor 0, lo que autoriza la ejecución de todas las consultas. Si se asigna un valor positivo diferente de 0, entonces el administrador no autoriza la ejecución de todas las consultas, cuyo coste estimado es superior a este valor.

Esta limitación se puede especificar en el servidor por medio de sp_configure o bien en cada base de datos con SET QUERY_GOVERNOR_COST_LIMIT.

La configuración con la opción SET solo está disponible para el período actual de actividad de la instancia. Esta configuración no se conserva para el siguiente inicio de la instancia. Para conservar este valor, es necesario configurar la opción con sp_configure o bien mediante las propiedades del servidor.

set query_governor_cost_limit 20 
 
-- o  
 
sp_configure 'show advanced options',1 
reconfigure 
 
sp_configure 'query governor cost limit', 20 
reconfigure 

La instrucción RECONFIGURE permite tener en cuenta los nuevos valores de las opciones de configuración sin tener que reiniciar el servidor.

Desde SQL Server Management Studio...

El almacén de consultas

Los planes de ejecución evolucionan en función de varios criterios, y para una misma consulta pueden existir varios planes de ejecución posibles. Una de las dificultades es seleccionar el plan que mejor se adapte.

SQL Server propone el almacén de consultas. Como su nombre indica, en el seno de cada base de datos, SQL pretende almacenar las consultas y los planes de ejecución asociados.

Para no sobrecargar la base de datos, esta funcionalidad está desactivada por defecto, y el espacio máximo que puede utilizar el almacén de consultas está definido por el parámetro MAX_STORAGE_SIZE_MB. Es posible conocer el valor de este parámetro consultando la vista sys.database_query_store_options. Su tamaño predeterminado es de 1 GB y este espacio de almacenamiento se toma del grupo de archivos principal.

Para activar el almacén de consultas debemos ejecutar la instrucción ALTER DATABASE para configurar a ON el valor del parámetro QUERY_STORE.

Alter database Gescom set query_store=on; 

Gracias a este mismo comando ALTER DATABASE, pero con la opción SET QUERY_STORE CLEAR, podremos liberar el espacio ocupado por el almacén de consultas.

También podemos ir a la sección Almacén de consultas de las Propiedades de base de datos y allí modificar el valor Modo de operación.

images/5.png

El almacén de consultas proporciona varios...

Plan de mantenimiento

Para las operaciones clásicas del administrador, tales como las copias de seguridad regulares de la base de datos y de los diarios de transacciones o las operaciones de mantenimiento de los índices, es posible definir planes de mantenimiento. La ejecución de estas diferentes tareas se planifica durante la definición del plan de mantenimiento.

Los planes de mantenimiento se pueden definir con un asistente, pero la creación manual de un plan de mantenimiento ofrece más opciones de configuración siempre que tenga un conocimiento mínimo de SSIS (Servicio de integración de SQL Server).

Los planes de mantenimiento se definen como paquete SIS y es SQL Server Agent quien se encarga de ejecutar el trabajo que lanza este paquete.

La definición de un nuevo plan de mantenimiento se puede establecer fácilmente llamando al asistente de definición de un nuevo plan. Este asistente se puede ejecutar desde el menú contextual asociado al nodo Administración - Planes de mantenimiento, desde el explorador de objetos.

images/7.png
images/8.png
images/9.png
images/10.png

Al final del asistente, se creará una tarea programada que contiene un paso de tipo de paquete SSIS, a nivel del agente de SQL Server.

Los triggers DDL

SQL Server ofrece triggers de tipo DDL. Estos triggers de base de datos funcionan como los triggers asociados a una acción insert, update o delete que puede producirse sobre una tabla dada. La ejecución del trigger DDL está asociada a la ejecución de una instrucción CREATE, ALTER, DROP, GRANT, REVOKE, DENY y UPDATE STATISTICS.

Los triggers DDL se ejecutan después de la instrucción DDL a la que están asociados y DDL permiten seguir las modificaciones realizadas sobre el esquema o bien prohibir algunas modificaciones que puedan realizarse sobre el esquema.

Para prohibir una instrucción DDL en el trigger asociado, es necesario anular la transacción con la instrucción ROLLBACK.

Al definir un trigger DDL, es necesario indicar la instrucción DDL que permite su ejecución, así como su ámbito, es decir, el lugar en el que va a estar activo. El ámbito puede corresponder a una base de datos concreta o a la totalidad de la instancia.

Para permitir seguir lo mejor posible las diferentes ejecuciones de las instrucciones DDL, es posible utilizar la función EVENTDATA en los triggers DDL. Esta función permite capturar la información relativa a la ejecución del trigger y devuelve un flujo XML. Es posible extraer la información de este flujo XML utilizando una consulta XQuery.

No es posible definir triggers DDL de tipo instead...

PowerShell

Este Shell se introdujo en Windows Server 2008 y permite definir potentes scripts de administración. Esta versión de PowerShell se enriquece de las herramientas específicas de cada aplicación servidor que edita Microsoft.

Este shell permite ejecutar las instrucciones de manera directa o en forma de script.

SQL Server no es una excepción a la regla y aporta su lista de comandos PowerShell. Las aportaciones de SQL Server al PowerShell son:

  • La integración de un proveedor de acceso para poder navegar en la arborescencia del servidor de la misma manera que se hace en un sistema de archivos, es decir, principalmente con las instrucciones cd y dir.

  • La adición de cmdlets con el objetivo de poder integrar y ejecutar una acción SQL, fundamentalmente los scripts Transact SQL.

La consola PowerShell se inicia por medio de la herramienta sqlps. Es posible ejecutar directamente los scripts PowerShell. El applet Get-Help permite, como siempre, encontrar toda la información relativa a los applets de comandos. Para SQL Server, es posible establecer inicialmente Invoke-Sqlcmd que se corresponde a la herramienta sqlcmd en PowerShell.

Ejemplo

images/11.png

Cuando arranca sqlps, se muestra un mensaje referente a la versión de SQL Server. Estas tres líneas de mensajes se pueden eliminar ejecutando sqlsp -nologo.

La herramienta sqlps ejecuta la consola PowerShell en modo restringido por defecto, lo que impide la ejecución...

La gestión de las reglas

SQL Server introduce la noción de gestión por reglas. Este tipo de gestión permite definir las reglas de administración y aplicarlas a una o varias instancias de SQL Server. Con la multiplicación de las instancias de SQL Server, incluso sobre un mismo puesto, se hace necesario tener una herramienta para simplificar la administración individual de las diferentes instancias. Las reglas también pueden servir para administrar las bases de datos de usuario.

Las reglas van a permitir definir un comportamiento común para todas las bases de datos, instancias y servidores de SQL Server haciendo obligatoria o no la activación de algunos servicios o forzando explícitamente las reglas de nomenclatura, por ejemplo. Entre otras cosas, las reglas van a permitir adoptar una estructura similar en bases de datos distintas, lo que permite una comprensión más fácil de las diferentes bases y facilita la administración.

La gestión por reglas se puede descomponer en tres componentes importantes:

  • La definición y gestión de las reglas.

  • El modo de ejecución de las reglas.

  • La administración directa.

El término regla se puede precisar usando la noción de estrategia y de condición.

Una condición va a permitir asegurarse de que se respetan uno o varios criterios de configuración. La aplicación...