为什么默认的Azure数据库连接字符串具有Pooling = False

cuo*_*gle 7 azure azure-sql-database

我从Azure数据库复制了连接字符串,如下所示:

在此输入图像描述

我默认看到Azure数据库连接字符串有 Pooling=False

Server = tcp:{your_server} .database.windows.net,1433; Data Source = ra-labs-01.database.windows.net; Initial Catalog = {your_database}; Persist Security Info = False; User ID = {your_username} ; Password = {your_password}; Pooling = False; MultipleActiveResultSets = False; Encrypt = True; TrustServerCertificate = False;连接超时= 30;

这让我有点困惑,因为我目前的理解Pooling=False是不推荐的.

因此,默认情况下,连接到Azure的字符串会禁用连接池,还是因为我已将数据库放入弹性池?

Bry*_*rts 2

Azure SQL 支持标准数据库和弹性池中的连接池。我想如果您看到这个,那么这可能不是故意的,因为我的帐户默认情况下都没有显示此设置。您可以在主网站上查看天蓝色连接的指南。与现场服务器相反,由于公共互联网的延迟和性质,您可能会遭受更封闭的连接,但是,通过更高版本的 ado.net 和其他连接框架中的瞬态故障处理可以缓解这种情况。该技术允许重试已断开或中断的连接,而无需程序直接响应。有效管理连接的程序可能会看到连接池的一些改进。

对于 MARS(多个活动结果集),这是一个非常繁琐的协议,虽然您可以打开它,但它会影响延迟和响应时间。不建议将此与 Azure SQL 一起使用。