sql-server – 最大用户连接数
在SQL Server 2012尺度版中,我知道最大用户毗连数为32,767.假如我正朝着这个数字迈进,我应该怎么做DBA? 今朝有30,000个用户毗连,估量这个数字会增进. 办理要领跨SQL Server版本和版本的 maximum number of connections是32,767.您可以通过查察以下内容来确定SQL Server当前具有的毗连数: SELECT ConnectionStatus = CASE WHEN dec.most_recent_sql_handle = 0x0 THEN 'Unused' ELSE 'Used' END,CASE WHEN des.status = 'Sleeping' THEN 'sleeping' ELSE 'Not Sleeping' END,ConnectionCount = COUNT(1) FROM sys.dm_exec_connections dec INNER JOIN sys.dm_exec_sessions des ON dec.session_id = des.session_id GROUP BY CASE WHEN des.status = 'Sleeping' THEN 'sleeping' ELSE 'Not Sleeping' END,CASE WHEN dec.most_recent_sql_handle = 0x0 THEN 'Unused' ELSE 'Used' END; 假如涉及来自上述查询的已行使和未行使毗连之间的比率,则很也许毗连池由毗连随处事器的客户端应用措施启用,而且这些毗连未被有用行使.您也许但愿闪开拓职员修改这些应用措施的毗连字符串,以限定毗连池的巨细,并确保它们正确地处理赏罚毗连.假如毗连未正确处理赏罚,只要客户端应用措施正在运行,它们将保持打开状态. 假如您感受出格狂热,而且必要挣脱最近没有执行任何操纵的全部毗连(无论它们当前是否正在执行事变),您可以运行以下代码,这将天生一个会话列表,可以被杀死.您必要将天生的呼吁复制并粘贴到新的SSMS窗口中以现实运行呼吁.为了以防万一,我还提议你的简历是最新的. DECLARE @cmd NVARCHAR(MAX); SET @cmd = ''; SELECT @cmd = @cmd + CASE WHEN @cmd = '' THEN '' ELSE CHAR(13) + CHAR(10) END + 'KILL ' + CONVERT(VARCHAR(MAX),dec.session_id) + ';' FROM sys.dm_exec_connections dec WHERE dec.most_recent_sql_handle = 0x0; 通过在多个SQL Server节点之间分片数据,可以线性扩展高出32,767的毗连数.可是,在我看来,行使分片作为绕过毗连数限定的要领相同于行使原子弹杀死蜘蛛.它会杀死蜘蛛,但你也许会在一天竣事时碰着更大的题目.更不消说制造原子弹很是难了,更不消嗣魅正确实现分片了. (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |