Yesod:如何在终端或其他工具中记录查询时间?

Posted

技术标签:

【中文标题】Yesod:如何在终端或其他工具中记录查询时间?【英文标题】:Yesod: How to log query time in the terminal or other tool? 【发布时间】:2017-08-05 09:07:06 【问题描述】:

是否可以在 Yesod 中记录查询时间(执行)或通常在持久中?

我看到在调试模式下,我在终端中获取了带有参数的查询。但是我看不到它的执行总时间,因此我无法通过这种方法发现慢查询。

是否有某种现有的工具可以可视化请求的查询?而不是在终端中打印它们?类似于其他框架的“调试栏”?

【问题讨论】:

【参考方案1】:

ekg related packages 通常用于在 Yesod(或任何其他 Haskell Web 框架)中监视应用程序级别的统计信息。这是一个good guide 供您开始。但是对于从persistent 获取与查询相关的统计信息,我认为criterion 会更合适,但它是一个基准测试工具。流程是首先通过 ekg 识别各个处理程序的瓶颈,然后对处理程序中使用的函数进行标准基准测试,以找出真正的罪魁祸首。

【讨论】:

以上是关于Yesod:如何在终端或其他工具中记录查询时间?的主要内容,如果未能解决你的问题,请参考以下文章

是否有适用于 Haskell 的简单颜色启用记录器?

Yesod 持久示例

选择具有 yesod 持久性的列子集

Yesod 数据库持久记录访问

在 Yesod 中强制 Julius 重新插值或如何避免在客户端繁重的应用程序中对服务器进行双重标记

使用 UML 或其他建模语言解释 SQL 查询?