Office Access および Jet データベース エンジン ネットワークのパフォーマンスと Windows 2000 ベースおよび Windows XP ベースのクライアントを最適化する方法

概要

低速の応答が予想よりも遅い実行すると、Microsoft Jet データベース エンジン ベースのプログラム、Microsoft Office Access など、Microsoft Windows 2000 ベースまたは Microsoft Windows XP ベースのコンピューターに、プログラムが応答します。この資料には、Windows 2000 ベースおよび Windows XP ベースのコンピューターのネットワーク パフォーマンスを最適化する方法に関する情報が含まれています。この操作を行うと、Office Access および Jet データベース エンジン ベースのプログラムをより迅速に対応。

はじめに

Windows 2000 ベースのオペレーティング システムまたは Windows XP Professional ベースのオペレーティング システムに Microsoft Windows NT 4.0 ベースのオペレーティング システムからコンピューターをアップグレードした後、Office のアクセスまたは Jet データベース エンジン ベースのアプリケーションのパフォーマンスの低下が生じることがあります。たとえば、次の現象が発生する可能性があります。
  • .Mdb ファイルは、開くには、予想以上に時間がかかります。
  • Access クエリは、予想よりもを実行するのには時間がかかります。
  • Access でリンク テーブルに基づくフォームを開いたときは、予想よりも長くかかります。
  • 挿入などの操作へのアクセスは、予想よりも時間がかかります。
  • ネットワーク リソースにアクセスするプロセスに、予想以上に時間がかかります。

詳細

Access および Jet データベース エンジン ベースのプログラムのネットワークのパフォーマンスは、次の条件に依存します。
  • アクセスのバック エンド データベースが保存されているファイル サーバーのファイル システムの設定です。
  • クライアントのキャッシュと最適化の方法です。
  • アクセスまたは Jet データベース エンジンを使用するプログラムのルーチンとメソッドを使用しています。

ファイル サーバーの最適化

次のメソッドは、Access データベースまたは Jet データベース エンジンに基づくデータベースを格納するファイル サーバー上のパフォーマンスを最適化する方法について説明します。

8.3 形式のファイル名の規則を使用します。

アクセスは、データベース ・ ファイル名が 8 文字または 8 文字より長いフォルダー名にデータベースがあるかどうかよりも長い場合に、追加クエリごとにネットワーク経由でGetShortPathNameW関数を呼び出します。

ファイル名でこの現象が発生し、8.3 形式のファイルの名前付け規則の制限よりも長いフォルダー名を指定します。長いファイル名とフォルダー名には、クエリを完了するのに必要な時間が長くなることができます。データベース ・ ファイルや、データベースが格納されているフォルダーの名前が 8 文字より長い場合は、ファイル名またはフォルダー名の名前を変更します。 ファイルとフォルダー名は 8 文字以内である必要があり、ファイル名の拡張子は 3 文字以内である必要があります。次の短いを含むデータベースのパスの例では 8.3 形式の規則のファイルとフォルダー名。
\Folder_1\Folder_2\AccessDb.mdb
長いファイル名およびフォルダー名を使用するデータベースのパスの例は次のとおりです。
\FolderForFirstDatabase\FolderForSecondDatabase\ThisIsA_BigDatabase.mdb
Windows では長いファイル名の詳細については、マイクロソフト サポート技術情報の資料を参照するのには次の資料番号をクリックします。

226403をコピーすると、短い形式 (8.3) ファイル名を変更可能性があります。

代わりに、分割されたデータベースを使用する場合は、8.3 形式の規則と同じでフロント エンド データベース リンクのファイルとフォルダー名を置き換えることができます。たとえば、次長いファイルとフォルダー名データベースのパスがあることを想定します。
\FolderForFirstDatabase\FolderForSecondDatabase\ThisIsA_BigDatabase.mdb
以下の短い形式のファイルとフォルダー名に対応するフロント エンド データベースに含まれるリンクの名前を変更することができます。
\Folder~1\Folder~2\Thisis~1.mdb
次の例では、短いファイル名の変換に長いデータベース パスを持つデータベースにリンクする方法を示します。
Function mcrLink()
DoCmd.TransferDatabase acLink, "Microsoft Access", "\\ ServerName\sharename \Folder~1\Folder~2\Thisis~1.mdb", acTable, "tblName1", "tblName1", False

