この記事は機械翻訳のミラー記事です。元の記事にジャンプするにはこちらをクリックしてください。
建築家
建築家
リスト
放送
茶屋
インテリジェントAI会話
.NETキャリア&テクニカルカレッジ
ちっちゃいなクズブログ
この版
利用者
Architect_Programmer_Code農業ネットワーク
»
建築家
›
データベース&データベース
›
オラクル
›
ORACLE 11g 新機能 - DDLロックがDMLロックを待つことを可能にします
眺める:
11117
|
答える:
0
[出典]
ORACLE 11g 新機能 - DDLロックがDMLロックを待つことを可能にします
[リンクをコピー]
管理者
掲載地 2014/11/26 15:54:15
|
|
|
以前にもこのことについて書いたことがあります
オラクル
11g 新しい特集記事、今すぐ
オラクル
11Gは主流となりました
オラクル
データベース版、理解と学習
オラクル
11Gの新機能は重要であり、私も同じです
オラクル
11Gの新機能の初心者のために、ここで私の学習過程と体験を共有したいと思います。
この記事の主な記録は以下の通りです:
オラクル
11gの新機能で、DDLロックがDMLロックを待つことができる。これは6月30日のACOUGイベントで張磊(kamus)氏も共有したテーマだ。
11g以前のバージョンでは、デフォルトでDDLロックはDMLロックを待たず、DMLロックを持つテーブルにDDL操作を行うと即座に失敗を返します(同じSESSIONを除き)。簡単な実験をしてみます。SESSION1にデータをSTREAMテーブルに挿入し、送信しないとしたら、この時点でテーブルSTREAMにDMLロックがかかっており、SESSION2でTRUNCATEテーブルSTREAM操作を実行すると、即座に失敗を返します:
SESSION1 > dbdreamからストリーム選択に*を挿入; 10行作成。 SESSION2 >テーブルストリームを切り詰めること; テーブルストリームを切り詰め * 1行目のエラー:ORA-00054:リソースが忙しく、NOWAITが指定されているか、バージョン11gでタイムアウトが切れている、
オラクル
パラメータDDL_LOCK_TIMEOUT導入され、DDLロックがDMLロックを待つ時間を制御できるようになり、DDLロックがDMLロックを待つ時間を制御します。秒単位でデフォルト値は0です。つまり、DDLロックはDMLロックを待たず、最大値は100万、つまり11.5日です。このパラメータはグローバルまたはセッションレベルで設定可能です。
SESSION2 >パラメータ ddl_lock_timeout NAME TYPE VALUE ----------------------- ----------- ------ ddl_lock_timeout 整数 0 SESSION2 >ALTER SESSION SET ddl_lock_timeout=2000000; エラー:ORA-00068:パラメータddl_lock_timeoutの無効値2000000は0から1000000の間でなければなりません以下は、以下のDDL_LOCK_TIMEOUTパラメータの効果を示し、上記のSTREAMテーブルを例に取ります。現在のSTREAMテーブルにはまだDMLロックがあり、SESSION2ではDDL_LOCK_ TIMEOUTは60秒に設定され、その後TRUNCATE操作が実行されます。失敗はすぐに返されるのではなく60秒待機し、STREAMテーブルのDLロックが60秒以内に解放されなければ失敗を返します。
SESSION2 >alterセッションセット は ddl_lock_timeout=60; セッション変更。 SESSION2 > SESSION2 > トランケートテーブルストリームでタイミングを設定する; --この時点でSESSION2は一時停止し、SESSION1が60秒以内にDMLロックを解除するのを待ち、60秒後に失敗。テーブルストリームを切り落とす* 1行目のエラー:ORA-00054:リソースは忙しい、NOWAITを指定するかタイムアウト終了で取得。経過: 00:01:00.01 パラメータの出現により、DBAの操作DDL_LOCK_TIMEOUT大幅に簡素化されます。例えば、テーブルにフィールドを追加したいのですが、このテーブルには多くのDML操作があり、ALTER SYSTEM KILL SESSIONメソッドでこれらの操作を終了することはできません。したがって、このテーブルにフィールドを追加したい場合、フィールドを追加する操作を何度も実行するか、スクリプトを書く必要があります。そして、今やDDL_ パラメータLOCK_TIMEOUT、このパラメータの値を少し大きく設定するだけで済み、SQLの実行を気にする必要はありません。以下でこのプロセスを実演します。
SESSION2 フィールドを追加します:
SESSION2 >alter table stream add jpg_path varchar2(255) default '/home/
オラクル
/'; 此时挂起,等待STREAM表的DML锁释放,SESSION1提交释放DML锁后,SESSION2操作便成功了。
SESSION1 >コミット; コミット完了。 SESSION2 >alter table stream add jpg_path varchar2(255) default '/home/
オラクル
/'; Table altered. SESSION2 >select * from stream; ID IDENTIFIER PIC_NO JPG_PATH ---------- --------------- ------ --------------- 1 18-0220-003 1 /home/
オラクル
/ 2 18-0221-003 1 /home/
オラクル
/ 3 18-0221-003 2 /home/
オラクル
/ 4 18-0221-003 3 /home/
オラクル
/ 5 18-0223-005 1 /home/
オラクル
/ 6 18-0223-005 2 /home/
オラクル
/ 7 18-0223-005 3 /home/
オラクル
/ 8 18-0223-005 4 /home/
オラクル
/ 9 18-0223-005 5 /home/
オラクル
/ 10 18-0223-005 6 /home/
オラクル
/ 10 rows selected.
先の:
実用的なSQL文:日付推定
次に:
Oracle ORA-12541: TNS:no listener error workaround
関連記事
•
SQL Serverサーバーはデータベースの整合ルールを修正します
•
SQL SERVERデータベースはデフォルトの照合ルールを修正します
•
SQL Serverのレプリケーションは、データベースを新しいデータベースにクローンします
•
MySQLデータベースのテストテーブルは1,000万件のデータを挿入します
•
[翻訳] なぜNET/C#のMySqlConnectorとMySql.Dataが前者を勝ち取るのか
•
.NET/C# はDataTablesを通じて動的にテーブル構造を作成します
•
SQL SERVERデータベース用のメモリ最適化テーブル
•
SQL Serverがクラスタ化されていないインデックスに対して作成する最大varchar長
•
[AI](15)ベクターデータベースQdrantは使いやすいです
•
【AI】(14) オープンソースベクターデータベースの簡単な紹介
閲覧したセクション
ごみ箱
HTML/CSS/JavaScript
ネットワーク技術
免責事項:
Code Farmer Networkが発行するすべてのソフトウェア、プログラミング資料、記事は学習および研究目的のみを目的としています。 上記の内容は商業的または違法な目的で使用されてはならず、そうでなければ利用者はすべての結果を負うことになります。 このサイトの情報はインターネットからのものであり、著作権紛争はこのサイトとは関係ありません。 ダウンロード後24時間以内に上記の内容を完全にパソコンから削除してください。 もしこのプログラムを気に入ったら、正規のソフトウェアを支持し、登録を購入し、より良い本物のサービスを受けてください。 もし侵害があれば、メールでご連絡ください。
Mail To:help@itsvse.com