【发布时间】:2009-12-30 21:23:53
【问题描述】:
我使用面向方面的编程 (PostSHArp) 创建了一个自定义 ORM 工具的原型,并实现了持久性无知(在编译时之前)。现在我试图找出与使用纯 DataReader 和 ADO.NET 相比它引入了多少开销。我在 MS SQL Server 2008 和 MySQL Community Edition 中做了一个测试用例——插入、读取、删除数据(大约 1000 条记录)。我使用纯 ADO.NET 和我的自定义工具多次运行此测试。
我预计结果将取决于许多因素 - 内存、交换、CPU、其他进程,因此我运行了多次测试 (20-40)。但结果真的出乎意料。他们只是在这些案例之间差异太大。如果只有一些极端值,我可以忽略它们(可能会发生交换或类似的事情),但它们是如此不同,以至于我确信我不能相信这种测试。几乎有一半的时间,我的 ORM 的性能比纯 ADO.NET 好 10%,其他时候是 -10%。
有什么方法可以使这些测试可靠吗?我没有一台功能强大且内存充足的计算机,但也许我可以让 MS SQL 和 MySQL 或 ADO.NET 在这些测试中尽可能保持一致?那么记录计数呢?哪个更可靠,使用少量记录并运行更多次或其他方式?
【问题讨论】:
标签: sql-server performance testing orm ado.net