データベース・サーバをイン・メモリで実行し、ディスクへの書き込みをなくしたり軽減したりします。
{ dbsrv11 | dbeng11 } -im { c | nw } ...
すべてのオペレーティング・システムとデータベース・サーバ
イン・メモリ・モードには別途ライセンスが必要です。別途ライセンスが必要なコンポーネントを参照してください。
この機能は、キャッシュ内のすべてのデータベース・ファイルを保持するのに十分な大量のメモリを使用できるシステムで使用する場合に最も効果的です。イン・メモリ・モードには、次の 2 種類があります。
チェックポイント専用 (-im c) チェックポイント専用モードで実行すると、データベース・サーバでトランザクション・ログが使用されないので、コミットした最新のトランザクションにはリカバリできません。ただし、チェックポイント・ログは有効になっているため、データベースを最新のチェックポイントにリカバリすることができます。通常、トランザクション・ログを使用せずにデータベースを実行しても、データベース・サーバはコミット操作ごとにチェックポイントの設定を実行するため、パフォーマンスに影響します。ただし、データベース・サーバをチェックポイント専用モードで実行すると、データベース・サーバはコミット操作ごとにチェックポイントの設定を実行しません。
このモードは、パフォーマンスの向上が必要で、最新のチェックポイントの実行後にコミットされたトランザクションが失われても構わないアプリケーションでの使用に適しています。
チェックポイント専用モードでの実行時には、次の制限が適用されます。
トランザクション・ログは生成されない。
テンポラリ・ファイルは生成されない。
チェックポイントは要求に応じて設定可能で、さらにデータベース・サーバの標準のチェックポイント頻度で設定される。
ダーティ・ページはチェックポイントでのみディスクにフラッシュされる。
非書き込み (-im nw) 非書き込みモードで実行すると、コミットされたトランザクションはディスク上のデータベース・ファイルに書き込まれません。データベースが停止またはクラッシュするとすべての変更は失われるため、データベース・ファイルは常に元の状態に保たれます。DB 領域の拡張または新規作成の要求は許可されますが、変更内容はデータベース・ファイルに反映されません。新しい DB 領域を作成して使用できますが、これらはディスクに書き込まれません。非書き込みモードでバックアップを作成しても、システム DB 領域の変更内容がファイルに書き込まれないので、意味がありません。
非書き込みモードでの実行時には、次の制限が適用されます。
トランザクション・ログは生成されない。
チェックポイント・ログは生成されない。
テンポラリ・ファイルは生成されない。
ダーティ・データベース・ページはディスクにフラッシュされない。
元のデータベース・ファイルは変更されない。
元のデータベース・ファイルに変更内容が書き込まれないため、現在のデータベースの永続コピーが必要な場合は、dbunload ユーティリティまたは UNLOAD TABLE 文を使用してください。SQL クエリを使用して変更内容を取得することもできますが、その場合は、手動で変更内容をデータベース・ファイルに書き込む必要があります。
イン・メモリ・モードによるパフォーマンス向上は、アプリケーションの負荷と I/O サブシステムの処理速度によって異なります。パフォーマンスの大幅な向上は、大量データの挿入や更新を行うアプリケーションや、コミットとチェックポイントを頻繁に実行するアプリケーションで顕著に見られます。
多くの場合、イン・メモリ・モードでのパフォーマンスは、トランザクションにグローバル・テンポラリ・テーブルを使用した場合のパフォーマンスと同等か、それ以上に改善されます。データベースへの問い合わせが大部分を占めるアプリケーションの場合は、パフォーマンスの向上がほとんど期待できません。一般に、イン・メモリ・モードの使用によるパフォーマンスの向上は、予想されるデータベース・ファイル全体を保持するのに十分な容量がキャッシュに事前に割り当てられている場合に最も顕著に現れます。こうすることで、アプリケーションの実行中にキャッシュを逐次増分させることによって生じるオーバヘッドを軽減できます。
非書き込みモードの場合、ページがキャッシュからフラッシュされないため、データベース内のデータ量が増えすぎると、使用できるキャッシュを使い果たしてしまう場合があります。このような場合、SQL Anywhere はエラーを発行して、要求の処理を停止します。このような理由から、非書き込みモードの使用には注意が必要です。また、使用する場合は、アプリケーションによる使用が予想されるページの作業セット全体を保持するのに十分なキャッシュを常に確保しておく必要があります。「チェックポイント専用」モードではチェックポイントが引き続き発生するため、「非書き込み」モードと比較して、サーバでキャッシュを使い果たしてしまうリスクは少なくなります。
LOAD TABLE 文と一部の ALTER TABLE 文では、障害の影響を部分的に取り消すため、またはエラーからのリカバリのためにチェックポイント・ログが使用されます。非書き込みモードでは、チェックポイント・ログが作成されず、一部の文が失敗するか、エラーが発生しても、文の影響を部分的に取り消すことはできません。不正または不完全なデータがテーブルに残る場合があります。チェックポイント・ログの概要を参照してください。
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |