質問

小さなプロジェクトでの活用、簡単なデータベースが非常に光の要件:複数のテーブル以数千の記録計でに2-3ユーザーいます。純ます。

データベースとしてサーバー(人でも表現版というような巨大な漏この場合、非常に簡単なMDBデータベースがほとんどの条件です。私ただし、並行処理.私の考えである。mdbファイル共有ネットワークやアクセスをユーザーのこのファイルから.ネットおります。Dbは、主に向けた読み取り専用操作がユーザーが更新する必要がある/削除します。ここまできない時には、dbのロックなど)での更新をクライアントを行うことができます。

でも、この問い続けられるようにするために、これらのポイント:

  • どの同時読み込みの取り扱いMDB?
  • どの同時更/削除の取り扱いMDB?
  • がコンセプトのロックの方法を教えて下さいレバレッジしました。純します。
  • であるのMDBファイル共有ネットワークの良恐ろうか?

としています。純また、愛知りたいのですが識並行処理の問題に適切に対応していきます。にて、 る例外にすべきだとどのような行動をお勧めになりますか?

編集:では私の悪い問題の説明が、最も回答いよう助言を行うためのフルに吹DBサーバーです。わからなくはないの違いや特典サーバの設置と実際の実数のプロジェクトを指定し、Oracle.この問題は、しかし、私は関係するアクセスやその並行処理の問題ではないでください提案をdbサーバーです。

おります。

役に立ちましたか?

解決

ことを義務付けられているが、誰も実際に回答します。こちらの質問:

  1. どの同時読み込みの取り扱いMDB?
  2. どの同時更/削除の取り扱いMDB?
  3. がコンセプトのロックの方法を教えて下さいレバレッジしました。純します。
  4. であるのMDBファイル共有ネットワークの良恐ろうか?

最初の二つの問いには答えることの一つ説明を受けます。重要な点に注意。回答私をここに特有のジェット国際開発金融機関とそのvariantではありません完全に適用し、新しいファイル形式を導入し始めA2007、ACCDB形式です。をしていないので十分に検討の影響の除去ジェットULSからのエースとのコメントを以下のとジェットULS以下のフードです。多くのものができる代わりに"LACCDBファイル"の"LDBファイル"の結果は同じになります。

1-2)の同時読み込み/更/削除

ジェットデータベースエンジンと呼ばれる"ファイルサーバーの"データベースがありませんのサーバ側の鬼の管理I/Oのデータファイルはサーバー通信を行います。することになるすべてのお客様が利用ジェットMDBているファイルの読み込みます。

ることはもちろん、レシピのための災害の場合は一部機構築に取り扱いに並行アクセスのファイルです。

ジェットを使用記録-ロックファイルの場合MDBは"MyFile.MDB"の記録をロックするとファイルと同じフォルダが保存されているMyFile.LDB".のLDBファイルかどうかを記ジェットULSユーザーのMDBファイルのオープン、ワークステーションとユーザーが接続されてから、すべての必要な情報のための交渉を並行処理です。

しかしながら、方切歯にクライアント/サーバーのデータベースエンジンのことですプリミティブや危険なものの、当時のジェットデータベースエンジンを開発し、その目的として使用するデスクトップのデータベースエンジンの小型作り、競合他のデスクトップdbエンジンにおいてxBase、パラドックスの両方を用いて類似のロックファイルの管理の併用からデータファイルを複数おります。

内のジェットデータベースファイルのロックを適用は、データページにジェットが4増加した4Kはジェット3.x以前にも2K)、または、過去最高のレベルデータが得られない場合にはテーブルも作成や登録を行レベルロックしなければなりません。日本のジェット4、録音レベルのロックがあると多くの人に遅く、特に使用時は悲観的ロックで多くのアクセス開発を利用したことのないものがページのレベルロック(@David Fenton上げる。).

実際に、利用時に楽観的ロックを回避するための並行処理で問題が付いちゃう悲観的ロックしなければなりません。

