在Google BigTables(和其他集成数据库)上进行性能测试


17

有哪些有效的方法可以对数据库操作执行程序性能测试,尤其是在数据库本身不提供专用工具的环境中?

例如,在Google App Engine中,整个页面加载被评估为一项操作,其中可能包括特定的数据库操作。SQLite和其他集成DB中也可能出现此问题。由于很难完全抽象出需要测试的(等效)选择和插入内容,是否有推荐的数据库工具对这些类型的查询执行更彻底的诊断?


您可以直接访问相关数据库吗?
Stingervz 2011年

是的,我是编写应用程序的人。尽管应用程序性能是一个不同的问题,但在我编写的讨厌的查询中却遇到了一些非常严重的性能问题。
Brian Ballsun-Stanton

有时候,一双眼睛比查询分析器更好。......(不是经常这样)
jcolebrand

@Brian我认为使用此类问题在Stackoverflow上会做得更好,因为它比DBA更具编程性。
IamIC

@IanC Drat。我试图获得更大的参考底图,而不是整体表现。但是,如果人们认为这个问题不合适,我将删除。(我还试图确保该站点始终不是oracle / sql-server / mysql)
Brian Ballsun-Stanton 2011年

Answers:


1

在我看来,您的问题似乎是您正在尝试测试基础数据库中未很好支持的性能指标。这使得比较整个系统的性能非常困难,因为底层方法非常不同。我认为不可能将苹果与苹果进行比较,就像我认为您不能将ORDBMS类型与RDBMS类型的方法进行苹果与苹果的比较一样。性能方面的关注点太过不同,如果Stonebraker正确地指出,针对TPC-C测试优化ORDBMS没能做到这一点,那么对于相距更远的系统而言,这将是不可能的。(不过,我认为他就在那里,仅在ORDBMS功能起作用的地方。)

我认为您应该说实话的是看您将如何使用每个系统,并基于对每个系统所采用的方法来构建基准工具。然后,您至少可以针对该工作流程说基准测试显示特定内容。我不知道您如何概括。您可以进一步在分析器中运行它,以获取有关在各种引擎上进行测试所花费的时间的更多信息。

但是,在最佳情况下,很难使数据库基准测试变得有意义,并且当您比较不同的系统时,就不可能一概而论。


0

Appstats是衡量App Engine性能的关键工具。它将在图形图表中显示每个RPC所用的时间,包括数据存储,内存缓存,urlfetch和邮件请求。通常,这些请求显示为“楼梯”,其中每个请求都从上一个请求结束的点开始,在下一行。

如果在ndb中使用高级异步请求,则实际上可以看到请求并行发生。

对于查看时间花在哪里以及如何优化查询,该工具为我提供了极大的帮助。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.