近期发布的ORM Profiler 1.5 加入了对Entity Framework 6 与异步操作的支持。另外,当数据库连接或命令的数量超过了预定的阀值时,它还能够提供实时的分析。并且当事务处理时间超过预定阀值时,它也能够提供相应的分析报告。
除此之外,新版本也为当前已有的一些特性加入了实时分析功能,包括以下场景:数据库命令执行时间超过某个预定的参数;某个异常发生;某个结果集异常庞大;或者正在执行的SQL 语句异常庞大。另外,当某个时间段内的命令数量过多时,或者某个.NET 调用者对某个命令的执行时间超过预定阀值时,新版本也能够为这些场景进行实时的测试。
ORM Profiler 1.5 版本加入了客户端结果集获取及异步操作的功能,它还为计划获取(plan retrieval)使用了快速打开的数据库连接,它还支持将各种配置保存到磁盘中。另外,在层次结构图中,时间聚合将被聚合在完整的树型结点中,而不是仅仅聚合在它的父结点下。
InfoQ 与 Frans Bourma 进行了一番对话,以了解 ORM Profiler 1.5 版本的更多内容。
InfoQ:ORM Profiler能够为开发者带来什么好处?
ORM Profiler 能够让你观察到用户的数据访问代码在数据库中会实际执行怎样的查询,这些查询需时多久,结果集有多大,并且调用结果集需要多长时间,诸如此类。它还会分析 ADO.NET 的使用模式,以及使用了哪些查询。一旦发生了典型的 SELECT N+1 情况造成大量的查询被执行,或者某个查询返回了数量极其庞大的结果,它就会发出一个提示警告。
如果开发者对 ORM 与数据访问代码在数据库中实际做些了什么事没有一个深入的理解,那么应用程序的表现就有可能会低于平均值,并且随着时间的推移,当应用量增长时,要想进行良好的扩展也比较困难。通过查看 CRM Profiler 提供的信息,开发者就可以回头检查那些发生警告的相关查询代码,并根据错误警告中的建议修复问题。
InfoQ:ORM Profiler能够提升生产力吗?
ORM Profiler 如同其它 profiler 一样是一个诊断工具,它能够突显出应用程序的瓶颈所在,以及表现糟糕的那些部分,因此对它的使用时机主要是在代码编写完成之后。它不会让开发者的代码写得更快,但在它的帮助下开发者了解了交付给客户的代码的具体表现、并且已经经过了完整的分析, 交付给客户的软件也具有更好的质量。
当然了,如果某个开发者的代码中的问题被 ORM Profiler 所发现,那么他很可能不会再范相同的错误了,因为他已经了解了某段代码会产生的效果 / 结果了。
InfoQ:你能给我们分享一下 ORM Profiler未来的路线图吗?
我们已经在 ORM Profiler 1.5 版本中加入了大部分想要的特性了,目前尚未决定在下一版本中会加入哪些新特性。
查看英文原文: ORM Profiler v1.5 with Entity Framework 6 and Async Support
评论