gpt4 book ai didi

sql-server - 如何停止显示 "duplicate"SQL 查询警告参数不同的 MiniProfiler?

转载 作者:行者123 更新时间:2023-12-03 18:23:47 24 4
gpt4 key购买 nike

我正在使用 MiniProfiler 检查 NPoco 对 SQL Server 做了什么,但我注意到即使 SQL 参数具有不同的值,它也会报告重复的查询。

例如:如果我通过 ID 从数据库中获取一个字符串,我可能会调用:

SELECT * FROM PageContent WHERE ID=@ID

...在同一页面上两次,使用两个不同的 ID,但 MiniProfiler 将此报告为重复查询,即使每次的结果明显不同。

有什么方法可以让 MiniProfiler 考虑 SQL 参数值,这样它就不会认为这些查询是重复的?我不确定这个问题是 MiniProfiler 的一部分,还是 NPoco 向 MiniProfiler 报告它的行为的方式有问题,所以我会标记这两个问题。

最佳答案

我认为这是设计使然,实际上是存在重复查询检测的原因之一。

如果您在一个页面上两次运行该查询,唯一的区别是参数值,那么您也可以运行一次并在该查询中包含两个参数值。

SELECT * FROM PageContent WHERE ID in (@ID1, @ID2)

因此,您正在使用两个查询来执行您可以使用一个查询执行的操作(当然,您必须在服务器端进行过滤,但这比两个查询要快)。

重复查询标签并不是说您多次运行完全相同的查询(尽管它也适用于此)。相反,它强调了优化查询方法并将不同查询合并为一个查询的机会(想想 N+1 情况会是什么样子)。

如果默认功能不能满足您的需求,您可以随时更改它!计算 duplicateTimings 的功能位于 UI/includes.js .您可以通过打开 CustomUITemplates 提供您自己的此文件版本,以不同的方式定义重复项(可能通过在检测重复项时查看除了命令文本之外的参数值)。在 MiniProfiler 中,并将您自己的 includes.js 版本放在那里。

关于sql-server - 如何停止显示 "duplicate"SQL 查询警告参数不同的 MiniProfiler?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25138133/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com