クライアントサーバータイプのソフトウェアのバックエンドでMSAccessを使用し、データベースファイルがクライアントからサーバーに送信される場合、SQL Serverと比較して、データベースの処理、転送速度、またはパフォーマンスに問題が発生しますか?
4 に答える
私の経験では、小規模な LAN ベースの環境では、MS Access MDB ファイルと SQL Server のパフォーマンスには 4 つの大きな違いがあります (小規模とは、同時ユーザー セッションが 10 を超えない 20 ユーザー以下を意味します)。
- 安全。アクセス MDB ファイルを使用するには、クライアントが MDB ファイルに直接アクセスできる必要があります。一部のユーザーのデータ アクセスを制限する必要がある場合、このアーキテクチャは本当に安全ではありません。アクセス ユーザー レベルのセキュリティは破られる可能性があります。セキュリティ要件が満たされている場合は、OS でファイル レベルまたはファイル共有レベルのセキュリティを使用できます。
- MDB ファイルは、ネットワーク エラーの結果として破損する可能性があります。SQL Server データベースが破損したのを見たのは、サーバーのハードウェア障害の結果だけでした。
- MDB ファイルの上限は約 25 ユーザーであり、Access は挿入、更新、および削除の大量のトランザクションに敏感です。
- ほとんどの場合、Access では、すべてのユーザーがデータベースからサインアウトして、テーブルの構造に変更を加える必要があります。これは、SQL Server で DDL スクリプトを使用するよりも不便です。Access を使用する場合は、 LDBViewのコピーを取得することをお勧めします。これにより、データ構造に日常的な変更を加えるたびに、誰をデータベースから除外する必要があるかがわかります。
ユーザー対象者が少なく、展開の単純さがクライアント組織にとって魅力的である場合は、バックエンド MDB ファイルを使用するケースがあります。ただし、新しいプロジェクトを開始する場合は、SQL Server バックエンドの利点を慎重に検討する必要があります。多くのユーザーが利用する場合は、SQL Server を強くお勧めします。
最新バージョンの MS Access と適切に構成された LAN で MDB ファイルを使用すると、転送速度に問題が生じることはほとんどありません。
MS Access をバックエンド データベースとして使用する場合、それはクライアント サーバー ソリューションではありません。Jet データベース (MS Access が作成する種類) は、クライアント サーバーではなく、ファイル ベースです。
クライアントと DB の間の帯域幅が高い場合 (同じネットワーク上の別のサーバーのように)、転送速度に関連する大きなパフォーマンスの問題は発生しません。ただし、低速の WAN リンクを介してクライアントから DB に接続している場合は、パフォーマンスのボトルネックが確実に発生する可能性があります。
ネットワーク経由のアクセス、特に WAN の使用に関する記事があります。
すでにいくつかの良い答えがあります。しかし、見落とされがちなことは、軽量の mdb を使用すると、重量のある SQL サーバーよりもはるかに優れたパフォーマンスが得られるシナリオがあるということです。たとえば、マルチユーザー アクセスはそれほど重要ではないが、データに対して多くのバッチ処理を行う必要がある場合、mdb ファイルを使用するとはるかに高速になります。一方、従来の OLTP 処理が多くのユーザーで行われている場合は、実際のクライアント/サーバー データベースの恩恵を受けることができます。