您的位置:首页 > 数据库

大并发情况下,避免竞争数据库中同一个资源的规避方法

2011-11-08 10:17 387 查看
1、用select ... for update nowait;如果锁定出现异常,则在外围捕捉,同时循环加1,试图去锁定下一哥资源。

2、用序列:大并发情况下,不同请求进入函数得到序列号不同来选定不同的数据资源。类似于下面这样的代码

db.SetSQL("select SEQ_SELECT_NUMBER.nextval cur_seq_pos from dual");

db.Open();

db.Next();

iNumSeq = db.GetInt("cur_seq_pos");

snprintf(pszPagedSQL, CIMLenDef::IM_SQL_LEN,

" select * from (select rownum row_num,t1.* from (%s) t1 where rownum<:iMaxCount+1) "

" where row_num=iNumSeq ",

pszSQL);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