一部の注意事項:

  1. DAOの記録レベルロックできないだけに限っくページレベルのロックしなければなりません。

  2. DAOは、オプションを制御する楽観的な/悲観的ロックのLockEdits引数のOpenRecordset方法、相互作用する一部の設定で指定されたOpenRecordsetオプション引数(例えば、オプションdbReadOnlyではご使用になれませんLockEdits).のほか、ロックがオプションのための一貫した/矛盾の更新、すべてのこと交流できるお取引(例えば、変更内uncomitted取引にならないことが可能に他のユーザーは、このような紛争とが可能であり、これまでのように入れて読み取り専用のロックのテーブルに終えることができました。.

からADO/OLEDB、これらのジェットの並行処理制御機構へのマッピングに関連する機能と引数が不/OLEDB.使用いジェットからのみアクセスまでの交流によってのみDAOきない助言をどのようにコントロールするから曇/OLEDBがポイントは、ジェットデータベースエンジンス制御のレコードのロックの場合、アクセスでプログラム(流通のアクセスのUI)--だが複雑化してきております。

3)ロック。当期純

できなアドバイス、外んが使用OLEDBとしてお客様のデータインタフェースは、ロッキング機能を制御するものであり、dbエンジンそのものであるが、コントロールする方法でOLEDB.できない場合があり写っているように思いOLEDBではクライアント/サーバアーキテクチャ、ジェットのファイルベースのロックあたりにマップされることなのです。

4)MDBネットワーク共有

ジェットは非常に僅かですねずネットワーク接続します。そのため、低帯域ネットワークの脆弱性のジェットデータベースの開界が遅く接続します。

これは、主要なチャンクのデータベースファイルへ与える影響は軽微であり、ワイヤーのカルコンピュータにも対応しています。現在、多くの人が誤って請求項が全体のMDBファイルが引かれ、ワイヤ、または全体のテーブルは引きの線としています。そうではないですね。その代わり、ジェットの最初の要求を目指す、ご要望以上を履行するために必要なクエリをしてから、その結果を判定し正確にデータのページを必要として引きのみポーネントが追加されました。これは驚くほど効率的にどんどん大きくなっています。

また、ジェットはとても知的なキャッシュできるというわけで最初のデータを依頼し、その後のご請求と同じデータがほぼ瞬時にでキャッシュ.

今がわからなければ、物価連動テーブルが、こちらをクリックして下さいあく全体のテーブルとテーブル全体のスキャン!同様に、場合ベース基準クライアント側の機能の一部をなすジェットのSQL方言,起き抜き、フルテーブルを並べ替えたい、と言い換(MyField,"A","Z")を引き起こして、フルテーブルスキャン).でも、そういうものは非効率とクライアント/サーバーアーキテクチャもので、すぐ共感のスキーマの設計インデックスなく利用UDFsやジェット対応。一般的に、同じものを有効なクライアント/サーバーを効率的にジェット(大きな違いされているジェットだり、より持続的な接続を避けるためにオーバーヘッドの再現にLDBファイルは、著).

その他のものを避けようとしてい利用ジェットデWiFi接続します。しか信頼できないWiFiがかか迷うのでジェットデWiFi接続します。

下線

でご利用の場合は、現場の意見を反映してデータストアデータからのサーバーにございますのでご注意下さいデータとしてのウェブサーバのRAMとが可能です。ということができ、ディスク容量が異なることによって物理的ウェブサーバーです。がいることはできませんただし、信頼性の高い製品を迅速にLAN接続します。GB Lanのデータセンターは一般的れていただきたいと思います非常に働きやすいジェットデータとの接続用です。