End Function
フロント エンド データベース リンクのファイルとフォルダーの名前を 8.3 形式の規則と同じに置き換える方法については、マイクロソフト サポート技術情報の記事を表示するのには次の資料番号をクリックします。

891176アクセス ・ ベースのパフォーマンスの低下または Jet データベース ベースのプログラムが Windows 2000 または Windows XP を Windows NT 4.0 からアップグレードした後

マイクロソフトでは解説することのみを目的としてプログラミング例を提供しています。暗示あるいは明示していることに対しての保証はしておりません。ここで言う保証とは、特定の目的に対する商品性や適合性の暗示的保証を含んでいますが、それに限定されるわけではありません。この資料では、例示されているプログラミング言語およびプロシージャの作成やデバッグに使用するツールにお客様が精通していることを前提としています。マイクロソフトのサポート エンジニアは、特定のプロシージャの機能を説明することができますが、機能の追加またはお客様固有の要件を満たすようにプロシージャを作成するこれらの例は変更されません。

共有違反通知待ち時間をオフにします。

ファイル サーバーのパフォーマンスを向上させるために、共有違反通知待ち時間をオフにすることができます。これを行うには、アクセスまたは Jet データベース エンジン ベースのプログラム データベースを格納するファイル サーバーには以下の手順を実行します。


重要 このセクション、方法、またはタスクには、レジストリの変更方法が記載されています。レジストリを誤って変更すると、深刻な問題が発生することがあります。そのため、レジストリを変更する際には十分に注意してください。万一に備えて、編集の前にレジストリをバックアップしてください。そうすることで、問題が発生した場合にレジストリを復元することができます。レジストリのバックアップ方法および復元方法の詳細を参照するには、以下のサポート技術情報番号をクリックしてください。
322756の方法をバックアップし、Windows のレジストリを復元するには
  1. [スタート] ボタンをクリックし、[ファイルを指定して実行] をクリックして、「regedit」と入力してから [ OK] をクリックします。
  2. 次のレジストリ サブキーを見つけます。
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters
  3. パラメーターを右クリックして新規作成] をポイントし、[ DWORD 値] をクリックして、 SharingViolationDelayと入力し、 ENTERキーを押します。

    注: SharingViolationDelay サブキー エントリを作成するときに割り当てられている既定値は 0x0 に。やるべきです。

    SharingViolationDelay サブキーのエントリが既に存在する場合SharingViolationDelayエントリを右クリックして、[変更] をクリックして、 0と入力し、[ OK] をクリックします。
  4. パラメーターを右クリックし、新規作成] をポイントし、[ DWORD 値] をクリックして、 SharingViolationRetries、し、 enterを入力します。

    注: SharingViolationRetries サブキー エントリを作成するときに割り当てられている既定値は 0x0 に。やるべきです。

    SharingViolationRetries サブキーのエントリが既に存在する場合SharingViolationRetriesエントリを右クリックして、[変更] をクリックして、 0と入力し、[ OK] をクリックします。
  5. レジストリ エディターを終了します。
共有違反通知の遅延の詳細については、マイクロソフト サポート技術情報の記事を表示するのには次の資料番号をクリックします。

150384ファイルが別のコンピューターで開いている場合、共有ファイルへのアクセスを遅延は、

バックエンド データベース ファイルを NTFS ファイル システム ボリュームに移動します。

ファイル アロケーション テーブル (FAT) 上に、Access データベースまたは Jet データベース エンジンを使用するプログラム データベースがある場合・ ベースのボリュームでは、バックエンド データベース ファイルを NTFS ボリュームに移動することによってパフォーマンスを向上させることができます。

NTFS の詳細については、マイクロソフト サポート技術情報の記事を表示するのには次の資料番号をクリックします。

100108の概要の FAT、HPFS、NTFS ファイル システム

