gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 05:48:32 25 4
gpt4 key购买 nike

我使用 Azure-Sql-Server。在那里托管我的数据库并在其之上使用 Entity Framework (C#)。我使用Standart S3层。 此定价层仅限于 200 个数据库并发连接。

我的系统采用微服务架构。我的每个服务都与数据库有开放的连接。

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

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;"

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

通过使用

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

这给了我结果:

enter image description here

如果我对所有连接进行求和,我会得到总共 215 个连接的结果。这可能会符合我不时发现的一些连接限制。

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

谢谢!

最佳答案

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

请仅监控您的用户数据库的 session 数,不要考虑那些后端 session 。

SELECT *
FROM sys.dm_exec_sessions s, sys.databases d
WHERE s.database_id =d.database_id
and d.name='youruserdatabase'

关于c# - 在 Azure-Sql 数据库上运行到 "Master"的连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50817553/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com