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