時間:2015-06-28 00:00:00 來源:IT貓撲網(wǎng) 作者:網(wǎng)管聯(lián)盟 我要評論(0)
有一個表中的數(shù)據(jù)需要每月更新,數(shù)據(jù)量近百萬,考慮由10臺服務器分攤并分批進行更新
這就需要能夠查詢一批記錄并同時修改這批記錄的更新狀態(tài),以免被正在更新的數(shù)據(jù)被其他服務器取到
加行級鎖,查詢到記錄后再遍歷結果集更新狀態(tài)?
select * from t_musicinfo for update wait 10;
這樣如果某臺服務器鎖定記錄,直到更新狀態(tài)并提交這段時間,其他所有服務器都得等待,只有這臺服務器釋放后其他服務器才能加鎖進行更新操作,10臺服務器同步操作,爭搶的機率豈不是很大,有沒有辦法使查詢時對已經(jīng)鎖定的記錄視而不見
Google之...
果然有:
select * from t_musicinfo for update nowait skip locked;
for update skip locked選項是oracle的一個未公開的特性,它的含義是select時跳過被鎖的記錄
那么接下來遍歷結果集更新狀態(tài)
好像不對,結果集打開后再返回,就不能再打開了
關鍵詞標簽:oracle
相關閱讀
熱門文章 Oracle中使用alter table來增加,刪除,修改列的語法 oracle中使用SQL語句修改字段類型-oracle修改SQL語句案例 誤刪Oracle數(shù)據(jù)庫實例的控制文件 為UNIX服務器設置Oracle全文檢索
人氣排行 oracle中使用SQL語句修改字段類型-oracle修改SQL語句案例 Oracle中使用alter table來增加,刪除,修改列的語法 ORACLE SQL 判斷字符串是否為數(shù)字的語句 ORACLE和SQL語法區(qū)別歸納(1) oracle grant 授權語句 ORACLE修改IP地址后如何能夠使用 如何加速Oracle大批量數(shù)據(jù)處理 Oracle刪除表的幾種方法