スケーラブルデータベースサーバ HiRDB Version 8 解説(Windows(R)用)

[目次][用語][索引][前へ][次へ]

6.10.4 ユーザの設定による排他制御の変更

HiRDBが自動的にしている排他制御をユーザが変更することもできます。「データの更新,追加,削除」及び「データの検索」のときの,表と行の排他制御について説明します。

<この項の構成>
(1) データの更新,追加,削除時のユーザ設定による排他制御
(2) データの検索時のユーザ設定による排他制御

(1) データの更新,追加,削除時のユーザ設定による排他制御

LOCK TABLE文のIN EXCLUSIVE MODEを指定すると,ユーザがデータの更新,追加,削除時の排他制御を変更できます。表に対して,ほかのトランザクションからのその表のデータに対する参照,追加,更新,削除は許しません。つまり,排他モード(EXモード)が掛かります。一方,行に対しては,行単位の排他はしないため,排他を掛ける処理のオーバヘッドが削減,排他制御用のバッファ不足を防止できます。しかし,表単位には排他が掛かっているため,ほかのトランザクションが長時間待ち状態になる可能性があります。

(2) データの検索時のユーザ設定による排他制御

次に示すSQLを指定すると,データの検索時の排他制御を変更できます。

SELECT文のWITHOUT LOCK指定
検索したデータの内容をトランザクション終了まで排他制御しません。検索し終わった行から排他制御が解除されるため,同時実行性が向上します。

LOCK TABLE文IN SHARE MODE指定
そのトランザクションが資源を占有し,ほかのトランザクションからはその表のデータの参照だけが許されます。つまり,共用モード(PRモード)が掛かります。一方,行に対しては,行単位の排他はしないため,排他を掛ける処理のオーバヘッドが削減,排他制御用のバッファ不足を防止できます。しかし,表単位には排他が掛かっているため,ほかのトランザクションが長時間待ち状態になる可能性があります。