我们有一个程序连接到我们的数据库并运行一些存储过程以获取一些数据。
数据库是SQL Server 2008,程序在本地运行。连接是通过TCP/IP进行的,但共享内存已启用。连接字符串的超时设置为45秒。
当我们通过SQL Server Management Studio运行它们时,需要0-5秒才能运行。 当我们通过代码运行它时,它会随机超时。
为了进行一些测试,我们将超时时间从45秒增加到几分钟。还为了排除任何阻塞问题,我们检查了存储过程只“选择”数据(没有插入或更新语句)。我们尝试了几个表修改器用于选择语句,如:nolock、readpast等。
我还检查了sp_who2和dbcc opentran(),没有任何阻塞...而.Net的SPID正在运行命令...更详细的信息是,当.Net等待DB答案时,通过SQL Server Management Studio我可以运行相同的语句(存储过程或选择)而没有问题。
有什么建议吗?
数据库是SQL Server 2008,程序在本地运行。连接是通过TCP/IP进行的,但共享内存已启用。连接字符串的超时设置为45秒。
当我们通过SQL Server Management Studio运行它们时,需要0-5秒才能运行。 当我们通过代码运行它时,它会随机超时。
为了进行一些测试,我们将超时时间从45秒增加到几分钟。还为了排除任何阻塞问题,我们检查了存储过程只“选择”数据(没有插入或更新语句)。我们尝试了几个表修改器用于选择语句,如:nolock、readpast等。
我还检查了sp_who2和dbcc opentran(),没有任何阻塞...而.Net的SPID正在运行命令...更详细的信息是,当.Net等待DB答案时,通过SQL Server Management Studio我可以运行相同的语句(存储过程或选择)而没有问题。
有什么建议吗?
sp_who2
显示running command
)。 - Alex