Opciones de configuración de conexiones al servidor
Introducción
Microsoft SQL Server permite el manejo de conexiones al servidor o instancia que se pueden clasificar como; simplemente conexiones y conexiones de servidor remoto.
Para el
caso de Conexiones se presentaran las referidas a las conexiones concurrentes,
el uso de un gobernador de consultas para el manejo de aquellas que tengan una
ejecución larga y las opciones de conexión que se utilizan de forma predeterminada;
en el caso de las conexiones de servidor remoto se indicará si se permiten las
conexiones remotas, el tiempo de espera que se permitirá en este tipo de
conexiones y si se requerirán transacciones distribuidas en la comunicación de servidor
a servidor.
Finalmente
las opciones que se verán en esta ocasión son:
Opción
|
Descripción
|
query governor cost limit
|
Costo
estimado máximo permitido por el gobernador de consulta
|
remote access
|
Permitir acceso remoto
|
remote proc trans
|
Crear
transacción DTC para procedimientos remotos
|
remote query timeout (s)
|
Tiempo de
espera de consulta remota
|
user connections
|
Número máximo
de conexiones de usuario permitidas
|
user options
|
Opciones de
usuario para las conexiones
|
Estas
opciones se han mantenido presentes desde hace tiempo en Microsoft SQL Server. Ya hemos
indicado que algunas opciones de configuración en Microsoft SQL Server pueden
identificarse como avanzadas, por lo que en caso de utilizar el procedimiento
almacenado de sistema sp_configure,
se debe habilitar la posibilidad de despliegue de dichas opciones avanzadas. Veamos
cómo configurar y como afecta cada una de estas opciones.
Opción query governor cost limit
La opción de configuración query governor cost limit especifica un límite superior en un período de tiempo en el que una consulta se puede ejecutar. Deber recordarse que el costo de una consulta se refiere al tiempo transcurrido estimado, en segundos, que se requiere para completar una consulta en una configuración de hardware específica.
Por
omisión, el valor predeterminado para esta opción es 0, lo que indica que el
gobernador de consultas está desactivado. Esto significa que todas las
consultas se ejecutarán sin límite de tiempo. Si el valor de esta opción de
configuración se especifica con un valor distinto de cero, no negativo, el
gobernador de consultas no permitirá la ejecución de consultas que tenga un
costo estimado que exceda ese valor indicado.
Como se ha
indicado, esa opción se especifica para qué aplique a todas las conexiones que
se lleven a cabo en la instancia, sin embargo, si se desea afectar únicamente una
conexión, puede utilizarse la sentencia SET QUERY_GOVERNOR_COST_LIMIT en una
base por conexión.
La opción
de configuración query governor cost
limit es una opción avanzada. Si se utiliza el procedimiento almacenado del
sistema sp_configure para establecer
la configuración, recuerde habilitar que se muestren las opciones avanzadas.
Después de ejecutar el comando RECONFIGURE el valor solicitado se aplica
inmediatamente sin necesidad de reiniciar los servicios de la instancia de Microsoft SQL
Server.
En el
siguiente ejemplo se establece el límite de 120 segundos, de tal manera que las
consultas que excedan el tiempo estimado especificado, no se ejecutaran.
EXEC sp_configure 'query governor cost limit', 120;
RECONFIGURE;
GO
Opción remote access
La opción
de configuración remote access
controla la ejecución de procedimientos almacenados desde servidores locales o
remotos en los que se ejecutan instancias de Microsoft SQL Server. Por omisión, el valor
predeterminado para esta opción es 1. Esto significa que se otorga permiso para
ejecutar los procedimientos almacenados locales desde servidores remotos o
procedimientos almacenados en servidores remotos desde el servidor local. Es importante indicar que ésta opción de configuración
solo se aplica a los servidores que se agregan mediante el uso del
procedimiento almacenado de sistema denominado sp_addserver, y se tiene compatibilidad
con versiones anteriores.
Si se
requiere evitar que los procedimientos almacenados locales se ejecuten desde un
servidor remoto o que los procedimientos almacenados en servidores remotos se
ejecuten en el servidor local, se debe establecer el valor de ésta opción en 0.
Nota:
Microsoft ha indicado que ésta opción de configuración se eliminará en
la próxima versión de SQL Server. Por lo que se solicita evitar su uso,
recomendando que se use sp_addlinkedserver en su lugar.
La opción
de configuración remote access es
una opción no avanzada. Si se utiliza el procedimiento almacenado del sistema sp_configure para establecer la
configuración, no necesita habilitar que se muestren las opciones avanzadas.
Después de ejecutar el comando RECONFIGURE el valor solicitado se aplica
inmediatamente sin necesidad de reiniciar los servicios de la instancia de Microsoft SQL
Server.
El
siguiente ejemplo, especifica que se inhabilitara la ejecución de los
procedimientos almacenados desde servidores locales o remotos.
EXEC sp_configure 'remote access', 0;
RECONFIGURE;
GO
Opción remote proc trans
La opción
de configuración remote proc trans nos
ayuda a proteger las acciones de un procedimiento de servidor a servidor a
través de una requerir una transacción del Coordinador de Transacciones Distribuidas
de Microsoft (MS DTC). Es importante mencionar que deben permitirse las
conexiones de servidor remoto antes de poder establecer este valor de la opción
de configuración. Por omisión el valor de esta opción de configuración se
establece en 0, indicando que no se requiere una transacción coordinada por MS
DTC.
Para
proporcionar una transacción distribuida coordinada por MS DTC que proteja las
propiedades ACID (atómicas, consistentes, aisladas y duraderas) de las
transacciones debe establecerse el valor de la opción de configuración remote proc trans en 1. De esta forma,
las sesiones iniciadas después de configurar esta opción de configuración en 1
heredan la configuración establecida.
Nota:
Microsoft ha indicado que ésta opción de configuración se eliminará en
la próxima versión de SQL Server. Por lo que se solicita evitar su uso,
recomendando que se use sp_addlinkedserver en su lugar.
La opción
de configuración remote proc trans es
una opción no avanzada. Si se utiliza el procedimiento almacenado del sistema sp_configure para establecer la
configuración, no necesita habilitar que se muestren las opciones avanzadas.
Después de ejecutar el comando RECONFIGURE el valor solicitado se aplica
inmediatamente sin necesidad de reiniciar los servicios de la instancia de Microsoft SQL
Server.
El
siguiente ejemplo, indica que se establezca la habilitación de la ejecución de
los procedimientos almacenados desde servidores locales o remotos y la necesidad
de transacciones coordinadas por MS DTC.
EXEC sp_configure 'remote access', 1;
EXEC sp_configure 'remote proc trans', 1;
RECONFIGURE;
GO
Opción remote query timeout (s)
La opción
de configuración remote query timeout
especifica cuánto tiempo puede tomar una operación remota antes de que supere
el tiempo de espera, indicado en segundos. Por omisión, el valor predeterminado
para esta opción de configuración es 600 segundos, por lo tanto, se permite una
espera de 10 minutos.
Cabe
indicar que éste valor de la opción de configuración se aplica a una conexión
saliente, esto es, iniciada por el motor de base de datos como una consulta
remota. El valor de la opción de configuración no tiene ningún efecto en las
consultas que son recibidas por el motor de base de datos. Se debe indicar que
para poder establecer el valor de esta opción de configuración, es requerido
que las conexiones de servidor remoto se halla habilitado antes de poder
establecer el valor de esta opción de configuración.
Para cambiar
el valor de la opción de configuración que desactive el tiempo de espera, se
deberá establecer el valor de la opción de configuración en 0. De esta manera,
una consulta esperará el tiempo necesario hasta que se complete.
La opción
de configuración remote query timeout
es una opción no avanzada. Si se utiliza el procedimiento almacenado del
sistema sp_configure para establecer
la configuración, no necesita habilitar que se muestren las opciones avanzadas.
Después de ejecutar el comando RECONFIGURE el valor solicitado se aplica
inmediatamente sin necesidad de reiniciar los servicios de la instancia de Microsoft SQL
Server.
El
siguiente ejemplo establece el valor de la opción de configuración en 0,
indicado que se deshabilitara el tiempo de espera.
EXEC sp_configure 'remote query timeout', 0;
RECONFIGURE;
GO
Opción user connections
La opción de configuración user connections nos permite especificar la cantidad máxima de conexiones de usuario simultáneas permitidas en una instancia de Microsoft SQL Server. Si bien la cantidad real de conexiones de usuario que son permitidas depende de la versión de Microsoft SQL Server que esté utilizando, también depende de los límites de las aplicaciones y el hardware que las contiene. Microsoft SQL Server permite establecer hasta un máximo de 32,767 conexiones de usuario.
Debe
considerarse que se trata de una opción de configuración dinámica (se lleva a
cabo una autoconfiguración), por lo que Microsoft SQL Server ajusta automáticamente el
número máximo de conexiones de usuario según vaya siendo necesario, hasta alcanzar
el valor máximo permitido. En la mayoría de los casos, no tiene que cambiar el
valor de esta opción. Cabe mencionar que el valor predeterminado de esta opción
de configuración es 0, esto significa que se permiten hasta 32,767 conexiones
de usuario como máximo.
El uso de
esta opción de configuración user
connections ayuda a evitar sobrecargar el servidor con demasiadas
conexiones simultáneas. Es posible estimar la cantidad de conexiones según los
requisitos del sistema y del usuario que la utilizara. Generalmente en un
sistema que es usado por muchos usuarios, cada usuario no suele requerir una
conexión única, estas conexiones se pueden compartir entre los usuarios. Sin embargo,
los usuarios que ejecutan aplicaciones a través de OLE DB requieren una
conexión para cada objeto de conexión abierto, y los usuarios que ejecutan
aplicaciones Open Database Connectivity (ODBC) necesitan una conexión para cada
manejador de conexión activo en la aplicación, y los usuarios que ejecutan
aplicaciones DB-Library necesitan una conexión para cada proceso iniciado que
llama a la función dbopen DB-Library.
Nota:
Si debe modificar el valor de esta opción de configuración, no configure
un valor demasiado alto, ya que cada conexión tiene una sobrecarga,
independientemente de si la conexión se está utilizando. Si en algún momento se
supera la cantidad máxima de conexiones de usuario, se recibirá un mensaje de
error y no podrá conectarse hasta que haya otra conexión disponible.
La opción
de configuración user connections es
una opción avanzada. Si se utiliza el procedimiento almacenado del sistema sp_configure para establecer la
configuración, se necesita habilitar que se muestren las opciones avanzadas.
Después de ejecutar el comando RECONFIGURE el valor solicitado se aplica cuando
se reinicien los servicios de la instancia de Microsoft SQL Server.
El
siguiente ejemplo establece el máximo de 325 conexiones de usuario en la
instancia.
EXEC sp_configure 'user connections', 325;
RECONFIGURE;
GO
Una vez que
se aplique el cambio, debe reiniciar los servicios de la instancia de Microsoft SQL
Server, para que el valor de esta opción de configuración pueda ser efectivo.
Opción user options
La opción
de configuración user options permite
especificar los valores predeterminados globales para todos los usuarios. La tabla que se muestra continuación establece
una lista de opciones para el procesamiento de consultas que se indican como predeterminadas
en la duración de la sesión de trabajo de un usuario. La opción de
configuración user options permite
cambiar los valores predeterminados de las opciones de la instrucción SET, en caso
de que la configuración predeterminada del servidor no sea la adecuada.
A través de
la instrucción SET, un usuario puede anular los valores predeterminados, los
cuales son establecidos para cada nuevo inicio de sesión de usuario. Cuando se
cambia el valor de la opción de configuración de user options, las nuevas sesiones de inicio de sesión usarán la
nueva configuración; las sesiones de inicio de sesión actuales no se afectarán.
La tabla
con la lista de opciones de se procesamiento se observa a continuación:
Nombre
|
Valor
|
Configuración
|
Descripción
|
1
|
DISABLE_DEF_CNST_CHK
|
Controla la
comprobación de las restricciones interinas o diferidas.
|
|
implicit
transactions
|
2
|
IMPLICIT_TRANSACTIONS.
|
Para conexiones de
biblioteca de red dblib, controla si una transacción se inicia implícitamente
cuando se ejecuta una instrucción. La
configuración IMPLICIT_TRANSACTIONS no tiene ningún efecto en las conexiones
ODBC o OLEDB
|
cursor close on
commit
|
4
|
CURSOR_CLOSE_ON_COMMIT
|
Controla el
comportamiento de los cursores después de que se haya realizado una operación
de confirmación.
|
ansi warnings
|
8
|
ANSI_WARNINGS
|
Controla el truncamiento
y NULL en advertencias agregadas.
|
ansi padding
|
16
|
ANSI_PADDING
|
Controla el
relleno de las variables de longitud fija.
|
ANSI NULLS
|
32
|
ANSI_NULLS
|
Controla el manejo NULL
cuando se usan operadores de igualdad.
|
arithmetic
abort
|
64
|
ARITHABORT
|
Termina una
consulta cuando se produce un error de desbordamiento o de división por cero
durante la ejecución de la consulta.
|
arithmetic
ignore
|
128
|
ARITHIGNORE
|
Devuelve NULL cuando
ocurre un error de desbordamiento o de división por cero durante una
consulta.
|
quoted
identifier
|
256
|
QUOTED_IDENTIFIER
|
Diferencia entre comillas simples y dobles al evaluar
una expresión.
|
no count
|
512
|
NO COUNT
|
Desactiva el mensaje
devuelto al final de cada instrucción que indica cuántas filas se vieron
afectadas.
|
ANSI NULL
Default On
|
1024
|
ANSI_NULL_DFLT_ON
|
Modifica el
comportamiento de la sesión para usar compatibilidad ANSI para la capacidad
de anulación. Las
columnas nuevas definidas sin anulabilidad explícita se definen para permitir
nulos.
|
ANSI NULL
Default Off
|
2048
|
ANSI_NULL_DFLT_OFF
|
Modifica el
comportamiento de la sesión para no utilizar la compatibilidad ANSI para
nulability. Las
columnas nuevas definidas sin anulabilidad explícita no permiten nulos.
|
concat null
yield null
|
4096
|
CONCAT_NULL_YIELDS_NULL
|
Devuelve NULL
al concatenar un NULL con una cadena.
|
numeric round
abort
|
8192
|
NUMERIC_ROUNDABORT
|
Genera un error cuando
ocurre una pérdida de precisión en una expresión.
|
xact abort
|
16384
|
XACT_ABORT
|
Revierte una
transacción si una instrucción de Transact-SQL genera un error de tiempo de
ejecución.
|
Cabe
mencionar que no todos los valores de configuración son compatibles entre sí. Podemos
mencionar que, los valores de ANSI_NULL_DFLT_ON y ANSI_NULL_DFLT_OFF no pueden ser
configurados al mismo tiempo. Es importante indicar que las posiciones de bits
en las opciones de usuario son idénticas a la variable global @@OPTIONS. Cada
conexión tiene su propia función @@OPTIONS, representando el entorno de
configuración. Al iniciar sesión en una instancia de Microsoft SQL Server, un usuario
recibe un entorno predeterminado que asigna el valor de las opciones del
usuario actual a @@OPTIONS. La ejecución de las sentencias SET para las
opciones de usuario afecta el valor correspondiente en la función @@OPTIONS de
la sesión. Todas las conexiones creadas después de cambiar esta configuración
reciben el nuevo valor.
Por
defecto, las siguientes opciones se presentan en las conexiones de usuario:
Options Enabled
|
Description
|
CONCAT_NULL_YIELDS_NULL
|
Devuelve NULL
al concatenar un NULL con una cadena.
|
ANSI_NULL_DFLT_ON
|
Las columnas nuevas
definidas sin anulabilidad explícita se definen para permitir nulos.
|
QUOTED_IDENTIFIER
|
Diferencia entre comillas simples y dobles al evaluar
una expresión.
|
ARITHABORT
|
Termina una consulta
cuando se produce un error de desbordamiento o de división por cero durante
la ejecución de la consulta.
|
ANSI_NULLS
|
Controla el
manejo NULL cuando se usan operadores de igualdad.
|
ANSI_PADDING
|
Controla el manejo NULL
cuando se usan operadores de igualdad.
|
CURSOR_CLOSE_ON_COMMIT
|
Controla el
comportamiento de los cursores después de que se haya realizado una operación
de confirmación.
|
IMPLICIT_TRANSACTIONS
|
Para conexiones de
biblioteca de red dblib, controla si una transacción se inicia implícitamente
cuando se ejecuta una instrucción. La
configuración IMPLICIT_TRANSACTIONS no tiene ningún efecto en las conexiones
ODBC o OLEDB
|
DISABLE_DEF_CNST_CHK
|
Controla la
comprobación de las restricciones interinas o diferidas.
|
La opción
de configuración user options es una
opción no avanzada. Si se utiliza el procedimiento almacenado del sistema sp_configure para establecer la
configuración, no necesita habilitar que se muestren las opciones avanzadas.
Después de ejecutar el comando RECONFIGURE el valor solicitado se aplica
inmediatamente sin necesidad de reiniciar los servicios de la instancia de Microsoft SQL
Server.
El
siguiente ejemplo cambia el valor de la opción de configuración user options para establecer ansi warnings, sin afectar los otros
valores establecidos.
EXEC sp_configure 'user options', 8;
RECONFIGURE;
GO
Comentarios
Como se ha observado, conocer las opciones de configuración de conexiones es responsabilidad de un Microsoft SQL Server Database Administrator, es importante indicar que los efectos de modificar una opción de esta sección, solo aplica para las conexiones locales y de servidores remotos.
En este
punto podemos decir que se han visto cada una de las opciones de configuración relativas
a las conexiones de nivel instancia de servidor, estas mismas opciones aparecen
en la pestaña de conexiones de la ventana de propiedades del servidor, como se
puede observar en la siguiente imagen:
No hay comentarios.:
Publicar un comentario