アクセスまたは Jet データベース エンジンのデータベース ファイルを移動する方法の詳細については、Access のヘルプで「コピーまたは Access ファイルの移動」で検索してください。

自動の短いファイル名の生成を無効にします。


NTFS ファイル システムに自動の短いファイル名の生成を無効にします。これを行うには、アクセスまたは Jet データベース エンジン ベースのプログラム データベースを格納するファイル サーバーには以下の手順を実行します。
重要 このセクション、方法、またはタスクには、レジストリの変更方法が記載されています。レジストリを誤って変更すると、深刻な問題が発生することがあります。そのため、レジストリを変更する際には十分に注意してください。万一に備えて、編集の前にレジストリをバックアップしてください。そうすることで、問題が発生した場合にレジストリを復元することができます。レジストリのバックアップ方法および復元方法の詳細を参照するには、以下のサポート技術情報番号をクリックしてください。
322756の方法をバックアップし、Windows のレジストリを復元するには
  1. [スタート] ボタン、[実行] をクリックして、 「regedit」と入力] をクリックしてし、 OK です。です。
  2. 次のレジストリ サブキーを見つけます。
    HKEY_LOCAL_MACHINE \SYSTEM\CurrentControlSet\Control\FileSystem
  3. NtfsDisable8dot3NameCreationを右クリックし、[変更] をクリックして、 1と入力し、[ OK] をクリックします。
  4. レジストリ エディターを終了し、コンピューターを再起動します。
注: この変更を行った後の短い名前形式を使用するファイルは 32 ビット プログラムで利用されます。ただし、長いファイル名がこの変更を行った後に作成されるファイルは、16 ビット プログラムで使用できるできないがあります。



詳細については自動の短いファイル名の生成 NTFS では、マイクロソフト サポート技術情報の記事を表示するのには次の資料番号をクリックします。

121007 NTFS パーティション上で 8.3 形式の名前作成を無効にする方法

詳細については、次の文書番号をクリックして、マイクロソフト サポート技術情報の資料をご参照ください。

210638自動の短いファイル名の生成を無効にする方法

Windows Server 2003 ファイル サーバーには、アクセスまたは Jet データベース エンジン データベース ファイルが存在する場合は、ファイル ・ システム ・ エイリアスをオフにすることができます。エイリアスは、Windows Server 2003 に含まれている機能です。この機能により、複数の長いファイル名または複数の短いファイル名が同じファイルを参照してください。ファイル ・ システム ・ エイリアスを無効にすると、Windows Server 2003 ベースのコンピューターで使用可能なサーバー サービス キャッシュを増やすことでパフォーマンスが向上できます。



重要 Windows Server 2003 ベースのコンピューターで使用するには、マウントなどのシステムのエイリアスをファイルまたは再解析ポイント、行うことこの手順を実行します。



ファイル サーバーのエイリアスを無効にするには、Access データベースまたは Jet データベース エンジン データベースを格納する Windows Server 2003 ファイル サーバー上で以下の手順をします。


重要 このセクション、方法、またはタスクには、レジストリの変更方法が記載されています。レジストリを誤って変更すると、深刻な問題が発生することがあります。そのため、レジストリを変更する際には十分に注意してください。万一に備えて、編集の前にレジストリをバックアップしてください。そうすることで、問題が発生した場合にレジストリを復元することができます。レジストリのバックアップ方法および復元方法の詳細を参照するには、以下のサポート技術情報番号をクリックしてください。
322756の方法をバックアップし、Windows のレジストリを復元するには
  1. [スタート] ボタンをクリックし、[ファイルを指定して実行] をクリックして、「regedit」と入力してから [ OK] をクリックします。
  2. 次のレジストリ サブキーを見つけます。
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters
  3. パラメーターを右クリックして新規作成] をポイントし、[ DWORD 値] をクリックして、 NoAliasingOnFileSystemと入力し、ENTER キーを押します。
  4. NoAliasingOnFileSystemを右クリックし、[変更] をクリックして、 1と入力し、[ OK] をクリックします。
  5. レジストリ エディターを終了し、コンピューターを再起動します。

