我从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};密码= {your_password}; Pooling = False; MultipleActiveResultSets = False; Encrypt = True; TrustServerCertificate = False;连接超时= 30;
这让我有点困惑,因为我目前的理解是Pooling=False
不推荐。
因此,默认情况下,连接到Azure的字符串会禁用连接池,还是因为我已将数据库放入弹性池?
答案 0 :(得分:1)
Azure SQL确实支持标准数据库和弹性池中的连接池。我想如果你看到这个,那么它可能没有意图,因为默认情况下我的帐户都没有显示此设置。您可以在主网站上查看azure connections的指南。与现场服务器相反,由于公共互联网的延迟和性质,您可能会遭受更多封闭连接,但是在更高版本的ado.net和其他连接框架中,transient fault handling可以减轻这种影响。该技术允许重试被丢弃或中断的连接,而无需程序直接响应。有效管理连接的程序可能会看到连接池的一些改进。
关于MARS(多个活动结果集),这是一个非常繁琐的协议,虽然你可以打开它,但它会影响延迟和响应时间。建议不要将其与Azure SQL一起使用。