第7回 ACCESSで Jet 4.0 データベースの動作環境を最適に保つ方法

Accessを使い始めた頃は、あまり意識しなかった「Jet エンジン」ですが、長年使っていると、どうしても避けて通れない問題を多く含んでいますので、認識しておく必要があります。

「Jetの動作環境を整える」だけで、大事なデータ「mdb」が壊れにくくなりますので是非参考にして下さい。

Microsoft Jet は、Access がデフォルトで使用する「データベース エンジン」です。 Jet データベースの動作環境を最適に保つために役立つ推奨事項を「Access2000」を例に紹介します。

使用環境
シングルユーザー(スタンドアロン)の環境で実行されるデータベースとネットワーク経由でデータベースを使用している場合でも、「Jet データベース」に適用されます。

推奨事項


Sponsored Links




1.ソフトウエア(OS、Ofifice等の更新プログラム)環境

1)使用しているOSの最新の Service Pack がインストールされていることを確認する。
これにより、既知の問題に対する最新の更新プログラムが適用されて安定します。

2)最新のOfficeになっているかを確認する。
パフォーマンスや相互運用性を最適な状態に維持するため、Office  用の Service Pack および更新プログラムを定期的に提供されていますので、必ず更新します。

officeサイト:
http://office.microsoft.com/ の 「Office のダウンロード」 にアクセスすることにより、無償でダウンロードできます。

3)Microsoft Jet の最新の Service Pack がインストールされていることを確認する。
Jet の最新の Service Pack をインストールします。 ネットワーク環境でコンピュータを使用している場合は、すべてのクライアント コンピュータに Jet の最新の Service Pack をインストールする必要があります。

Microsoft Jet 4.0 データベース エンジン用の最新の Service Pack の入手方法 http://support.microsoft.com/kb/239114/

4)使用している Jet エンジンに適したファイル形式の Jet データベースを使用する。
Jet 4.0 クライアントを使用する場合は、Jet 4.0 形式のデータベースを使用します。
同様に、Jet 3.5 クライアントを使用する場合には、Jet 3.0 形式のデータベースを使用します。その他のバージョンについても同様です。

2.作成時の注意事項

1)効率的なデータベース設計を使用する。
効率の良いデータベースを設計することにより、DBのパフォーマンスが向上し、ファイルが破損する可能性も低下します。

2)予約語や予約文字をオブジェクト名やフィールド名として使用しない 。
データベース作成時にオブジェクトやフィールドに名前を付ける際には、予約語や予約文字を使用しないようにします。場合によってはデータベースが破損することがあります。

3.メンテナンス作業

1)Microsoft Jet データベースを定期的に最適化する。
DB
に頻繁に変更が加えられると、データベースの一部が断片化される場合があります。このため、 Access に含まれているデータベースの最適化ツールを定期的に実行することを推奨します。Access がない場合でも、JetComp ユーティリティを使用してデータベースを最適化できます。 http://support.microsoft.com/kb/273956/

最適化ユーティリティの使用頻度
データベースの最適化を実行する頻度は、変更するデータ量により異なります。データの変更が頻繁でない場合は、最適化も頻繁に実行する必要はありません。最適化の実行頻度に関する明確なルールはありませんが、定期的に最適化を実行することを推奨します。

最適化ユーティリティの使用要因
Microsoft Jet エンジンは、Microsoft Access データベース ファイルを 4096 バイトのブロックの連続として処理します。
Microsoft Jet テーブル内のレコード セットは、これらの一連のブロックに保存されます。各ブロックは次のブロックへのポインタを持っています。それぞれのブロックには、各レコード内のフィールド数やデータ量に応じて、1 つ以上のレコードが格納されます。テーブルに対するレコードの追加や削除が行われると、時間の経過に伴い、データベース ファイル内のテーブル ブロックがしだいに断片化されます。

最適化による変化について
・Microsoft Jet データベースを最適化すると、「”デフラグ」 が実行され、各テーブルが連続したブロックに再配置されます。これにより、テーブルに対する読み取り、書き込みのパフォーマンスが向上します。
・Microsoft Access データベースのインデックスも 4096 バイトのブロックに保存されるため、テーブル レコードと同様に断片化が発生することがあります。

2)Microsoft Jet データベース ファイルを定期的にバックアップする
失っても対応可能なデータ量を考慮して、バックアップ スケジュールを決定します。 データベース ファイルの完全バックアップを作成しておくことは、使用している Microsoft Jet データベース ファイルが破損した場合に確実に復旧するための最善の方法です。

3)バックアップ時の注意事項
ネットワーク環境で、ファイル共有でデータmdbを使用している場合は、Access データベース ファイルのバックアップを実行する前に、すべての Jet クライアント アプリケーションを終了する必要があります。クライアント アプリケーションを終了しない場合、バックアップ ファイルに不完全なデータが含まれることやデータの不一致が発生することがあります。

4.ネットワーク環境

1)ネットワーク環境におけるその他の推奨事項
Microsoft Jet はファイル共有型データベース システムです。ファイル共有型データベースでは、ファイルに関する処理がすべてクライアントで実行されます。 Microsoft Jet などのファイル共有型データベースがマルチユーザー環境で使用される場合、複数のクライアント プロセスが、ネットワーク経由で同一の共有ファイルに対して読み取り、書き込み、ロックを実行します。何らかの理由で処理を完了できなかった場合、そのファイルは不完全な状態、または破損した状態になることがあります。 Microsoft Jet では、Web、電子商取引、トランザクション処理に使用されるサーバーなど、高負荷で多数のプロセスが同時実行され、24 時間無停止で実行されるサーバー アプリケーションでの使用は想定されていません。

