jueves, 21 de enero de 2021

SQL Server Propiedades de Base de Datos – Opciones (2)

Introducción

Ya he indicado previamente sobre las propiedades de las bases de datos y he indicado las paginas General, Archivos, Grupos de Archivos y la primera parte de la pagina Opciones, en previas entregas, ahora continuare con las opciones de configuración de las bases de datos. 

Página Opciones

Ya se ha indicado previamente que es posible utilizar esta página para ver o modificar varias opciones de configuración para la base de datos seleccionada. Sin embargo, es necesario tener en cuenta que puede usar las declaraciones de Transact-SQL ALTER DATABASE SET OPTIONS o ALTER DATABASE SCOPED CONFIGURATION, para modificar los valores si se prefiere.

En esta ocasión, se presentarán las opciones de las categorías Database Scope Configuration y FILESTREAM.

 


Configuraciones con ámbito de base de datos

A partir de la versión de Microsoft SQL Server 2016 y en las bases de datos definidas en Azure SQL Database, se encuentran estas propiedades de configuración que pueden ajustarse al nivel de la base de datos. Esto es, son configuraciones de nivel base de datos que afectan el comportamiento del código de aplicación en el nivel de base de datos. Anteriormente no teníamos estas opciones que eran aplicables para toda la instancia, no de forma individual de base de datos. A partir de Microsoft SQL Server 2016, si se requiere una variedad de necesidades de configuración en las bases de datos, ahora es fácil llevarlo a cabo. Se debe tener cuidado de realizar modificaciones a estos valores. 

Se debe tener en cuenta que se manejan opciones Para Secundarias, estas opciones son compatibles con el uso de los grupos de disponibilidad AlwaysOn ya que se pueden configurar diferentes opciones para las bases de datos primaria y secundaria.

Estimación de cardinalidad heredada – indica el modelo de estimación de cardinalidad usado por el optimizador de consultas independiente del nivel de compatibilidad de la base de datos. Esto es equivalente al uso del Trace Flag 9481.

Estimación de cardinalidad heredada para secundaria – indica el modelo de estimación de cardinalidad del optimizador de consultas para los secundarios, si los hay, independientemente del nivel de compatibilidad de la base de datos. 

MAX DOP – indica la configuración predeterminada de grado máximo de paralelismo para la base de datos, en el primario que debe usarse para las declaraciones, los ser valores permitidos son 0, 1, 2, etc.

MAX DOP para secundaria – indica la configuración predeterminada de grado máximo de paralelismo para la base de datos en los secundarios, si los hay, que se debe usar para las declaraciones, los valores permitidos son 0, 1, 2, etc.

Rastreo de parámetros – indica si el rastreo de parámetros en el primario esta habilitada. Es posible configurar el comportamiento para que el optimizador de consultas use o no el rastreo de parámetros. En versiones anteriores, era posible deshabilitar esta función usando el Trace Flag 4136, pero ahora es posible controlarlo a nivel de la base de datos.

Rastreo de parámetros para secundaria – indica si el rastreo de parámetros en los secundarios, si los hay, esta habilitada. Al igual que para el primario, anteriormente el equivalente de Trace Flag 4136.

Correcciones del optimizador de consultas – indica si están habilitadas las revisiones de optimización de consultas para la base de datos en el primario independientemente del nivel de Esto es equivalente al uso de Trace Flag 4199. 

Correcciones del optimizador de consultas para secundaria – indica si están habilitadas las revisiones de optimización de consultas en la base de datos, para las secundarias, si las hay, independientemente del nivel de compatibilidad. 

FILESTREAM

Esta sección se habilitará y mostrará información, si el uso de FILESTREAM está habilitado en el servidor.

Nombre de directorio de FILESTREAM – Indica el nombre del directorio para los datos de FILESTREAM asociados con la base de datos seleccionada.

Acceso sin transacciones de FILESTREAM – Indica una de las siguientes opciones para el acceso no transaccional a través del sistema de archivos a los datos de FILESTREAM almacenados en FileTables: OFF, READ_ONLY o FULL. Si FILESTREAM no está habilitado en el servidor, este valor se establece en OFF y está deshabilitado. 

Conclusión

Ya se ha indicado que esta página de propiedades de la base de datos brinda información de las opciones de la base de datos. Es importante recordar, que las opciones que en esta ocasión se presentan, tienen la particularidad siguiente; en el primer caso solo se encontraran las opciones cuando se tenga una base de datos en una instancia de Microsoft SQL Server 2016 con el SP 2 o superior, en el segundo caso, si el servidor de base de datos se ha configurado para uso de FILESTREAM. Si se requiere usar T-SQL para obtener la información que se muestra en la pagina indicada, es posible usar las siguientes consultas.

/*******************************************************************************
-- Script : Get Database Options Properties Part 2 
-- Author : Julio J Bueyes
-- julio.bueyes@outlook.com
--
-- Description : This script helps to get a detailed view of the database properties – Options page – part 2.
--
-- DISCLAIMER. This Code is provided for the purpose of illustration only and is not intended to be used in a production environment. 
--
-- THIS CODE AND ANY RELATED INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, 
-- INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
**********************************************************************************/
-- Set the Database Name required
USE model;
GO

--- Database Scoped Configurations
SELECT name, CASE configuration_id WHEN 1 THEN value ELSE CASE value WHEN 1 THEN 'ON' ELSE 'OFF' END END AS [value]
FROM sys.database_scoped_configurations
WHERE configuration_id IN (2,1,3,4)
UNION
SELECT name + '_FOR_SECONDARY', CASE configuration_id WHEN 1 THEN value_for_secondary ELSE CASE ISNULL(value_for_secondary,0) WHEN 0 THEN 'PRIMARY' ELSE value_for_secondary END END
FROM sys.database_scoped_configurations
WHERE configuration_id IN (2,1,3,4);

-- FILESTREAM
SELECT directory_name AS [FILESTREAM Directory Name], 
    non_transacted_access_desc AS [FILESTREAM Non-transacted Access]
FROM sys.database_filestream_options
WHERE database_id = DB_ID();

Como se ha establecido previamente, pueden observarse de forma fácil obtener los datos directamente de la ventana de propiedades de la base de datos, en la página Opciones, no obstante, el script funciona para obtener los mismos valores proporcionados por la página.



No hay comentarios.:

Publicar un comentario