首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Azure-Sql数据库上运行到"Master“的连接

在Azure-Sql数据库上运行到"Master“的连接
EN

Stack Overflow用户
提问于 2018-06-12 12:43:06
回答 1查看 125关注 0票数 0

我使用Azure-Server。把我的数据库托管在那里,并在上面使用实体框架(C#)。我使用标准S3层。此定价层限制为200到DB.的并发连接。

我的系统工作在微服务架构中。我的每个服务都有到DB的开放连接。

这就是我的连接字符串的样子

metadata=res:///Model1.csdl|res:///Model1.ssdl|res://*/Model1.msl;provider=System.Data.SqlClient;provider connection string="Data Source=mydb.database.windows.net;Initial Catalog=production;Persist Security Info=True;User ID=user@my;Password=mypass;Pooling=true;Max Pool Size=2;Enlist=false;

我不时地监视到我的数据库的连接数量。

通过使用

代码语言:javascript
复制
SELECT DB_NAME(eS.database_id) AS the_database, eS.is_user_process, COUNT(eS.session_id) AS total_database_connections
    FROM sys.dm_exec_sessions eS 
    GROUP BY DB_NAME(eS.database_id)
        , eS.is_user_process
    ORDER BY 1, 2;
    END

这给了我一个结果:

如果我把所有的连接加起来,我就得到215个连接的结果。这可能会与我不时发现的一些连接限制保持一致。

  1. 问题是,“非用户进程”到“主”的所有这些连接是什么?(111个连接)是谁问它们的?谁需要他们?怎么找到?
  2. 作为200个连接限制的一部分,来自上面的所有这些连接是否都是计数器的?

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-12 20:44:14

您所看到的is_user_process =0的会话是由Azure监视和警报启动的会话,它们不被视为会话层限制的一部分,它们可以安全地被忽略。2017年晚些时候,数据库引擎团队删除了隐藏这些类型的后端会话/连接的过滤器。删除此锁定的原因是为了提高连接到数据库的会话的可见性。有关更多信息,请阅读论坛帖子上的这里 Devin Rider文章。

请只监视您的用户数据库的会话数量,而不考虑那些后端会话。

代码语言:javascript
复制
SELECT *
FROM sys.dm_exec_sessions s, sys.databases d
WHERE s.database_id =d.database_id
and d.name='youruserdatabase'
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50817553

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档