在生产之前,您如何在可能的 sql server 死锁上测试您的软件?

Posted

技术标签:

【中文标题】在生产之前,您如何在可能的 sql server 死锁上测试您的软件?【英文标题】:How do you test your software on possible sql server deadlocks before production? 【发布时间】:2012-03-06 06:10:39 【问题描述】:

假设您开发了一个读取/写入/更新/删除 SQL Server 数据库中数据的应用程序。

在将其投入生产之前,您会运行哪些测试来查看所有可能的 sql 死锁?

【问题讨论】:

【参考方案1】:

您需要遵循测试的基础知识。 单元测试

积极的测试用例,让您入门的简单测试用例 否定测试用例,添加未通过验证的不良数据,并检查其是否已写入 边界(不要将其与负数混淆),检查所有限制、验证、0、maxint、minint。对于gps,检查+90度、-90度、-180度……基本上测试没有你想象的那么容易。正确地做事比编码更痛苦。

以上所有测试都应该关注代码覆盖(路径覆盖,如果你有胆量的话:))。

是的,您需要从系统中测试添加、更新、删除异常。每个表、每个关系的每个连接都执行此操作。

可扩展性

每张表,你需要从不同的客户端添加数据,增加客户端的数量,直到你打破。它必须打破。这就是您可以扩展到最大的范围。

性能

本质上是比较的。您无法单独测试性能。它必须在构建之间、竞争产品之间(完全相同的数据、完全相同的硬件、完全相同的场景)

压力

从各个方面添加大量数据,并发(这里不要使用scale-ability max,意图是“不”打破,而是要找出它是否可以处理大量数据,用户,并发。

可靠性

在这里,使用您的客户正在寻找的普通数据和普通场景。并运行超过 48/72 小时。 gc 的机器人应该发疯,内存泄漏不应该继续增长,性能应该是“一致的”(不必是最好的)。但不应随着时间的推移“下降”。寻找“随着时间变坏的事情”。

【讨论】:

这些测试将发现的不仅仅是死锁。

以上是关于在生产之前,您如何在可能的 sql server 死锁上测试您的软件?的主要内容,如果未能解决你的问题,请参考以下文章

在生产箱上部署 Sql Server Reporting Services 报告

如何从 SQL Server 中的存储过程中检索参数列表

如何解决 SQL Server 2000 中的连接问题

安全模式下windows server 2003中sql server服务如何启动

SQL Server 无法开始连接?

几个技巧解析SQL Server群集的难题[2]