从 MS SQL SERVER 和 MS ACCESS 调用存储过程的结果之间的差异
Difference between results of calls stored procedure from MS SQL SERVER and MS ACCESS
SP是窗体的RecordSource。
当打开 SP 执行窗体并在查询超时后,连接将关闭,但什么也没有。
如果 SP 从 SSMS 执行,它会执行大约 2 秒和 returns 一组记录。
正如我通过 SSMS Profiler 看到的那样,调用是相同的,但是读取值的计数(从 Access 执行)> 2800 万,大约 7 万来自 SSMS。
帮帮我,我很困惑。
带有分析器的屏幕
http://take.ms/u7tTy
@tobypls,
非常感谢 - 你的 link 很有帮助。
简单的解决方案是重写(例如)
来自
ALTER PROCEDURE [dbo].[sproc]
@param1 int,
AS
SELECT * FROM Table WHERE ID = @param1
到
ALTER PROCEDURE [dbo].[sproc]
@param1 int,
AS
DECLARE @param1a int
SET @param1a = @param1
SELECT * FROM Table WHERE ID = @param1a
我从 this post 得到它。
但是如果你需要完全理解麻烦,那么你必须阅读非常棒的文章
应用程序慢,SSMS 快?
了解性能奥秘
SP是窗体的RecordSource。 当打开 SP 执行窗体并在查询超时后,连接将关闭,但什么也没有。 如果 SP 从 SSMS 执行,它会执行大约 2 秒和 returns 一组记录。 正如我通过 SSMS Profiler 看到的那样,调用是相同的,但是读取值的计数(从 Access 执行)> 2800 万,大约 7 万来自 SSMS。 帮帮我,我很困惑。 带有分析器的屏幕 http://take.ms/u7tTy
@tobypls,
非常感谢 - 你的 link 很有帮助。
简单的解决方案是重写(例如)
来自
ALTER PROCEDURE [dbo].[sproc]
@param1 int,
AS
SELECT * FROM Table WHERE ID = @param1
到
ALTER PROCEDURE [dbo].[sproc]
@param1 int,
AS
DECLARE @param1a int
SET @param1a = @param1
SELECT * FROM Table WHERE ID = @param1a
我从 this post 得到它。
但是如果你需要完全理解麻烦,那么你必须阅读非常棒的文章
应用程序慢,SSMS 快?
了解性能奥秘