Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 12.0.1 » SQL Anywhere サーバー SQL の使用法 » パフォーマンスの向上、診断、モニタリング » パフォーマンス向上のヒント » 断片化関連のパフォーマンスに関連するヒント » テーブルの断片化削減

 

テーブルの断片化を削減する方法

次の方法で、テーブルの断片化を制御できます。

  • PCTFREE の使用   SQL Anywhere では、ローが少し大きくなることを見込んで各ページに余分な領域を確保します。ローが更新されたために、最初に割り付けられていた領域より大きくなると、そのローは分割され、最初のローのロケーションにはロー全体が格納されている別のページへのポインターが入れられます。たとえば、空のローを UPDATE 文で埋めたり、テーブルに新しいカラムを挿入したりすると、ローが分割される可能性があります。別個のページに格納されるローが増えるほど、追加ページへのアクセス所要時間が長くなります。

    テーブルページに今後の更新のための予約領域の割合を指定しておくと、テーブルの断片化量を減らすことができます。この PCTFREE 指定は、CREATE TABLE、ALTER TABLE、DECLARE LOCAL TEMPORARY TABLE、または LOAD TABLE で設定できます。

  • テーブルの再編成   REORGANIZE TABLE 文を使用するか、Sybase Central の [断片化] タブで [再編成] をクリックすると、特定のテーブルの断片化を解除できます。

  • データベースの再構築   データベースを 2 段階で再構築すると、システムテーブルを含むすべてのテーブルの断片化が解除されます。2 段階で行うには、データをディスクにアンロードして保存してから、再ロードします。この方法で再構築すると、テーブルのローが並べ替えられ、クラスタードインデックスとプライマリキーで指定された順序になります。-ar、-an、-ac などのオプションを使用して一度に再構築を行うと、テーブルの断片化は減りません。

 参照

[断片化] タブ (SQL Anywhere プラグインの場合)
オブジェクトの断片化の詳細の表示
ベーステーブルとインデックスの再編成