剧集
SQL Server 命令超时 - 应用程序超时 - 扩展事件关注
使用 ODBC 或 SqlClient 访问 SQL Server 中的数据时,如果某个时间段内没有来自服务器的响应(默认情况下为 30 秒),查询将被取消。 ODBC 或 SqlClient 将在将查询发送到 SQL Server 后启动计时器,如果在 30 秒内没有来自服务器的结果,则会取消查询,并将超时错误消息发送到应用程序。 如果网络数据包(包含查询结果)在 30 秒内收到,并且如果预期有其他网络数据包(在第一个网络数据包中无法容纳的其他行),则会重启计时器,如果在 30 秒内未收到下一个网络数据包,则会取消查询。
SQL 命令超时的常见原因是长时间执行的非最佳架构或低效查询,或者错过索引或锁定等待问题。 优化查询而不是增加 SQL 命令超时设置非常重要。
在视频中,演示了如何减少网络数据包大小来消除超时,本演示介绍了如何涉及网络数据包来重置计时器,并更好地了解超时。 更改网络数据包大小不是避免超时、优化非最佳架构或低效查询或添加索引或避免锁定等待是适当的解决方案。
若要确定导致 SQL 命令超时错误的命令,可以使用扩展事件并监视事件“sqlserver.attention”。 视频中使用的扩展事件脚本可在 www.sqlvideo.com/xevents 中使用。
在 SQL Server Management Studio 中,可以使用连接对话框中的“选项”更改 SQL 命令超时。 默认情况下,此值设置为“0”,这意味着不会超时。 执行查询或存储过程时,如果单击“取消”按钮(红色正方形),则会将相同的注意力发送到 SQL Server(如 SQL 命令超时)。 这反过来会在扩展事件中生成“sqlserver.attention”事件。
在下面的视频中,可以看到 SQL 命令超时的示例。 SQLTest 工具可模拟动手实验室,无需注册。 观看视频时,可以练习在线动手示例。
使用 ODBC 或 SqlClient 访问 SQL Server 中的数据时,如果某个时间段内没有来自服务器的响应(默认情况下为 30 秒),查询将被取消。 ODBC 或 SqlClient 将在将查询发送到 SQL Server 后启动计时器,如果在 30 秒内没有来自服务器的结果,则会取消查询,并将超时错误消息发送到应用程序。 如果网络数据包(包含查询结果)在 30 秒内收到,并且如果预期有其他网络数据包(在第一个网络数据包中无法容纳的其他行),则会重启计时器,如果在 30 秒内未收到下一个网络数据包,则会取消查询。
SQL 命令超时的常见原因是长时间执行的非最佳架构或低效查询,或者错过索引或锁定等待问题。 优化查询而不是增加 SQL 命令超时设置非常重要。
在视频中,演示了如何减少网络数据包大小来消除超时,本演示介绍了如何涉及网络数据包来重置计时器,并更好地了解超时。 更改网络数据包大小不是避免超时、优化非最佳架构或低效查询或添加索引或避免锁定等待是适当的解决方案。
若要确定导致 SQL 命令超时错误的命令,可以使用扩展事件并监视事件“sqlserver.attention”。 视频中使用的扩展事件脚本可在 www.sqlvideo.com/xevents 中使用。
在 SQL Server Management Studio 中,可以使用连接对话框中的“选项”更改 SQL 命令超时。 默认情况下,此值设置为“0”,这意味着不会超时。 执行查询或存储过程时,如果单击“取消”按钮(红色正方形),则会将相同的注意力发送到 SQL Server(如 SQL 命令超时)。 这反过来会在扩展事件中生成“sqlserver.attention”事件。
在下面的视频中,可以看到 SQL 命令超时的示例。 SQLTest 工具可模拟动手实验室,无需注册。 观看视频时,可以练习在线动手示例。
想提供反馈? 在此处提交问题。