Oracle での挿入はテーブルをロックしますか?
Oracle での Insert はテーブルをロックします。Oracle が Insert などの DML ステートメントを実行すると、操作中のテーブルにロックが適用されます。2 つの Insert ステートメントが同時にテーブルを操作しようとすると、セッションが発生しますが、セッションはブロックされ、他のセッションがコミットまたはロールバックするのを待機しているため、デッドロックが発生します。
このチュートリアルの動作環境: Windows 10 システム、Oracle 11g バージョン、Dell G3 コンピューター。
Oracle で挿入するとテーブルがロックされますか?
Oracle で挿入するとテーブルがロックされますか?
ORACLE が挿入などの DML ステートメントを実行すると、最初は操作対象のテーブルに対して自動的にTMロックを適用し、TMロックを取得すると自動的にTXタイプのロックを適用します。 2 つ以上のセッションがテーブルの同じレコードに対して DML 言語を実行すると、最初のセッションはレコードをロックし、他のセッションは最初のセッションのコミット後に TX ロックが解放されるまで待機状態になり、他のセッションはセッションのみになります。ロックすることができます。
これは、2 つの挿入ステートメントが同じ PK または一意の値を持つデータをテーブルに同時に挿入しようとするため、セッションがブロックされ、他のセッションがコミットまたはロールバックするのを待機するため、行き詰まり。
この場合、いずれかのセッションが送信される限り、もう一方のセッションは ORA-00001: 一意制約に違反し、デッドロックが終了するか、またはセッションの 1 つがロールバックされ、もう 1 つはロールバックされます。正常に実行できます。
Oracle では、テーブルをロックする理由は、プログラムがテーブルに対して挿入を実行し、まだコミットされていないときに、別のプログラムも同じテーブルに対して挿入を実行すると、この時点でリソースが発生するためです。ビジー例外、つまりテーブルをロックします。
テーブルをロックする主な理由は次のとおりです。
(1) プログラム A が tableA に対して挿入を実行し、コミット前にプログラム B も tableA に対して挿入を実行します。すると、この時点でリソース ビジー例外が発生します。これはロック テーブル
(2) ロック テーブルは、並列ではなく同時実行で発生することがよくあります (並列では、1 つのスレッドがデータベースを操作すると、他のスレッドはデータベースを操作できなくなります)。
テーブルがロックされる可能性を減らす方法:
(1) 挿入、更新、および削除ステートメントの実行と実行の間の時間を短縮します。専念。具体的には、バッチ実行をシングル実行に変更し、SQL 自体の非実行速度を最適化します。
(2) 例外が発生した場合はロールバックします
テーブルをロックする理由としては、次のことが考えられます。行データが変更され忘れられています。送信するとテーブルもロックされます。
知識を広げる:
テーブルをロックするときは、決定を下す前に理由を確認することをお勧めします。
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;
推奨チュートリアル: 「Oracle ビデオ チュートリアル 」
以上がOracle での挿入はテーブルをロックしますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undress AI Tool
脱衣画像を無料で

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

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

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック

安全かつ徹底的にMySQLをアンインストールし、すべての残留ファイルをクリーンにするには、次の手順に従ってください。1。MySQLサービスを停止します。 2。MySQLパッケージをアンインストールします。 3.構成ファイルとデータディレクトリのクリーン。 4.アンインストールが徹底していることを確認します。

Oracleはデータベース会社だけでなく、クラウドコンピューティングとERPシステムのリーダーでもあります。 1。Oracleは、データベースからクラウドサービスおよびERPシステムへの包括的なソリューションを提供します。 2。Oraclecloudは、AWSとAzureに挑戦し、IAAS、PAAS、SAASサービスを提供します。 3. e-businesssuiteやfusionApplicationsなどのOracleのERPシステムは、企業がオペレーションを最適化するのに役立ちます。

MongoDBは、大規模な構造化されていないデータの処理に適しており、Oracleはトランザクションの一貫性を必要とするエンタープライズレベルのアプリケーションに適しています。 1.MongoDBは、ユーザーの動作データの処理に適した柔軟性と高性能を提供します。 2。Oracleは、その安定性と強力な機能で知られており、金融システムに適しています。 3.MongoDBはドキュメントモデルを使用し、Oracleはリレーショナルモデルを使用します。 4.MongoDBはソーシャルメディアアプリケーションに適していますが、Oracleはエンタープライズレベルのアプリケーションに適しています。

MongoDBは、構造化されていないデータと高いスケーラビリティ要件に適していますが、Oracleは厳格なデータの一貫性を必要とするシナリオに適しています。 1.MongoDBは、ソーシャルメディアやモノのインターネットに適したさまざまな構造にデータを柔軟に保存します。 2。Oracle構造化データモデルは、データの整合性を保証し、金融取引に適しています。 3.mongodbは、破片を介して水平方向に尺度を拡大し、OracleはRACを垂直にスケールします。 4.MongoDBにはメンテナンスコストが低く、Oracleにはメンテナンスコストが高くなりますが、完全にサポートされています。

Centosは廃止されました、代替品には次のものが含まれます。1。RockyLinux(最高の互換性)。 2。アルマリン(Centosと互換性); 3。Ubuntuサーバー(設定が必要); 4。RedHat Enterprise Linux(コマーシャルバージョン、有料ライセンス); 5。OracleLinux(CentosとRhelと互換性があります)。移行する場合、考慮事項は次のとおりです。互換性、可用性、サポート、コスト、およびコミュニティサポート。

VSコードでKotlinを実行するには、次の環境構成が必要です:Java Development Kit(JDK)とKotlin Compiler Kotlin関連プラグイン(VSコード用のKotlin LanguageやKotlin Extensionなど)Kotlinファイルを作成し、テスト用のコードを実行して、環境構成が成功するようにします

記事の最初の段落の要約:YIフレームワークアプリケーションを開発するソフトウェアを選択する場合、複数の要因を考慮する必要があります。 XcodeやAndroid Studioなどのネイティブモバイルアプリケーション開発ツールは、強力な制御と柔軟性を提供できますが、Reactネイティブやフラッターなどのクロスプラットフォームフレームワークは、一度に複数のプラットフォームに展開できる利点にますます人気が高まっています。モバイル開発を新しい開発者向けに、AppsheetやGlideなどの低コードまたはノーコードプラットフォームは、アプリケーションをすばやく簡単に構築できます。さらに、AWS AmplifyやFirebaseなどのクラウドサービスプロバイダーは包括的なツールを提供します

MySQLとOracleの主な違いは、ライセンス、機能、および利点です。 1。ライセンス:MySQLは無料で使用するためのGPLライセンスを提供し、Oracleは高価な独自のライセンスを採用しています。 2。機能:MySQLには単純な機能があり、Webアプリケーションや中小企業に適しています。 Oracleには強力な機能があり、大規模なデータや複雑なビジネスに適しています。 3.利点:MySQLはオープンソース無料で、スタートアップに適しており、Oracleはパフォーマンスが信頼でき、大企業に適しています。