共同利用するなど、複数のアワークステーションの実行VB.NET デスクトップ共有アプリの単一ジェットMDBデータとして店舗でも安全にデータファイルに信頼されるファイルサーバーです。可能な場合には、こうに"ジェットMDBファイル機器な複数の目的(例えば、ドメインコントローラーが稼働する交換、まさにSQLサーバーとして活動しファイルサーバ、プリントサーバーあたりの最高のロケーション)アプリケーションで交換できるひどく妨げにファイルサーバー機能をていただきたいと思います勧められなけMDBファイルサーバーはマルチタスキング交換サーバーではない極めて低い。

その他の注意事項:

  1. ないでください"を配布しMDB上で再現ファイルシステムのない限り、すべてのユーザーを使用してレプリカ.この場合は二つのサーバを再現ファイルとなって編集のMDBファイルの両方からのサーバーこれは腐敗したファイルのほとんど。

  2. でおすすめの対蓄他のMDB以外でのネイティブWindowsファイルシステムおよィMicrosoft、SMBネットワークです。このことによりNovell、Linux、SAMBA.の主な理由はいくつもあるそう低レベルのフックからジェットが低レベルロック機能のWindowsファイルシステムは100%で複製その他のファイルsystsm.現在、私は非常に保守的で、多くの優秀なアクセスの開発を報告して優れた成果を適切に設定されNovellファイルサーバのメンテナンス(あなたのとする必要があるかを記録-ロックの調整は、そのようなも少ない可能性があり関連するこれらの日も早くなんとかしない場合はNovellる!), との優れた性能とLinuxベースのファイルサーバのメンテナンスを走SAMBA.私は慎重であることをおすすめのクライアントする技術を開発しているので(この様にサンデバイスとなっているわけではないため、多くのWindowsします。

  3. 思って任意の仮想化ファイルシステムも同じ理由しかし、私のクライアントの人は彼女のシングルユーザアクセスアプリの下に列Mac空気まず単一の問題です。そのシングルユーザのロックの問題は比較的軽微です。

わからない場合がご質問に回答います。すべて私の13年間の通常の使用のジェットとしてアクセスを開発-研究にのみ掲載)ジェット、ジェットデータベースエンジンのプログラマ-ガジェット3.5。しんのの提供リアルの引用な場合もニーズの詳細をもってちょうちんの研究があります。

他のヒント

私は長年にわたってAccessでダースほどの小規模なビジネスアプリケーションを構築しています。ほとんどは、一度にそれらの上に10-20のユーザーの最大を持っています。データベースは、「アプリ」と「データ」データベースの間で分割されています。パフォーマンスがまともとconcurrancyと何の問題です。また、破損がアクセス2000 SP2以降、基本的には非existantてきました。

それは(プロの開発者によって)正しく行われているだけでなく場合は、アクセスが非常に細かい開発パッケージであると、私はそれで良い生活をした -

「今までのアクセスを使用していない」と言って、多くの人々があります。私の顧客は私が構築するものと非常に満足しています。

私は通常、最大10人のユーザーのために、ネットワーク共有から実行し、Accessデータベースを使用する2つの商用製品を書きました。あなたはそれを乱用していない場合は、実際には問題ありません。あなたは多くの開発者はこれまで存在し得ることはありませんが、見ることができるように - と、そのローエンドの性質上、その上に構築された安っぽいハックがたくさんあります。一つの製品の場合は、私があるため他の人が詳細に記載されているすべての問題のアプリを再設計しなければなりませんでした。私はそれをクリーンアップした後、しかし、私はインストールの何百もの間で、データベースの整合性の問題があったことはありません。

その一つの大きな利点は、バックアップ、復元、および解剖するために、ノートパソコンにコピーすることは容易である単一ファイルデータベースです。ほとんどのsqliteを含むすべての選択肢は、(いくつかはそれを認めることはありませんが)、今してDBAの注目のいくつかのフォームを必要とします。

ほとんどの場合、アクセスはデフォルトでいくつかのDDL(例えばスキーマの変更)のためにレコードロック、およびファイルのロックを提供しています。

しかし、Microsoftは、基本的には、それを時代遅れにして、あなたの同僚のいくつかは、それを使用するためにあなたに軽蔑をヒープされます。

