検索
ホームページよくある問題Oracle はどのような場合にテーブルをロックしますか?

Oracle はどのような場合にテーブルをロックしますか?

Jun 13, 2023 am 09:37 AM
oracleオラクルデータベース

Oracle ロック テーブルの状況には次のものが含まれます: 1. プログラム A はテーブル A に対して挿入を実行しますが、コミット前にプログラム B もテーブル A に対して挿入を実行します。このとき、リソース ビジー例外が発生します。 ; 2. テーブル ロックは、並列処理ではなく同時実行で行われることがよくあります。並列では、1 つのスレッドがデータベースを操作するとき、他のスレッドはデータベースを操作できません。CPU と I/O の割り当ての原則。

Oracle はどのような場合にテーブルをロックしますか?

このチュートリアルの動作環境: Windows 10 システム、Oracle バージョン 19c、Dell G3 コンピューター。

テーブルをロックする主な理由は次のとおりです:

1. プログラム A は tableA に対して挿入を実行しますが、コミット前にプログラム B も tableA に対して挿入を実行します。今回は、リソースがビジーであるという例外が発生します。これは、ロック テーブル

2です。ロック テーブルは、多くの場合、並列処理ではなく同時実行で発生します (並列では、1 つのスレッドがデータベースを操作するときに、もう 1 つのスレッドがデータベースを操作する)データベース、CPU、I/O 割り当て原則を操作できません)

テーブルがロックされる可能性を減らす方法:

1. 次の実行間の時間を短縮します。ステートメントを挿入、更新、削除し、コミットします。具体的には、バッチ実行を単一実行に変更し、SQL 自体の非実行速度を最適化します。

2. 例外が発生した場合はロールバックします

テーブルをロックする理由としては、行データが変更され、送信されるのを忘れている場合も、テーブルのロックが発生します。

1. テーブルをロックする場合は、理由を確認してから決定することをお勧めします。

1. テーブル ロック クエリのコードの形式は次のとおりです:

select count(*) from v$locked_object;
select * from v$locked_object;

2. どのテーブルがロックされているかを確認します

select b.owner,b.object_name,a.session_id,a.locked_mode from v$locked_object a,dba_objects b where b.object_id = a.object_id;

3. どのセッションが原因かを確認してください

select b.username,b.sid,b.serial#,logon_time from v$locked_object a,v$session b where a.session_id = b.sid order by b.logon_time;

4. どの SQL が原因かを確認します

select b.username,b.sid,b.serial#,c.* from v$locked_object a,v$session b,v$sql c where a.session_id = b.sid
and b.SQL_ID = c.sql_id and c.sql_id = ''
order by b.logon_time;

5. 対応するプロセスを強制終了します

コマンドを実行します: alter system kill session'1025,41';

このうち、1025 は sid、41 はシリアル#.

2. Oracle ユーザーが頻繁にロックされる理由

ログイン時にプロンプ​​ト: test user is locked

1. dba ロールを使用します。ユーザーとしてログインしてロックを解除します。まず、特定の時刻を表示するために特定の時間形式を設定します。

SQL> alter session set nls_date_format=‘yyyy-mm-dd hh24:mi:ss’;

セッションが変更されました。

2. 特定のロックされた時刻を表示します

SQL> select username,lock_date from dba_users where username='TEST';
USERNAME LOCK_DATE
------------------------------ -------------------
TEST 2021-03-10 08:51:03

3.ロックを解除

SQL> alter user test account unlock;

ユーザーが変更されました。

以上がOracle はどのような場合にテーブルをロックしますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

Dreamweaver Mac版

Dreamweaver Mac版

ビジュアル Web 開発ツール

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

mPDF

mPDF

mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。