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 の使用法 » パフォーマンスの向上、診断、モニタリング » パフォーマンス向上のヒント

 

異なるファイルの異なるデバイスへの配置

ディスクドライブは、最新のプロセッサーや RAM よりオペレーション速度が非常に遅くなります。しばしば、ディスクによるページの読み込みまたは書き込みをただ待っていることが、データベースサーバーの処理を低速にする原因になっています。

異なるデータベースファイルを異なる物理デバイスまたはドライブに入れると、データベースのパフォーマンスが向上する場合があります。たとえば、1 つのディスクドライブがキャッシュとデータベースページとの相互スワップを実行中の場合も、別のドライブはログファイルに書き込みができます。このようなパフォーマンスの向上を得るためには、各ドライブを独立させます。小さい論理ドライブに分割した単一のディスクでは、利点はありません。

SQL Anywhere では、「データベースファイル」「トランザクションログファイル」「トランザクションログミラー」、および「テンポラリファイル」 の 4 種類のファイルが使用されます。これらのファイルは別々のドライブに置かれている必要があります。

メディア障害から保護するために、データベースファイルとトランザクションログファイルは別の物理ドライブに格納することをおすすめします。

トランザクションログミラーファイルとテンポラリファイルを別の物理ドライブに格納すると、SQL Anywhere の高速化に役立つ場合があります。トランザクションログファイルとトランザクションログミラーファイルが別のドライブに格納されていると、SQL Anywhere の書き込みが効率化されます。データベースサーバーでテンポラリファイルが使用される必要があるとき、データベース全体のパフォーマンスはテンポラリファイルが格納されるドライブの速度に大きく依存します。テンポラリファイルを使用する操作の多くでは、データベースからも情報を取得する必要があるため、テンポラリファイルを別のドライブに格納することによって、それらの操作を同時に実行できるようになります。

1 つのデータベースは 13 個までのファイルに保管されます (メインファイル 1 つと 12 の DB 領域)。これらは複数の別のドライブに配置できます。テーブルを個別の DB 領域に配置して、一般的なジョイン操作によって異なる DB 領域から情報を呼び込めるようにします。

すべてのテーブルやインデックスをシステム DB 領域以外のロケーションに作成した場合、システム DB 領域は、チェックポイントログとシステムテーブルの保存にのみ使用されます。この設定は、パフォーマンス上の理由からチェックポイントログを他のデータベースオブジェクトとは別のドライブ保存する場合に便利です。別の DB 領域にベーステーブルを作成するには、IN DBSPACE 句を使用するようにすべての CREATE TABLE 文を変更して、代わりの DB 領域を指定するか、テーブルを作成する前に default_dbspace オプションの設定を変更します。テンポラリテーブルは、TEMPORARY DB 領域だけに作成できます。

同様の方式では、テンポラリファイルとデータベースファイルの RAID デバイスまたはストライプセットへの配置があります。これらのデバイスは論理ドライブとして動作しますが、ファイルを多くの物理デバイスに分散し、複数のヘッドを使用して情報にアクセスすることによってパフォーマンスを飛躍的に向上させます。

データベースサーバーの起動時に -fc オプションを指定して、データベースサーバーでファイルシステムがいっぱいになった場合のコールバック関数を実装できます。

 参照