Observation: Many Tables in Tablespace(監視レポート:表スペース内の表数が多い)

表スペースの表数が、1つのセグメント化されていない(単純な)表スペースに許容される表数の上限を超えています。1つの単純表スペースに複数の表を追加して、参照制約や結合のパフォーマンスを改善することができます。ただし、単純表スペースには1つまたは複数の表を含めることができるため、1つのページにはその表スペースに定義されたすべての表の行を含めることができます。このため、以下に影響を及ぼすおそれがあります。

  • 複数の関連しない表への同時アクセス:ロックは表ごとではなくページごとに発生するため、あるページの行を含む表のうち1つがロックされると、同じページにある他の表の行への同時要求に影響を及ぼすおそれがあります。

  • 表スペースのスキャン:表の行は任意のページに表示されるため、目的の表の行を含まない可能性のあるページを含め、表スペース内のすべてのページがスキャンされます。

  • 特定の表の行の大量削除処理:単純表スペースの場合、目的の表のすべての行が物理的に読み取られてから削除されます。これにより、通常はセグメント化表スペースよりも多くのログ活動が発生します。

  • スペース管理:単純表スペースのページ マップを管理するために必要なオーバーヘッドは、実際のデータより大きい場合があります。このため、単純表スペースは、小さい表の作成には適していないと言えます。

セグメント化表スペースには、単純表スペースと比べて以下のような利点があります。

  • 1つのページには、1つの表の行だけが含まれます。表スペースのスキャンは、目的の表の行を含むページだけを検索します。また、特定の表があるページをロックしても、同じ表スペースにある他の表の行へのアクセスに悪影響を及ぼしません。

  • DB2は、セグメント化表スペースの空きスペースをより効率的に管理するため、挿入処理や可変長行の更新処理のオーバーヘッドが削減されます。

  • DB2は、削除された表のスペースをすぐに再利用します。単純表スペースの場合、スペースを再利用するためにはその後の再編成が必要になります。

  • 大量削除処理がより効率的に実施されます。DB2によりデータが実際に削除される単純表スペースとは異なり、セグメント化表スペースでは、スペース マップだけが更新されます。