クライアントの最適化

次のメソッドは、Access データベースまたは Jet データベース エンジンに基づくデータベースにアクセスするクライアントのパフォーマンスを最適化する方法について説明します。

高度なファイル名のキャッシュを有効にします。

既定では、Windows 2000 ベースおよび Windows XP ベースのオペレーティング システムだけキャッシュする短いファイル名と短いフォルダー名。ファイル名とフォルダー名、8.3 形式の規則に準拠しているのです。長いファイル名と長いフォルダー名もキャッシュするため、Windows 2000 ベースまたは Windows XP ベースのコンピューターに高度なキャッシュを有効にできます。ネットワーク経由でファイルにアクセスするときに、パフォーマンスを向上させることができます。



Windows XP Service Pack 1 以前のバージョンと高度なキャッシュを有効にする方法については、マイクロソフト サポート技術情報の記事を表示するのには次の資料番号をクリックします。

834350ネットワーク リソースへのアクセスは、Windows の以前のバージョンよりも Windows XP で時間がかかる

Windows 2000 高度なキャッシュを有効にする方法については、マイクロソフト サポート技術情報の記事を表示するのには次の資料番号をクリックします。

843418が発生する可能性がありますは、ネットワーク リソースにアクセスするとき、または Windows 2000 で Microsoft Access を使用するときにパフォーマンスを低下

注: Windows XP Service Pack 2 および Windows Server 2003 は高度なキャッシュの種類に含まれています。ただし、16 進値を 0x10 に最適化されたパフォーマンスのための次のレジストリ サブキーのデフォルトのレジストリ エントリを設定する必要があります。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MRxSmb\Parameters

最適化 Windows XP ベースのコンピューターにクエリを追加します。

Windows XP ベースのコンピューターは、キャッシュと書き込みが発生するトランザクションを追加するごとにファイル サーバーにデータベース全体をフラッシュします。最適化することができます、修正プログラムを適用して、Windows XP ベースのコンピューター上の Windows のレジストリ エントリ DisableFlushOnCleanup を変更することによってクエリを追加します。を最適化する方法の詳細については、追加クエリは、Windows XP ベースのコンピューターで、マイクロソフト サポート技術情報の記事を表示するのには次の資料番号をクリックします

825433のパフォーマンスが低下、Windows XP ベースのクライアントから共有のファイル ベースのデータベースにデータを追加します。

アクセスまたは Jet データベース エンジン ベースのデータベースのルーチンの方法を最適化します。

次の推奨事項には、ルーチンおよびアクセスまたは Jet データベース エンジン ベースのプログラムで使用されるメソッドのパフォーマンスが向上します。

  • 分割データベース構成を使用します。分割データベース構成は、フロント エンドおよびバックエンドのデータベースの構成とも呼ばれます。

    分割されたデータベースを構成する方法の詳細については、マイクロソフト サポート技術情報の記事を表示するのには次の資料番号をクリックします。

    162522の分割データベース アプリケーションと Access のアプリケーションを再配布するときの問題

  • Windows オペレーティング システムをクライアント コンピューターとファイル サーバー コンピューター上で利用可能な最新の service pack をインストールします。
  • クライアント コンピューターに Jet 4.0 Service Pack 8 またはそれ以降のバージョンをインストールします。Jet データベース エンジンの最新の service pack の入手方法の詳細については、マイクロソフト サポート技術情報の記事を表示するのには次の資料番号をクリックします:

    239114 Microsoft Jet 4.0 データベース エンジンの最新の service pack の入手方法

  • バックエンド データベース ファイルへの開いた接続を維持するために、すべてのデータベース フロント エンド コンピューターを構成します。これを行うには、1 つのテキスト フィールドと 1 つのレコードを含むバックエンド データベース ファイルにテーブルを作成します。たとえば、次の構成を持つテーブルを作成します。
    テーブル名: tblConnect


    フィールド名: フィールド 1


    データ型: テキスト

    最初の記録: [接続]





    フロント エンド データベースにこのテーブルをリンクし、テーブルに基づくフォームを作成します。起動ルーチンと非表示のフォームを使用してデータベースを開きます。マクロまたはスタートアップ フォームで、次の例のように、起動ルーチンを配置できます。
    DoCmd.OpenForm " tblConnect",acNormal ,,,,acHidden 


    代わりに、このテーブルに基づくレコード セットを開くことができます。レコード セット変数は、モジュールのグローバル宣言セクションで宣言するのには。フロント エンド データベースを終了するときに閉じられることもあります。
  • 複数のユーザーがデータ入力のためにデータベースに接続するときは、テーブルの代わりにフォームを使用します。

