存储过程执行需要时间
Stored Procedure is taking time in execution
我在 SQL 服务器上遇到了一个非常奇怪的问题,我有一个存储过程并且我正在从 C# 代码执行该过程。该程序将 return 一个数据表/数据集。
我的问题是程序从 C# 代码/ADO.NET 代码执行时花费了太多时间(大约 2 分钟)。但是当我从 SQL 服务器执行相同的查询时,它会在一秒钟内执行。
我也尝试过使用相同的代码(旧过程代码)创建新过程,当我从 ADO.NET 执行这个新过程时,它并没有花费太多时间。它在 C# 中第二次执行。
所以我不知道我的旧程序有什么问题。
我猜你在从代码调用过程时有一个错误的执行计划。当您 运行 存储过程时,您将有一个不同的计划,因为默认情况下从 SSMS 运行ning 时计划签名不同。
请参阅:http://www.sommarskog.se/query-plan-mysteries.html 了解一些可能的修复和清晰度。
如果您的程序参数繁重,每次使用时编译可能有意义
option(recompile)
;
我在 SQL 服务器上遇到了一个非常奇怪的问题,我有一个存储过程并且我正在从 C# 代码执行该过程。该程序将 return 一个数据表/数据集。
我的问题是程序从 C# 代码/ADO.NET 代码执行时花费了太多时间(大约 2 分钟)。但是当我从 SQL 服务器执行相同的查询时,它会在一秒钟内执行。
我也尝试过使用相同的代码(旧过程代码)创建新过程,当我从 ADO.NET 执行这个新过程时,它并没有花费太多时间。它在 C# 中第二次执行。
所以我不知道我的旧程序有什么问题。
我猜你在从代码调用过程时有一个错误的执行计划。当您 运行 存储过程时,您将有一个不同的计划,因为默认情况下从 SSMS 运行ning 时计划签名不同。
请参阅:http://www.sommarskog.se/query-plan-mysteries.html 了解一些可能的修复和清晰度。
如果您的程序参数繁重,每次使用时编译可能有意义
option(recompile)
;