martes, 26 de diciembre de 2017

SQL Server Opciones de configuración

Opciones de Configuración

Hoy iniciare escribiendo acerca de las opciones de configuración de Microsoft SQL Server, cabe mencionar que muchas de estas opciones no cambian, además de que muchas opciones se han agregado y otras se han eliminado a lo largo del tiempo, las opciones de configuración que aquí se trataran, tienen que ver con las características de desempeño en un ambiente de producción. Es importante indicar que, a mi punto de vista, deben homologarse las opciones de configuración de Microsoft SQL Server en los distintos ambientes, si bien el ambiente de desarrollo es muy diferente a un ambiente de producción, las opciones de configuración establecidas en el ambiente de desarrollo de forma similar a las opciones de producción, permiten verificar el rendimiento que se presentará en producción, ya que las condiciones serán muy similares.
Actualmente, Microsoft SQL Server versión 2017, presenta 77 opciones de configuración de los cuales, 54 son identificadas como opciones avanzadas y 23 son no avanzadas, asimismo, se presentan 60 opciones como de efecto dinámico, esto significa que el cambio de valor en la configuración toma efecto inmediato y 17 de las opciones, cuando el valor cambia, requieren que se reinicien los servicios de Microsoft SQL Server para que el cambio tenga efecto. Esta información es fácilmente obtenida ejecutando la siguiente consulta:

SELECT COUNT([name]) as Total_Options,
(SELECT COUNT(is_advanced) FROM sys.configurations WHERE is_advanced=1) as Total_Advanced,
(SELECT COUNT(is_dynamic) FROM sys.configurations WHERE is_dynamic=1) as Total_Dynamic
FROM sys.configurations;

Obteniéndose la siguiente tabla:

Total_Options
Total_Advanced
Total_Dynamic
77
54
60

Las opciones de configuración son las siguientes:

Nombre de opción
Descripción
access check cache bucket count
Cuenta predeterminada de cubo hash para la caché de seguridad de resultado de verificación de acceso
access check cache quota
Cuota predeterminada para la caché de seguridad de resultados de verificación de acceso
Ad Hoc Distributed Queries
Habilitar o deshabilitar consultas distribuidas ad hoc
affinity I/O mask
máscara de E / S de afinidad
affinity mask
máscara de afinidad
affinity64 I/O mask
máscara de E / S affinity64
affinity64 mask
máscara affinity64
Agent XPs
Habilitar o deshabilitar Agent XPs
allow polybase export
Permitir INSERT en una tabla externa de Hadoop
allow updates
Permitir actualizaciones a las tablas del sistema
automatic soft-NUMA disabled
Automatic soft-NUMA está habilitado por defecto
backup checksum default
Habilitar suma de comprobación de copias de seguridad de forma predeterminada
backup compression default
Habilitar la compresión de copias de seguridad de forma predeterminada
blocked process threshold (s)
Umbral de informe de proceso bloqueado
c2 audit mode
modo de auditoría c2
clr enabled
Ejecución de código de usuario CLR habilitada en el servidor
clr strict security
Seguridad estricta CLR habilitada en el servidor
common criteria compliance enabled
Modo de cumplimiento Common Criteria habilitado
contained database authentication
Permite bases de datos contenidas y autenticación contenida
cost threshold for parallelism
umbral de costo para el paralelismo
cross db ownership chaining
Permitir el encadenamiento de propiedad cross db
cursor threshold
umbral del cursor
Database Mail XPs
Habilitar o deshabilitar Database Mail XPs
default full-text language
lenguaje de texto completo predeterminado
default language
idioma predeterminado
default trace enabled
Habilitar o deshabilitar la traza predeterminada
disallow results from triggers
No permitir devolver resultados de desencadenantes
EKM provider enabled
Habilitar o deshabilitar el proveedor de EKM
external scripts enabled
Permite la ejecución de scripts externos
filestream access level
Establece el nivel de acceso de FILESTREAM
fill factor (%)
Porcentaje de factor de relleno predeterminado
ft crawl bandwidth (max)
Número máximo de almacenamientos intermedios de rastreo de texto completo
ft crawl bandwidth (min)
ancho de banda de rastreo ft (min)
ft notify bandwidth (max)
Cantidad máxima de almacenamientos intermedios de notificaciones de texto completo
ft notify bandwidth (min)
Cantidad de almacenamientos intermedios de notificaciones de texto completo reservados
hadoop connectivity
Configurar SQL Server para conectarse a fuentes de datos de blobs de almacenamiento Hadoop o Microsoft Azure externas a través de PolyBase
index create memory (KB)
Memoria para tipos de creación de índice (kBytes)
in-doubt xact resolution
Política de recuperación para transacciones de DTC con resultados desconocidos
lightweight pooling
El planificador de modo de usuario usa la agrupación liviana
locks
Número de bloqueos para todos los usuarios
max degree of parallelism
grado máximo de paralelismo
max full-text crawl range
Rangos máximos de rastreo permitidos en la indexación de texto completo
max server memory (MB)
tamaño máximo de la memoria del servidor (MB)
max text repl size (B)
Tamaño máximo de un campo de texto en la replicación.
max worker threads
Máximo de hilos de trabajo
media retention
Periodo de retención de cinta en días
min memory per query (KB)
memoria mínima por consulta (kBytes)
min server memory (MB)
Tamaño mínimo de la memoria del servidor (MB)
nested triggers
Permitir que se invoquen triggers dentro de los disparadores
network packet size (B)
Tamaño del paquete de red
Ole Automation Procedures
Habilitar o deshabilitar los procedimientos de automatización de Ole
open objects
Número de objetos de base de datos abiertos
optimize for ad hoc workloads
Cuando se establece esta opción, el tamaño del caché del plan se reduce aún más para la carga de trabajo OLTP adhoc de un solo uso.
PH timeout (s)
Tiempo de espera de conexión de base de datos para controlador (es) de protocolo de texto completo
polybase network encryption
Configurar SQL Server para cifrar los canales de control y de datos al usar PolyBase
precompute rank
Usar rango precalculado para la consulta de texto completo
priority boost
Aumento de prioridad
query governor cost limit
Costo estimado máximo permitido por el gobernador de consulta
query wait (s)
tiempo máximo para esperar memoria  de consulta (s)
recovery interval (min)
Intervalo máximo de recuperación en minutos
remote access
Permitir acceso remoto
remote admin connections
Se permiten conexiones de administrador dedicadas desde clientes remotos
remote data archive
Permitir el uso del acceso a datos REMOTE_DATA_ARCHIVE para bases de datos
remote login timeout (s)
tiempo de espera de inicio de sesión remoto
remote proc trans
Crear transacción DTC para procedimientos remotos
remote query timeout (s)
tiempo de espera de consulta remota
Replication XPs
Habilitar o deshabilitar la replicación de XP
scan for startup procs
escanear para los procedimientos almacenados de inicio
server trigger recursion
Permitir recursividad para desencadenantes de nivel de servidor
set working set size
establecer el tamaño del conjunto de trabajo
show advanced options
mostrar opciones avanzadas
SMO and DMO XPs
Habilitar o deshabilitar SMO y DMO XPs
transform noise words
Transforma palabras de ruido para consulta de texto completo
two digit year cutoff
corte de dos dígitos del año
user connections
Número de conexiones de usuario permitidas
user options
opciones de usuario
xp_cmdshell
Activar o desactivar el shell del comando

Es importante mencionar que muchas opciones de configuración se establecen con valores binarios, esto es, se habilita o deshabilita la opción, por omisión, muchas de estas opciones se establecen deshabilitadas y solo algunas están habilitadas, estos valores se establecen desde que se instala el producto, por lo que si es necesario se puede cambiar su valor. Las opciones que caen en esta categoría son un total de 37, las cuales son:

