gpt4 book ai didi

c++ - 在我的代码中执行存储过程时出现问题

转载 作者:行者123 更新时间:2023-11-28 04:25:29 25 4
gpt4 key购买 nike

我有一个存储过程,它返回一组 8 个 integer 值。一开始一切似乎都以正确的方式执行,但是当我使用 TADOQuery 在我的 C++ 代码中执行它时,执行了一些执行后,执行时间增加了,但在执行时间仍然正确的 SSMS 中却没有.

在第一步中,我尝试改进我的存储过程,使其更加注重性能。我赢得了一些执行时间,但问题仍然存在。

我还尝试检查我的代码,搜索一些可能会延长执行时间的荒谬行。但是我将相同的代码与其他存储过程一起使用,但它们并没有显示相同的效果。

所以我使用 SQL Profiler 来查看到底发生了什么。您可以在下面看到好的执行和糟糕的执行之间的区别。

良好的执行力

 CPU | Reads | Writes | Duration 
93 | 13657 | 0 | 113

执行不当

 CPU      | Reads    | Writes | Duration
22090 | 31960629 | 0 | 25158

如您所见,读取和 CPU 访问的值呈指数级增长。

如果我在 SSMS 查询编辑器中执行相同的存储过程,结果将直接指向良好的执行。

我只希望无论在何处执行查询,我的存储过程总是以大致相同的持续时间执行。

最佳答案

这个已经看过好几次了——它吸引了我们很多人。根据您的要求检查设置,例如 ansi nulls 开/关、其他设置等。这样的更改会导致不同的执行计划。看 SQL faster in ssms than in application了解详情。

关于c++ - 在我的代码中执行存储过程时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54441241/

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