Oracle Blockの使用
-
16-10-2019 - |
質問
私は奇妙なデッドロックについて疑問に思っています、そして、他のすべてのコンポーネントをチェックした後、私はそれがOracle 11.2のinitransの問題であると考えています。
現在、3つの質問が発生しました:
ブロックがどれだけいっぱいかを分析する方法はありますか?
私のデータベースは、少し前に最大表スペースのサイズに到達し、インサートの拒否を開始し、別のデータファイルを追加しましたが、これはほぼすべてのスペースが使い果たされた場合にのみ成長します。私のPCT_USEDは96%です。私の仮定は、すべてのデータブロックが完全に詰め込まれ、initransデッドロックが似ているという私の仮定は正しいですか?
デッドロックトレースでinitransの問題を見る方法はありますか?
部分的な答えも満足しています。
解決
initransは、テーブルの同じブロックにある同時インサートにとって最も重要です。通常、ブロックヘッダーの競合がある場合にこれを認識します。ブロックに十分な空きスペースがある限り、リストはブロックの自由空間で成長する可能性があります。したがって、一部のテーブルでは、テーブルの同じ端にデータを挿入する多くの同時ジョブがあることを知っていれば、Initransを同時ジョブの数と同様の値に設定するのに役立ちます。
PCT_USEDとは、ブロックが4%のスペースを空けるとすぐに、そのブロックが新しい行を受け入れるために無料リストに到達することを意味します。
PCT_FREEとは、ブロック内の空きスペースがPCT_FREEを下回るとすぐに、ブロックが新しい行を受け入れなくなっていることを意味します。
表の統計には、avg_space、avg_row_lenなどの統計が示されています。