(この時点で、私は通常、カバーのためのアヒルとは、「着信!!!」叫ぶ。)

のアクセスが本当にデスクトップ、単一のユーザー・ソリューションです。実際には、「1」の上側のユーザ制限があります。

また、ローカルエンジンです。それはあなたがクエリを実行すると、データを処理するためのローカルJETエンジンにネットワークを介して引かれる、です。 .ldbファイルがロックを制御するためにネットワーク共有に置かれます。

あなたはサーバー側のエンジン(MSSQL、MySQLのは、Sybase、「Orableなど)を使用している場合は、

あなたはあなたにそれを返すの結果を処理エンジンにクエリを送信してください。ロックが内部に保持されます。

これは、パフォーマンス、安定性、データ整合性のための巨大な意味を持っています。

ユーザーは、リセットボタンを押すことを決定した場合、

、アクセスdatabseが破損しているとあなたがた.ldbを削除する必要がありますの公平な機会を持っています。

適切なデータベースエンジンと(MSSQL、Sybaseの「Orable:私は、MySQLのバックアップを好きではない)も、その後、適切なバックアップ機能。あなたはファイルINUSEバックアップにはいくつかのwhizzyソフトウェアを持っていない限り、それはあなたがアクセスDBであなたのデータのないバックアップを持っていないだろうことが可能です。

DBエンジンは、はるかに効率的かつエレガントに任意のファイルベースのシステムより同時実行性とトランザクションを処理することができますので、

私は、具体的ロックを述べています。

私は、データベースエンジンのフロントエンドとしてAccessプロジェクトを使用しますが、アクセスのバックエンドとの完全なクライアントアプリケーションへの投資ではない見ることができます。

私はそれがこの小さな国で専門職のサイズによって制限されるとして成長することができません非常に小さく、民間のサイト上でのバックエンドとして、より適切ジェットをAccessを使用して、またはされています。 3年間で、私は何の問題もありませんでした。毎日それを使用して約30〜40と100人の未満のユーザーは、あります。テーブルには、数千枚のレコードを持っています。

私はAccessで多くの経験を持っていないが、このリンクはあなたに役に立つことがあります。

http://office.microsoft.com/en-us/access /HP052408601033.aspxする

「あなたはこれを実装するための最も簡単な方法です。ネットワークサーバー上または共有フォルダ内の全体のAccessデータベースを置くことができます。誰もがデータを共有し、同じフォーム、レポート、クエリ、マクロ、およびモジュールを使用しています。これを使用します戦略あなたは、誰もがAccessデータベースを同じように使用するか、自分自身のオブジェクトを作成するユーザーをサポートすることができない場合にしたい場合は。 "

「あなたは共有モードでのAccessデータベースファイル(.MDB)、Microsoft Accessはまた、ロック情報ファイル(の.ldb)を作成開くと同じファイル名(例えば、Northwind.ldb)と同じフォルダにあるようにデータベース・ファイル。このロック情報ファイルはデータベースの各共有ユーザの(Adminなど)(例えばMYPCなど)コンピュータ名とセキュリティ名が格納されている。Microsoft Accessは、ほとんどの場合において、同時実行を制御するためにこの情報を使用してMicrosoft Accessが自動的に削除最後のユーザーがデータベースファイルを閉じます。」

ロック情報ファイル

アクセスするマルチユーザ-かつてのMicrosoftおすすめで4または5のユーザーが実際にいただくことをお勧めしを使わないアクセスデータベースがある以上、単一のユーザーはまないの選択で"真実-友情-勝利-真実のためには、一定のprovisos.

私の経験のシステム用のアクセスデータベースバック-すべて取得したその他の開発者とすべての場合は私に移動してSQLサーバーとしての優先課題として更後の即時更新、修正に必要なその場合は契約が一般的ときの上司の支払いのです。時間のためには通常数ヶ月なので、いい走りを兼ための合理的な長さの時間数を提供いたします。

