SQL Server 2005在SSMS中快速存储过程从VBA缓慢

4 sql-server vba stored-procedures

我有一个存储过程,从SQL Server Management Studio运行时,这样调用时一直需要5秒才能运行.

exec dbo.MyStoredProc  '2009-04-30 00:00:00', '2009-04-30 20:00:00' 
Run Code Online (Sandbox Code Playgroud)

当通过VBA从excel电子表格调用时,需要6分钟(不包括将记录集复制到工作表所花费的时间.VBA只是简单地使用ADO连接来返回记录集.不幸的是,Excel方法是客户端要求我无法摆脱.

Public Function GenerateSQL(strQueryName As String) As Recordset
Dim rs As Recordset, cm As Command, dbsConn As Connection

Set dbsConn = New ADODB.Connection
dbsConn.Open Configuration.Range("ConnectionString")
Set cm = New ADODB.Command


With cm
    .CommandText = strQueryName
    .CommandType = adCmdStoredProc
    .CommandTimeout = 300
    .ActiveConnection = dbsConn

    Set rs = .Execute()

End With

Set GenerateSQL = rs
End Function
Run Code Online (Sandbox Code Playgroud)

有谁知道为什么会发生这种情况或者我如何开始追踪正在发生的事情?

谢谢,

史蒂夫

Rem*_*anu 7

您需要了解的有关此主题的所有内容:应用程序速度慢,SSMS速度快?了解性能之谜

  • +1 - Sommarskog先生写的任何内容都值得你花时间. (2认同)