にアップサイズするタイミングと方法これで、さまざまなアーキテクチャとデータベースエンジンオプションが利用可能にな
このプロセスで最も重要な部分は、すべてのAccessdatabasesをアップサイズする必要がないことを理解することです。 実際には、アクセスアプリケーションの大部分は、アップサイズされるべきではありません—ビジネスへのコストと混乱は、単にあなたのリソースの費用対効果の高い使用ではありません。 これらのデータベースは日々正常に動作し、スケーラビリティ、セキュリティ、100%の信頼性などの属性は必要ありません。 組織内のすべてのアクセスデータベースのうち、アップサイジングの候補となるのはほんのわずかです。
さらに、アップサイズの候補のリストから、データのみをSQL Serverに移動する費用対効果の高いプロセスを使用して大多数をアップサイズすることができ フォームやレポートの面でアプリケーションの機能のすべてがアクセスに保持されます。 NETなどの新しい環境でAccessapplicationを書き換える必要があるのは、プロジェクトのサイズアップの割合が最も小さいだけです。
次のセクションでは、データベース計画に関連する主要な各領域について検討し、各領域でのアクセスの実行方法について説明します。
セキュリティ
Microsoft Accessは3つの異なるセキュリティメカニズムを提供しています。
- データベースパスワード:データベースにパスワードを割り当てます。 パスワードを知っているユーザーのみがデータベースを開くことができます。
- Jet Workgroupセキュリティ:ユーザー、グループ、およびオブジェクト権限を定義して、データの表示/編集ができるユーザーと実行できるものを制限できます。 ワークグループセキュリティは、MDBデータベースでは使用できますが、ACCDBデータベースでは使用できません。
- ファイルの暗号化:データベースの内容はファイルレベルで暗号化できます。 ACCDB暗号化は、Mdbの暗号化よりも大幅に優れています。
残念ながら、これらのメカニズムは堅牢でも信頼性の高いものでもありません。 データベースパスワードは非常に単純な暗号化メカニズムを使用します。 実際には、Accessデータベースのパスワードを削除すると、無料で商用のパスワード”リムーバ”が簡単にweb上で発見されていることを考えると、簡単な問題です。 アクセスユーザーはこのような経過を心配しないかもしれませんが、IT管理者は確かにそうすべきです。
Jet Workgroupのセキュリティはより堅牢ですが、MDBデータベース全体の内容はファイルシステムから開いたままになります。 すべてのテーブルデータとコードはプレーンビューに格納されるため、文字列互換のエディタでMDBファイルを開き、コード、パスワード、テーブルデータを表示するのは簡単
最後に、アクセスには実際のデータベースファイルに対するすべてのユーザーの完全な読み取り権限が必要なため、共有ネットワークドライブを見ることがで
セキュリティが重要な場合、SQL Serverは、Microsoft Access、Excel、Word、またはユーザーがアクセスできるハードディスクにファイルを直接格納する他のプログラムよりもはるかに
信頼性とメンテナンス
信頼性は、大型化を検討する際に検討すべき重要なベンチマークの一つです。 実際、多くの成果重視のアプリケーションでは、信頼性が最も重要な考慮事項です。 Microsoft Accessはいくつかの理由でSQL Serverほど信頼性がありません。
データベースの破損
Microsoft Access/Jetデータベースに予期しない内部エラーまたは接続の問題が発生すると、データベースが破損する可能性があります。 破損したデータベースは、一般的に、データベースのすべてのユーザーをロックアウトし、データの損失やビジネスの中断をもたらします。
Microsoft Access/Jetデータベースは、さまざまな理由でSQL Serverよりも破損しやすいです。 Access/Jetはファイル共有モデルを使用するため、すべてのユーザーがデータへのアクティブな接続を同時に保持しています。 これらのユーザーのいずれかが予期せず接続を失った場合、データベースが破損する可能性があります。 ユーザーのネットワーク接続が断続的な場合、ドライバーのバージョンが最新でない場合、または競合するバージョンのJet Dllを使用して同じデータベースファイルを
Microsoft AccessにはCompact/Repairユーティリティが含まれていますが、重大なデータベース破損はこのユーティリティでは修正されません。 サードパーティの修理サービスが利用可能ですが、これには影響を受けるデータベースを別の場所に送信し、料金を支払い、混合結果で返されるのを待つ必要が
メンテナンスの問題
Windowsでは、Microsoft Accessデータベースを開いていてもコピーできるため、バックアップを作成できますが、ファイルのコピー時に誰かがデータを変更している場合は問題になる可能性があります。
Microsoft Accessデータベースを圧縮するには、すべてのユーザーがデータベースから離れている必要があります。 ロックは、ファイルレベルでデータベースに配置されます(*.ldbまたは*。laccdbファイル)とすぐにそれが最初のユーザーによって開かれるように。
マルチユーザー環境では、Microsoft Accessは現在データベースにいるユーザーを教えてくれないため、システムから人を離すのは管理上の頭痛の種になる可能性があります。 Total Access Adminプログラムを使用すると、データベースに出入りするユーザーをリアルタイムで監視でき、全員が終了した後にデータベースを圧縮できますが、Microsoft Accessのビルトイン機能ではありません。
バックアップを作成する前に、すべてのユーザーがAccessアプリケーションのログオフを確実にするプロセスを調整することは困難な場合があります。一般的なシナリオには、ユーザーがその日のオフィスを離れるときにコンピュータを離れることが含まれます。 これにより、データベースは開いたままになり、バックアップソフトウェアはデータベースファイルを確実にコピーすることができません。 多くの場合、これはバックアップが失敗した後にのみ検出され、システム管理者は問題を追跡し、次のバックアップが実行される前に解決されるこ
さらに、Microsoft AccessはSQL Serverのような自己調整ではありません。 失われたデータベース領域を自動的に再利用したり、インデックスとクエリを最適化したりしません。 このメンテナンスは、repair/compact機能を実行することによって実行されます。 Total Visual Agentプログラムを使用すると、指定したスケジュールでこれを自動化し、監査証跡を維持できますが、Microsoft Accessの組み込み機能ではありません。
組織が個々のデスクトップデータベースを定期的にバックアップしていない場合、人々はバックアップまたは保守されていないAccessデータベースをPc上に作 組織は、ExcelスプレッドシートやWord文書のように失われる可能性のあるユーザーデータとして扱うことができますが、ユーザーが基本的なシステム管理が提供されている場所にデータベースを保存できるように、より良いポリシーを設定する必要があります。
Microsoft Accessデータベースは、障害復旧のためにバックアップし、正常を維持するために定期的に圧縮する必要があります。 自動化されたシステムは、今日存在する多くのAccessデータベースと将来作成されるデータベースのためにそれを処理するために実装されるべきである。 SQL Serverのアップサイジングは、このような自動化されたプロセスは、データベースの継続的な使用のために実装することはできませんか、任意のデータを失
スケーラビリティ
スケーラビリティは、アプリケーションを呼び出すユーザーまたはプロセスの数が増えるにつれて、アプリケーションが許容可能な方法で 状況によっては、Microsoft Access/Jetがデータベースの需要をサポートするように拡張できない場合があります。
分割データベースアーキテクチャ
アップサイジングを行う前に、Accessデータベースには分割データベースアーキテクチャが必要です。 これにより、ユーザーアプリケーションデータベースがバックエンドの共有データデータベースから分離されます。 新しいリリースでデータを変更する必要がないため(テーブル構造が変更されていない場合)、共有データベースへのフロントエンドアプリケーションデータベースリ 詳細については、マルチユーザー環境をサポートし、パフォーマンスを向上させ、保守性を簡素化するためのMicrosoft Access Split Database Architectureに関する論文を参照してくださ スプリットデータベースアーキテクチャは、既存のAccessフロントエンドを維持するための小型化の努力にも役立ちます。
Microsoft Accessデータベースの単一のコピーがネットワークドライブ上に存在し、複数のユーザーが一度に開く場合、スケーラビリティの問題がある可能性があります。 しかし、それはSQL Serverにアップサイズ化するのではなく、分割データベースアーキテクチャを使用して対処する必要があります。
同時ユーザー数
Microsoft Accessデータベースが20人以上のユーザーをサポートできないという神話がありました。 これは、Microsoft Accessが1992年に導入されたときのケースであったかもしれませんが、それはかなりの時間のためにそうではありませんでした。
Microsoft Accessでは、技術的にはデータベースごとに最大255の接続が許可されています。 つまり、チーム全員が同時に使用する必要がない場合、チームのアプリケーションに何度も使用できることを意味します。
Accessデータベースがサポートできる接続/ユーザーの数は、アプリケーションがどれだけうまく設計され、実装されたかによって決まります。 うまく設計されたAccessアプリケーションは、まともなパフォーマンスを持つ100+同時ユーザーをサポートすることができます。 一方、不十分に設計されたAccessアプリケーションは、二人のユーザーでクロールで実行できます。 または、一部のプロセスは時間がかかり、どのデータベースが使用されていても遅くなります。 それは本当に技術が、実装についてではありません。
残念ながら、多くのAccessデータベースはベストプラクティスでうまく設計されておらず、実装されていません。 これは、ほとんどのAccessデータベースは、プロのデータベースアプリケーションを作成する経験や知識がないユーザーによって作成されるためです。 それらは時間の経過とともに構築され、必要に応じて新しい機能とデータモデルが追加されます。 結果は確実に少数のユーザーより多くを支えることができない全面的な解決である。
同時ユーザー数が比較的少ない場合は、ユーザー数の理由でMicrosoft Accessアプリケーションのサイズをアップサイズしないでください。 将来的に100人以上の同時ユーザーをサポートする必要がある場合は、アップサイジングを考慮する必要があります。
データベースの最大サイズ
各Microsoft Accessデータベースの最大サイズは2GBです。 これは多くのテキストと数値データですが、ファイルやグラフィックスが保存されている場合は簡単に超過する可能性があります。 大部分のMicrosoft Accessデータベースでは、データベースがこれまでに取得するよりもはるかに大きくなっています。 データベースが大きくなることがありますが、通常はコンパクトでより合理的なサイズに縮小されます。 また、圧縮時には、Microsoft Accessデータベースを随時逆コンパイルするようにしてください。
分割データベースアーキテクチャを使用すると、Microsoft Accessアプリケーションは、最大2GBを超える複数のMicrosoft Accessデータベースからのデータにリンクできます。 もちろん、データを複数のテーブルやデータベースに分割すべきではない場合、これは良い設計ではありません。
データベースが1GBを超える場合、または近い将来に2GBを超える場合は、アップサイズ化を考慮する必要があります。
Microsoft AccessとJetの異なるバージョン
Microsoft Accessには多くのバージョンがあります。 Accessデータベースソリューションは、Accessデータベース形式の特定のバージョンに依存し、特定のバージョンのAccessでのみ使用可能な機能、ADOやDAOなどのコンポーネントに依 AccessデータベースをPcに既にインストールされているユーザーに配布するのは簡単ですが、Accessを実行するために開くAccessのバージョンを制御するのは簡単ではあ
PCには複数のバージョンのAccessがインストールされている可能性があります。 ACCDBまたはMDBファイルを開くと、そのファイル拡張子に関連付けられているAccessバージョン(通常は最後に開かれたAccessバージョン)が直接起動されます。
さらに、Access2000が導入されたとき、新しいMDBファイル形式は以前のAccess97バージョンと互換性がありませんでした。 Access2000(またはそれ以降)でデータベースを開くと、データベースを新しい形式にアップグレードし、古いバージョンのユーザーがデータベースを開くのを防ぐことができま この問題は、2000バージョン以降再発していません。
Total Accessスタートアッププログラムは、組織がmicrosoft Accessデータベースを各ユーザーのデスクトップに集中的に管理および展開し、どのバージョンのAccessが起動されるかを制 これにより、ショートカットを使用してAccessアプリケーションを配布することが容易になり、データベースの最新バージョンは常に各ユーザーのマシンにイ また、アプリケーションをあるバージョンのAccessから別のバージョンにアップグレードすることも簡単になります。
異なるバージョンのMicrosoft Accessの管理、またはMicrosoft Accessデータベースの更新プログラムの配布の問題は、データベースのAccessフロントエンドを保持している場合、SQL Serverに移行 これは、Microsoft Accessを完全に置き換えることによってのみ対処できます。 それは即時の問題を解決するかもしれませんが、ユーザーが仕事を終わらせるのを防ぎます。 データベースの問題が解消されなかったため、従業員が代わりに悪いデータベース製品を購入するためにのみ、組織がMicrosoft Accessを禁止しているのを見てきました。 ほとんどの組織では、エンドユーザーがほとんどを処理できる場合、プロの開発者を使用して必要なすべてのデータベースを作成することは現実的ではあ
パフォーマンス
パフォーマンスは、Microsoft AccessデータベースをSQL Serverにアップグレードしたい一般的な理由です。 SQL ServerはMicrosoft Accessデータベースよりも高速に実行されることを前提としています。 結局のところ、SQL Serverは、要求されたレコードのみを送信する別のサーバーによって管理され、複数のCpuとマシンを使用して巨大なデータセットを管理できます。
Microsoft Accessは、ファイルベースであり、処理するクライアント(PC)の要求に応じて、データベース、テーブル、またはインデックス全体を送信します。
これはサーバーアプローチにエッジを与えるだろうが、我々は多くの状況でパフォーマンスが改善されていないことがわかりました。 ここではいくつかの理由があります:
- 多くのAccessデータベースは比較的小さい(100MB未満)。 現在のハードウェアとネットワーク接続では、渡されるデータの量は、そのいくつかのレコードまたはテーブル全体かどうか、ほぼ瞬時です。
- SQL Serverは、Accessデータベースにはない追加の作業を実行します。 たとえば、SQL Serverではトランザクションログを維持し、オーバーヘッドを追加する継続的なメンテナンスを実行できます。 小規模なデータベースがSQL Serverにアップサイズされると、パフォーマンスが低下します。
- SQL Serverは、2GBのアクセス制限をはるかに超える非常に大きなデータベースを処理するように設計されています。 それは小さなデータベースを考慮するもののために最適化されていません。
- 異なるリンクテーブルソースからクエリを実行すると、Access
- によって作業が行われるため、SQL Serverの最適化の恩恵を受けない可能性があります。 SQL Serverデータの場合、最後の要求以降にデータが変更されている可能性があるため、メモリ内のキャッシュはできません。
- 設計が不十分なテーブル、クエリ、またはVBAコードのセットは、データがAccessまたはSQL Serverにあるかどうかに関係なく、ゆっくりと実行されます。
パフォーマンス上の理由からSQL Serverにアップサイズする前に、AccessデータベースがAccessで実行できるように最適化されていることを確認してください。 SQL Serverに移動しても、深刻なデータベースとクエリの設計上の問題は修正されません。 Accessでこれらを修正するのは、実際にはSQL Serverで後で修正するよりも簡単なので、後でサイズを変更した場合にこれに費やされた時間と労力は保持され
Microsoft Accessデータベースに深刻な問題がないことを確認するには、Total Access Analyzerプログラムを使用してデータベースを文書化および分析します。 Accessデータベースの最適化に役立つ300種類以上のエラー、設計提案、およびパフォーマンスの問題を検出します。
比較的小規模なMicrosoft Accessデータベースの場合は、パフォーマンス上の理由だけでSQL Serverにアップサイズしないでください。 アップサイジング後のパフォーマンスの低下がある可能性があります。 Upsizeへの投資を行う前に、Accessの問題を最適化する方法を探します。 パフォーマンスの問題は、データストレージとは無関係である可能性があります。