2009-09-30 120 views
17

Estoy usando SQL Server 2008 Enterprise + C# + ADO.Net + .Net 3.5. Estoy usando sp_who2 o sys.dm_exec_connections para encontrar números de conexiones activas (avíseme si mi método para buscar números de conexión activos es incorrecto). Para algunas aplicaciones pesadas de consumo de bases de datos, puedo encontrar incluso el número de conexiones activas> 1000.¿límite de conexión de conexión de SQL Server?

Me pregunto si hay alguna limitación límite superior de los números de conexión activos de SQL Server?

gracias de antemano, George

Respuesta

25

Es un, configuración por ejemplo, no por base de datos. Puede verificar el valor actual en sys.configurations y cambiarlo con sp_configure. La opción es relevante user connections:

Utilice la opción conexiones de usuario a especificar el número máximo de conexiones de usuario simultáneas permitidas en Microsoft SQL Server. El número real de conexiones de usuario permitidas también depende de la versión del servidor SQL que esté utilizando y los límites de su aplicación o aplicaciones y el hardware . SQL Server permite un máximo de de 32,767 conexiones de usuario.

1000 de conexiones no es un número excesivamente alto. En sistemas de gama alta, el servidor puede escuchar en múltiples puertos affinitized to NUMA nodos y tener cientos y miles de clientes conectados a cada nodo.

Tenga en cuenta que el número de conexiones es diferente del número de solicitudes , es decir. conexiones que ejecutan activamente algo, sys.dm_exec_requests. Cada solicitud requiere uno o más trabajadores y la cantidad de trabajadores se configura con la opción max worker threads.

+0

Tan excelente, déjame estudiar por un tiempo. :-) – George2

+1

Yo también :) Siempre daba por hecho que las ranuras de 32k + usuarios nunca serían una preocupación, pero estas particularidades son realmente buenos detalles. –

+0

Gracias Nissan, estudié el siguiente enlace, http://msdn.microsoft.com/en-us/library/ms143432.aspx, mi mayor confusión es: ¿cuál es la diferencia entre "Conexiones por cliente" y "Conexiones de usuario"? "¿?" – George2

3

http://msdn.microsoft.com/en-us/library/ms143432.aspx

32.767 es el límite máximo por base de datos.

lo haría como sigue:

SELECT 
    COUNT(*) 
FROM 
    master.dbo.syslockinfo 
WHERE 
    DB_NAME(rsc_dbid) = 'your_database_name' 
+0

¿Es correcto el método de búsqueda del número de conexión activo? En caso afirmativo, ¿quiere decir que el número que encuentro nunca debe exceder 32,767? – George2

+0

Solo quiero asegurarme de que el número de conexión que encuentro es el mismo que dijiste. :-) – George2

+0

En su documento referido de MSDN, mi mayor confusión es: ¿cuáles son las diferencias entre "Conexiones por cliente" y "Conexiones de usuario"? – George2

Cuestiones relacionadas