実際にで一般的に作業】やシステムがなく同時に挿入/更新となく使用します。主な実問題を経験。

  1. この責任を負い汚職-それだけです。一般的なものとして問題となっているファイルのオープンやコンパクト及び修繕の問題も良いバックアップ体制が重要である。

  2. で遅くなります。毎回思ドシステムにSQLサーバーの私を受けた多くのカレッジスピードアップのためのシステムからのユーザー

  3. データベースのファイルbloatsでのアクセスのマークとして更新または削除されます。これらをゆるやかにするシステムとしてのファイルがロードされます。その結果の一部制度と圧縮のデータは、通常、日常的には不可欠です。

上記のすべて少ないのが問題シングルユーザーのシステムとしての基本的な問題を迅速かつこれらの結果表示しています。

すべてのすべてに申し上げことをお勧めのアクセスの他のマルチユーザーのシステム。しかし場合にあってもっているかといっても軽く適用されているのだ研究所のバックアップおよび維持の手続き

すでに現実のマルチユーザー、無料のデータベースプラットフォームを使用するために何回か言われています。しかし、理由の一つは、なぜ述べられていません。この理由は、既存の、汚い、面倒な、大規模なAccessデータベース「は1または2人のユーザーが最大数記録」としてスタートしているどのように多くの、ありますか?私はそれらのすべてを言ってベンチャーと思います。

2つまたは3人の従業員が会社全体に存在していない限り、

、オッズは、あなたがソフトウェアの便利な作品を開発する場合、最終的に元の2つまたは3人のユーザーを超えて使用することになるだろうということである元以上のものを持っています数千レコード、および多くの形態、より多くのテーブル、そしてより多くのデータが含まれるように長年にわたって拡大していきます。家が構築されたら、あなたは家の基礎をやり直すことはできません。今日の強力な基盤を構築し、あなたの心の内容に家を拡張することができます。ソフトウェアのための同じ。

ネットワーク共有と一緒に行くときは、

私の代わりにアクセスのネットワーク対応のデータベース(mysqlの/火の鳥/ MSSQL)となるだろう。

あなたは、Accessを使用して記述したような状況の場合は問題にはならないでしょう。

ウェブサイトでの作業時に

私はアクセスは計り知れ虐待されていない場合、それは本当にデータベースエンジンの不良ではありません、この大部分は、より困難な状況でのアクセスを使用しています。 (それだけでテーブルやレコードなどのフォームとかの話ではない)。

あなたのやって挿入/更新/一度に複数のユーザーから削除すると、

それは少し毛深いなります。これは、あなたが本当のデータベースエンジンについて考え始めるポイントです。

あなたは、スレッドセーフである低オーバーヘッドのデータベースをしたいとき

また、あなたはvistadbを見てすることができます。

(アクセス、必ずしも無料、100%の.NETより遅いです)

私はアクセスがqueeing機構物事のいくつかの種類を持つテーブル・レベルのロックがOK動作するはずだと思う使用しています。 それについてご心配ならば、あなたはいつもそれでシミュレートされたストレステストを投げることができます。

私はあなたの.NETアプリケーションの接続文字列でそれを定義することができると思います。私はJET、アクセスとレコードのロックのためにGoogleで検索

は、ここに役立つかもしれないnoreferrer">リンクをrel="nofollow href="http://support.microsoft.com/kb/306435"

アクセスとJETがデータを取得する方法についての本当の詳細については、受け入れ答えを参照してください。

使用しないでくださいアクセスのためのマルチユーザシナリオ。

うたの痛みがpredeccessorプロジェクトを選択アクセスします。

具体的な理由:

  • あなければならないと思うかLinqへのアクセス
  • アクセスには多くの癖のように依存するための追加パラメータをコマンドまで幅広い年代のデバッグ
  • アクセスな規模の
  • データベース更新の音声を瞬時に聞使用する場合に比べSQLサーバー
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top