SQL数据库:存储过程查询超时,超过30秒

koolxiaoyuer 2011-01-28 02:27:08
我的数据库较大,存储过程的查询逻辑有点复杂,所以比较费时,效率已经是最优。我知道SQL有30秒的默认超时。我的问题是能不能在这个存储过程里加一条sql语句,设置一下超时时间,让它100秒。
我比较菜,不知道在哪个位置加,加什么语句。我的存储过程类似如下

CREATE PROC usp_pro
@it_From DATETIME=NULL,
AS
SET NOCOUNT ON
--下面语句只是个例子,不是这么简单的查询语句。关键想让各位帮我填一句延长查询超时时间的语句
select * from tableA where Atime>@it_From

SET NOCOUNT OFF
GO
...全文
667 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
koolxiaoyuer 2011-01-28
  • 打赏
  • 举报
回复
上面代码错了,应该是:
CString strSQL;
strSQL.Format(_T("usp_pro '%s'"), m_time);
int nOldTimeout = _DB_CONN->GetCommandTimeout();; //记下原本的默认时间,运行完下面语句后恢复默认时间
_DB_CONN->SetCommandTimeout(600);
CADORecordset rstResult(_DB_CONN); //_DB_CONN是封装了并#define的连接数据库
rstResult.Open(strSQL); //执行这个比较费时的存储过程。
....
_DB_CONN->SetCommandTimeout(nOldTimeout );; //恢复默认时间

koolxiaoyuer 2011-01-28
  • 打赏
  • 举报
回复
结贴,原来是只能在C++的代码里设置。
CString strSQL;
strSQL.Format(_T("usp_pro '%s'"), m_time);
int nOldTimeout = _DB_CONN.CommandTimeout; //记下原本的默认时间,运行完下面语句后恢复默认时间
_DB_CONN.CommandTimeout=600;
CADORecordset rstResult(_DB_CONN); //_DB_CONN是封装了并#define的连接数据库
rstResult.Open(strSQL); //执行这个比较费时的存储过程。
....
_DB_CONN.CommandTimeout=nOldTimeout ; //恢复默认时间
koolxiaoyuer 2011-01-28
  • 打赏
  • 举报
回复
我的是C++的MFC工程里用到了ADO连接数据库,
CString strSQL;
strSQL.Format(_T("usp_pro '%s'"), m_time);
CADORecordset rstResult(_DB_CONN); //_DB_CONN是封装了并#define的连接数据库
rstResult.Open(strSQL);
中国风 2011-01-28
  • 打赏
  • 举报
回复
樓主是指程序調用時的時長?

這是在程序里設置的

幸运的意外 2011-01-28
  • 打赏
  • 举报
回复
sql没有30秒的限制吧,一般是在开发IDE里有对数据库连接时间的限制。
koolxiaoyuer 2011-01-28
  • 打赏
  • 举报
回复
SET LOCK_TIMEOUT timeout_period
的位置写在哪里?
koolxiaoyuer 2011-01-28
  • 打赏
  • 举报
回复
一楼 小爱,我找不到sp_configure 这个存储过程啊。你这个是写在查询分析器里的??我想要写在同一个存储过程里的。

二楼 糖,语句是这样写吗:建立一个存储过程:

SET LOCK_TIMEOUT 100000
--是写在这里吗???????我这样写是100秒吗?
CREATE PROC usp_pro
@it_From DATETIME=NULL,
AS
SET NOCOUNT ON
--下面语句只是个例子,不是这么简单的查询语句。关键想让各位帮我填一句延长查询超时时间的语句
select * from tableA where Atime>@it_From
SET NOCOUNT OFF
GO

rucypli 2011-01-28
  • 打赏
  • 举报
回复
SET LOCK_TIMEOUT timeout_period

指定语句等待锁释放的毫秒数。

黄_瓜 2011-01-28
  • 打赏
  • 举报
回复
--设定查询超时时间 
exec sp_configure 'query wait ' ,-1
RECONFIGURE WITH OVERRIDE
go

34,594

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