技术开发 频道

讲解设计应用程序时避免阻塞的八个准则

SQL Server 本质上是受客户端应用程序操纵的傀儡。客户端应用程序对服务器上获取的锁几乎有完全的控制(并对锁负责)。虽然 SQL Server 锁管理器自动使用锁保护事务,但这受客户端应用程序发出的查询类型和对结果的处理方式的直接鼓动。因此,大多数阻塞问题的解决方案都涉及检查客户端应用程序。

阻塞问题常要求检查应用程序提交的 SQL 语句本身,以及检查与连接管理、所有结果行的处理等有关的应用程序行为本身。如果开发工具不允许显式控制连接管理、查询超时、结果处理等,阻塞问题可能得不到解决。

设计应用程序以避免阻塞的准则包括:

◆不要使用或设计使用户得以填写编辑框的应用程序,编辑框会生成长时间运行的查询。例如,不要使用或设计提示用户输入的应用程序,允许某些字段保留空白或允许输入通配符。这可能导致应用程序提交运行时间过长的查询,从而导致阻塞问题。

◆不要使用或设计使用户得以在事务内输入内容的应用程序。

 ◆允许取消查询。

 ◆使用查询或锁定超时,防止失控查询和避免分布式死锁。

◆立即完成提取所有结果行。

 ◆使事务尽可能简短。

◆显式控制连接管理。

 ◆在所预计的并发用户全负荷下对应用程序进行应力测试。

0
相关文章