2)ネットワーク ファイル サーバーの OpLock (Opportunistic Locking) について
マイクロソフトは、ネットワーク ファイル サーバー上のファイルを 2 つ以上のクライアントで共有している場合、OpLock が原因で Jet データベースが破損する危険性が高くなることを確認されています。 この問題は、OpLock をサポートしているWindows NT 4.0、2000、Novell ファイル サーバーで発生します。また、Windows NT 4.0、2000、 XP を実行していて、OpLock をサポートしているファイル サーバーに接続するクライアントでも発生します。

Windows 2000
2000 を実行しているコンピュータでこの問題が発生する可能性を低減するには、Access データベース ファイルが存在する 2000 のファイル サーバーと、その 2000 のファイル サーバーに接続するすべての2000 のクライアント コンピュータに、Windows 2000 Service Pack 4 (SP4) をインストールする必要があります。
・最新の Windows 2000 Service Pack の入手方法
http://support.microsoft.com/kb/260910/

Windows XP
XP を実行しているコンピュータでこの問題を回避するには、Access データベースが存在するファイル サーバーに接続する各 XP クライアント コンピュータに、次の「サポート技術情報」  の資料に記載されているセキュリティ更新プログラムをインストールします。
・SMB 署名の問題により、グループ ポリシーが変更される。
http://support.microsoft.com/kb/329170/

Opportunistic Locking を無効にする
Windows NT 4.0 を使用している場合、Windows 2000 SP4 や  XP セキュリティ更新プログラムをインストールできない場合、または Windows 2000 SP4 や XP セキュリティ更新プログラムをインストールしてもなお頻繁に破損が発生する場合は、Opportunistic Locking を無効にして、問題を回避できます。

3)Microsoft Jet データベースを共有する場合の注意事項
Windows 95、98、Me のファイル共有に格納された Microsoft Jet データベース ファイルを、Windows 2000 または NT クライアントと共有することは可能な限り避けてください。

ネットワーク上に Windows 95、98、Me コンピュータの他に2000、NT コンピュータが混在していて、他のネットワーク ユーザーとデータベース ファイルを共有する必要がある場合は、Opportunistic Locking を無効にしたNT または 2000 サーバーにデータベース ファイルを保存して共有することを推奨します。
Windows 95、98、 Me のファイル共有に格納されたファイルを NT または2000 のクライアント コンピュータで共有すると破損が発生する可能性があります。これは、NT や 2000 のクライアントで Opportunistic Locking を無効にしても発生する可能性があります。

4)堅牢なファイル サーバーを使用する 
ファイル サーバーが、Windows ドメイン コントローラ、Exchange Server、SQL Server としての機能など、他の多数のプロセスの処理で酷使されることのないマシンであること。

これを推奨する理由は、 ファイル サーバーを再起動する等の作業を実施する環境下だと、クライアントとデータベースの接続が突然中断され、データベースが破損することがあります。このようなクライアント接続の中断を防ぐには、ファイル サーバーを再起動する前、またはファイル サーバーにソフトウェア更新プログラムを適用する前に、すべてのクライアントでデータベースを閉じる必要があります。

・サーバーには無停電電源装置(UPS)を用意して、断続的な停電や電力変動から保護する必要があります。 またサーバーマシンには、パフォーマンスの高いHDD、高性能のNIC、大容量のメモリを搭載することで、サーバーにかかる負荷を無理なく処理できるようにする必要があります。

5)ネットワーク接続を確認する
ネットワーク ファイル サーバーへのネットワーク接続が高速で安定していることを確認します。WAN、モデム接続、FTP を経由して Microsoft Jet を使用することは避けるようにします。Microsoft Jet はファイル共有型データベース システムですので、信頼性の低いネットワーク転送方式を使用するとクライアントが接続できなくなる確率が高くなり、この結果データベースが破損する可能性が高くなります。

6)各クライアントからの接続数を最小限に抑える
可能な限り、1 つのクライアントから Microsoft Jet データベースに対する接続は 1 つだけになるように設計します。

7)Microsoft Jet データベースへのアクセスに ADO を使用する
ADO から Microsoft Jet データベースにアクセスする場合、Microsoft Access ODBC ドライバではなく、Microsoft Jet OLEDB プロバイダを使用することを推奨します。

関連記事
マイクロソフト、「Access」の便利な機能を使って、業務アプリケーションを作成して活用する。

Access 2013 の新機能とAccess 2013 で廃止、変更された機能とバージョンアップの必要性について

第1回 ACCESS(アクセス)データベース作成ソフトについて
第2回 ACCESS(アクセス)データベース作成ソフトについて
第3回 ACCESS 2007の情報
第4回 ACCESS トラブル対処の情報1「mdbが壊れてしまった時」
第5回 ACCESSを「ファイル共有」で使用する場合の注意事項
第6回 ACCESS トラブル対処の情報2 「メモリ不足」エラーについて
第7回 ACCESSで Jet 4.0 データベースの動作環境を最適に保つ方法
第8回 Access 2000とMSDEを利用してクライアント/サーバーシステムを構築する
第9回 ACCESS 2010の情報
第10回 Access2000(mdb)からAccess2010(accdb)に変換する

Sponsored Links




コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*