gpt4 book ai didi

c# - 创建新的数据库连接到 SQL 需要多长时间

转载 作者:太空狗 更新时间:2023-10-30 00:04:07 24 4
gpt4 key购买 nike

任何人都可以为我提供从 C# 建立到 SQL 的新数据库连接需要多长时间的大致时间(以毫秒为单位)。 IE。当连接池必须创建新连接时,开销是多少。

最佳答案

这取决于:

  • 是时候将 DNS 名称解析为 IP
  • 打开 TCP 套接字或网络管道(在其他 TCP 套接字之上)的时间:通常为 3 个 IP 数据包
  • 如果需要加密,则需要时间对 SSL/TLS 进行握手:如果 SSL/TLS key 信息未被重复使用(即,一个 RSA 私钥访问,这是非常昂贵的),则大约 5 次往返加上引导主 key 交换的时间
  • 是时候为 SQL auth 验证 SQL 密码了(我相信有 2 次往返)
  • 为集成身份验证验证 NTLM/Kerberos 的时间(1 次往返以协商 SPNEGO,如果缺少 Curb 票则需要 5-6 次往返,如果票存在则需要 1 次往返,如果选择 NTLM 则需要 4-5 次往返)
  • 授权登录的时间(查找元数据,根据登录 token 评估权限)
  • 运行任何登录触发器的可能时间
  • 启动连接的时间(与初始 SET session 填充批处理的 1 次往返)

一些更深奥的时间:

  • 如果请求中指定了打开自动关闭数据库的时间(可能包括恢复,通常不包括)
  • 如果使用了 AtachDBFile 并且 db 尚未附加,则附加数据库的时间
  • 是时候为 SQL 2005 RANU 启动“用户”实例了。那大约是 40-60 秒。

通常您每秒可以创建大约 10-15 个新连接。如果出现问题(例如 DNS 查找问题、IPsec 发布、SSL 问题、Kerberos 问题),每次连接很容易会增加 10-15 秒。

相比之下,现有的池化连接只需执行 sp_resetconnection(即现有 channel 上的一次往返),必要时甚至可以避免这种情况。

关于c# - 创建新的数据库连接到 SQL 需要多长时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2188611/

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