Oracleの待機とロック

実践オラクルデータベース構築・運用

オラクルデータベース構築オラクルデータベース運用SQL書式PL/SQL書式Oracle Master試験

TOP オラクルデータベース概要(豆知識)

Oracleの待機とロック


スポンサードリンク
スポンサードリンク



Oracleの待機とロック




1 Oracleの待機

Oracleの待機には「アイドル待機」と「アイドルでない待機」があります。アイドル待機とは処理がないため暇をしている待機のことをいいます。異常やI/Oにより理由がありSQLを待たせてしまう待機をアイドルでない待機といいます。


2 アイドルでない待機

アイドルでない待機の中でも、正常なI/O待ちなどはSQL処理に必要な待機であると考えられます。しかし、ロックによるものや、ディスク故障による無駄な待ちは必要な待機とはいえません。SQL処理のチューニングの観点から考えると「CPU時間+アイドルでない待機」がSQL処理時間として考えられるため、アイドルでない待機をいかに減らすかがチューニングする際に大切になってきます。待機イベントを含めた総合的にパフォーマンスを確認するツールとしてOracleでは、無償版でStatspackや有償版でDiagnostics Packがあります。また待機イベントだけを確認した場合は、動的パフォーマンスビューであるv$session_waitをご確認ください。


3 ロックの仕組み

ロックによる待機とは、ロックがかかっている対象にロックをかけようとするときに発生する待機を言います。ロック情報はv$lockで確認することができます。よく見られるロックとして「TX」と「TM」があります。TXは行のロックを表しています。TMは表のロックを表しています。またアプリケーションの作りによってはデッドロックが発生してしまうこともあります。デッドロックとは、複数サーバプロセスがお互いに他のサーバプロセスが待つロックを持ってしまっている状態です。デッドロック(ORA-60)が発生すると片方の処理がロールバックされalertファイルとトレースファイルに情報が表示されます。

以下にデッドロックイメージ図を示します。


Oracleは多重処理を実現するためにラッチという仕組みを使用します。ラッチとは出来る限りロックの種類を増やして、他のセッションとの競合を減らしているのです。


<オラクルデータベース概要(豆知識)>

 ・『OracleとディスクI/Oについて
 ・『Oracleの様々なプロセスについて
 ・『Oracleとキャッシュメモリについて
 ・『Oracleの起動と停止について
 ・『Oracleへのアプリケーション接続について
 ・『Oracleのデータ構造について
 ・『Oracleの待機とロック』について

 ・『REDOとUNDOについて
 ・『Oracleのバックアップ・リカバリについて
 ・『Oracleのデータ管理について
 ・『オプティマイザと共有プールについて
 ・『インスタンスとデータベース構成について
 ・『SQL*PlusとiSQL*Plus』について




スポンサードリンク

リンク集 / 免責事項サイトマップ問い合わせ
Copyright (C) 2012  実践オラクルデータベース構築・運用  All rights reserved