データベースのパフォーマンスを最適化するためのベスト プラクティス

アクセスまたは Jet データベース エンジンを使用するプログラムのパフォーマンスを最適化するための次のベスト プラクティスをお勧めします。
  • ループなど、リソースの集中的な操作が含まれているアクセス モジュールでデータベースのプログラムのコードを最適化します。これを行うには、次の例のように BeginTrans、CommitTrans ステートメントでは、ループのコードを囲みます。

    BeginTrans  Loop code
    CommitTrans

    これにより、Jet データベース エンジンに複数の更新プログラムを蓄積し、単一のバッチとして記述できます。

    アクセス モジュール内のコードを最適化する方法については、マイクロソフト サポート技術情報の記事を表示するのには次の資料番号をクリックします。

    208858 acc 2000: クライアントとサーバーのパフォーマンスを最適化します。

  • 既定では、便宜的ロックは、Windows クライアントで有効になります。便宜的ロックが無効になっていないクライアント コンピューターにすることを確認します。

    Windows では、便宜的ロックを構成する方法の詳細については、マイクロソフト サポート技術情報の記事を表示するのには次の資料番号をクリックします。

    296264は、Windows では、便宜的ロックを構成します。

    便宜的ロック、パフォーマンスに関する詳細については、マイクロソフト サポート技術情報の記事を表示するのには次の資料番号をクリックします。

    303528 Jet 4.0 データベースを正常な状態に保つ方法

  • UNC パスの代わりにマップされたドライブを使用して、Access データベースまたは Jet データベース エンジンに基づくデータベースを格納するファイル サーバーに接続します。
データベースのパフォーマンスを最適化するには、Microsoft SQL Server、Access または Jet データベース エンジン ベースのプログラムに移行を検討します。クライアント/サーバー モデルは、多くの接続のサービスを提供するアクティブなデータベースのファイル ・ サーバ ・ モデルよりも適しています。SQL Server を使用して大幅にパフォーマンスが向上し、堅牢性を向上します。

関連情報

アクセスの詳細についてには、Jet データベース エンジンとネットワークのパフォーマンス、マイクロソフト サポート技術情報の記事を表示するのには次の資料番号をクリックしてください。

275085のバグ: Access 2002 および Office Access 2003 のリンク テーブルのパフォーマンスが低下します。

261000のバグ: Access 2000 のリンク テーブルのパフォーマンスの低下

209126の Access データベースのクエリのパフォーマンスについて

288631最適化とデータベースの最適化のパフォーマンスを向上させるために

209126の Access データベースのクエリのパフォーマンスについて

290181ユーザーは、Microsoft Access で有効な名前の自動修正とオブジェクトを開くときにパフォーマンスが低下します。

Jet 4.0 を使用してアプリケーションのパフォーマンスを向上させるために240434方法

289533が Microsoft Access でデータベースの設計に関する情報の入手先

870753の説明、Jet 4.0 データベース エンジン 837001 修正プログラム パッケージ: 2004 年 7 月 21 日

303528 Jet 4.0 データベースを正常な状態に保つ方法

クライアント/サーバーのパフォーマンスの最適化を208858

239114 Microsoft Jet 4.0 データベース エンジンの最新の service pack の入手方法

891176アクセス ・ ベースのパフォーマンスの低下または Jet データベース ベースのプログラムが Windows 2000 または Windows XP を Windows NT 4.0 からアップグレードした後

プロパティ

文書番号:889588 - 最終更新日: 2017/02/01 - リビジョン: 1

フィードバック