Opción de Configuración
Descripción
Valor por Omisión
Ad Hoc Distributed Queries
Habilitar o deshabilitar consultas distribuidas ad hoc
0
Agent XPs
Habilitar o deshabilitar Agent XPs
0
allow polybase export
Permitir INSERT en una tabla externa de Hadoop
0
allow updates
Permitir actualizaciones a las tablas del sistema
0
automatic soft-NUMA disabled
Automatic soft-NUMA está habilitado por defecto
0
backup checksum default
Habilitar suma de comprobación de copias de seguridad de forma predeterminada
0
backup compression default
Habilitar la compresión de copias de seguridad de forma predeterminada
0
c2 audit mode
modo de auditoría c2
0
clr enabled
Ejecución de código de usuario CLR habilitada en el servidor
0
clr strict security
Seguridad estricta CLR habilitada en el servidor
1
common criteria compliance enabled
Modo de cumplimiento Common Criteria habilitado
0
contained database authentication
Permite bases de datos contenidas y autenticación contenida
0
cross db ownership chaining
Permitir el encadenamiento de propiedad cross db
0
Database Mail XPs
Habilitar o deshabilitar Database Mail XPs
0
default trace enabled
Habilitar o deshabilitar la traza predeterminada
1
disallow results from triggers
No permitir devolver resultados de desencadenantes
0
EKM provider enabled
Habilitar o deshabilitar el proveedor de EKM
0
external scripts enabled
Permite la ejecución de scripts externos
1
lightweight pooling
El planificador de modo de usuario usa la agrupación liviana
0
nested triggers
Permitir que se invoquen triggers dentro de los disparadores
1
Ole Automation Procedures
Habilitar o deshabilitar los procedimientos de automatización de Ole
0
optimize for ad hoc workloads
Cuando se establece esta opción, el tamaño del caché del plan se reduce aún más para la carga de trabajo OLTP adhoc de un solo uso.
0
polybase network encryption
Configurar SQL Server para cifrar los canales de control y de datos al usar PolyBase
1
precompute rank
Usar rango precalculado para la consulta de texto completo
0
priority boost
Aumento de prioridad
0
remote access
Permitir acceso remoto
1
remote admin connections
Se permiten conexiones de administrador dedicadas desde clientes remotos
0
remote data archive
Permitir el uso del acceso a datos REMOTE_DATA_ARCHIVE para bases de datos
0
remote proc trans
Crear transacción DTC para procedimientos remotos
0
Replication XPs
Habilitar o deshabilitar la replicación de XP
0
scan for startup procs
escanear para los procedimientos almacenados de inicio
0
server trigger recursion
Permitir recursividad para desencadenantes de nivel de servidor
1
set working set size
establecer el tamaño del conjunto de trabajo
0
show advanced options
mostrar opciones avanzadas
0
SMO and DMO XPs
Habilitar o deshabilitar SMO y DMO XPs
1
transform noise words
Transforma palabras de ruido para consulta de texto completo
0
xp_cmdshell
Activar o desactivar el shell del comando
0

Ahora bien, de las 40 opciones de configuración que no se listaron anteriormente, algunas son relacionadas con las conexiones, otras afectan el rendimiento de las consultas y otras son para especificar el lenguaje que se maneja en el motor de base de datos.
Es importante indicar que las opciones de configuración que requieren que se reinicien los servicios del motor de base de datos son las siguientes:

Opción de Configuración
Descripción
Valor por Omisión
affinity I/O mask
máscara de E / S de afinidad
0
affinity64 I/O mask
máscara de E / S affinity64
0
automatic soft-NUMA disabled
Automatic soft-NUMA está habilitado por defecto
0
c2 audit mode
modo de auditoría c2
0
common criteria compliance enabled
Modo de cumplimiento Common Criteria habilitado
0
external scripts enabled
Permite la ejecución de scripts externos
1
fill factor (%)
Porcentaje de factor de relleno predeterminado
0
hadoop connectivity
Configurar SQL Server para conectarse a fuentes de datos de blobs de almacenamiento Hadoop o Microsoft Azure externas a través de PolyBase
0
lightweight pooling
El planificador de modo de usuario usa la agrupación liviana
0
locks
Número de bloqueos para todos los usuarios
0
open objects
Número de objetos de base de datos abiertos
0
polybase network encryption
Configurar SQL Server para cifrar los canales de control y de datos al usar PolyBase
1
priority boost
Aumento de prioridad
0
remote access
Permitir acceso remoto
1
scan for startup procs
escanear para los procedimientos almacenados de inicio
0
set working set size
establecer el tamaño del conjunto de trabajo
0
user connections
Número de conexiones de usuario permitidas
0

Estas opciones de configuración se pueden modificar en cualquier momento, sin embargo, el valor correspondiente solo se hará valido cuando se reinicien los servicios de Microsoft SQL Server.
En siguientes entregas estaré indicando las características de cada una de las opciones de configuración que se tienen, asimismo indicare cuando se trate de opciones que se han incluido en las distintas versiones de Microsoft SQL Server, por lo que no todas las opciones que se han indicado aquí son válidas en todas las versiones anteriores a Microsoft SQL Server 2017.

Conclusión


Se han indicado las opciones de configuración de Microsoft SQL Server, como se puede observar, estas se han desarrollado para modificar el comportamiento del motor de base de datos. Es importante indicar que se recomienda solo modificar las opciones cuando se conoce bien el uso y las características de operación que se asocian.
Particularmente, recomiendo que solo se modifiquen las opciones que pueden incidir de forma directa con el rendimiento de las consultas y posteriormente, después de haber analizado las consecuencias de otras opciones. Asimismo, recomiendo que se genere un laboratorio para validar el comportamiento del motor de base de datos, cuando se modifica algún valor y entonces generar el cambio ya probado en una instancia de producción, para mejorar el rendimiento.

No hay comentarios.:

Publicar un comentario