• 締切済み
  • 困ってます

ACCESSからSQL Serverへの移行について

こんにちは。 現在、ACCESS2000を使ってクライアントサーバーのシステムを構築 しております。 サーバーはWindows2003 Serverですが、データベースのMDBファイルを 置いてあるだけです。 クライアントはネットワークドライブを切って、サーバーのデータを 参照しています。 稼動してから8年間が過ぎ、機能強化を重ねた結果、いろいろと 問題点が出来ました。 データの大きさは、3ヶ月使用し続けると90MBまで膨らんでしまいます。 また、WAN越えの環境も出てきてしまい、レスポンスの悪さに頭を 悩ませています。 現在、このシステムの見直しを行っております。 まず、MDBファイルをデータベースとして使用した場合、3ヶ月で90MB という大きさは問題視すべきなのでしょうか? また、WAN越えで高レスポンスを得るためには、どのようなデータベース、言語を選択すべきなのでしょうか? 先輩の技術者からは、SQL Serverへの移行、またはDB2の採用を勧められました。 このような環境下でのシステム構築に経験がある方、どんなことでも よいのでアドバイスを頂けたらと思います。 長くなりましたが、よろしくお願いいたします。

共感・応援の気持ちを伝えよう!

  • 回答数2
  • 閲覧数848
  • ありがとう数8

みんなの回答

  • 回答No.2
  • lv4u
  • ベストアンサー率27% (1861/6715)

>>UIがACCESSのままでもデータベースを変えるだけで、レスポンスは良く なる可能性はあると思うのですが、やはり常にデータベースとリンクし ている以上、レスポンスの改善には繋がらないとの見解でした。 そんなことはないでしょう。ACCESSのままですと、検索処理の対象データが1000件あるとして、検索結果が1件になる場合、ネットワークを1000件のデータが流れます。でもSQLServer/DB2にすることで、サーバサイトで絞り込みがされるため、ネットワークには結果の1件だけが流れることとなります(他のデータも流れるでしょうが、とりあえずおおざっぱに)。 もちろん常に1000件のデータが必要な処理が多いなら、ネットを流れるデータは減らないため、レスポンス向上は、あまり見込めないでしょうが・・・。 >>フロントエンドの部分について、何かアドバイスがございましたらよろ しくお願い致します。 最近は、この手のプログラムを作ってないので、よくわかりませんが、昔、VisualBasicでプロントエンドのプログラムを作ったとき、使いやすさを追求すると作るのが「めんどくさい!!」って感じましたね。 あと、普通にACCESSで作るのと、SQLServe/DB2を使ってプログラムを作るのでは、かなり差があります。後者はレスポンスをあげるため、SQLを駆使してコーディングしますので、もし現状がSQLをあまり使っていないコードなら大幅な書き直しが必要かもしれません。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

lv4u様 どうもありがとうございます。 別の技術者に相談したところ、フロントエンドがACCESSでも、やはりデータベースを DB2なりSQL SERVERへ移行すれば、レスポンス良は期待できるとのことでした。 理由は、ネットワークドライブとSQLでパケットの転送手段が根本的に違うからとのこと。 フロントエンドはACCESSを継承することで、開発工数をなるべく減らし、 レポート機能の資産も継続できそうです。 ただ、やはりデータベースを参照するコードは大幅に書き換えが必要 になりそうなのですが、これは致し方なしなので、頑張ります。 どうもありがとうございました。 とりあえず、締めさせて頂きます。

関連するQ&A

  • MDB→SQL Server Expressの移行

      お世話になります。 長文失礼します。 現在稼動中の MS ACCESS 2003で作られた業務管理システムがあります。 そのシステムのDB部分のみ SQL Server 2008 Express に移行するという作業を行なっています。 ※データ照会などのレスポンスアップが目的です 現行のシステムは FORM.MDB(インターフェースのみ) → DATABASE.MDB(データのみ) 移行後は FORM.MDB(インターフェースのみ) → SQL Server 2008 Express(データのみ) となります。 まず、DATABASE.MDBにあるテーブルをACCESSの機能である "アップサイジングウィザード"を使用し、SQL Server に移行しました。 次にテーブルのリンク先をDATABASE.MDB から SQL Server に張り替えました。 基本的には上記の処理のみでデータの照会等うまくいっているのですが 大量の件数(約20万件)のデータを照会する画面で結果が表示されるまでの速度が (現行のシステムと比較して)低下したため改善を行なっております。 上記の照会画面では ACCESSのクエリで複数のテーブルを繋げ、集計した結果を表示しています。 このクエリの代わりにSQL Server側でビューとして作成し、それに対してテーブルリンクを張れば 良いのではないかと考え、実行しました。ビューにリンクを張ったクエリ名を仮に"Q_照会"とします。 結果、照会結果を表示するまでの時間はかなり短縮できた(ように見えた)のですが 照会結果をスクロールや、PageUpキーによるページ移動をすると毎回1、2秒後に スクロール後の結果が表示されます。※現行システムではスムーズにスクロールします。 プロファイラで監視してみるとページ移動した時に、"Q_照会"をテーブルキー指定で SELECT している事がわかりました。毎回10レコード取得しています。 この様な記述は私は書いていませんのでACCESS(SQL Server?)が勝手に行なっている 動きだと思われるのですがどこかで設定できるのでしょうか? また今回、ACCESSのクエリをSQL Serverのビューに置き換える方法を取りましたが 別の方法でレスポンスアップが望める方法があればご教授お願い致します。  

  • AccessとSQL server 2005 Express Editionについて

    今ある、Accessの照会システムがあります。 テーブルはサーバ(Win2003Server)にmdbファイルを置いてます。 照会画面、レポート等のプログラムは各クライアントにそれぞれmdbを置き、サーバにあるmdbファイルをリンクテーブルで参照しています。 今後照会だけでなく入力エントリプログラムを追加していくのですが そのエントリは9台同時に入力することが考えられます。 今のmdbで9台同時複数エントリはAccessのmdbでは当然無理なので 今あるインターフェースをAccessで DBをSQL server 2005 Express Editionで考えています。 容量はMAX4GBと聞いているのですがデータの規模は4GBで問題ありません。 SQL server 2005 Express Editionでクライアント9台同時接続できるのでしょうか? 費用をかけれないので無償のSQL server 2005 Express Editionで考えています。 可能かどうか知りたいのです。9台の同時接続で運用にも耐えれるのかも疑問です。Express Editionでは無理があるのかも知りたいのです。 無理であれば今ある資産を利用して費用をかけないで済む方法があれば助かります。 どうぞよろしくお願いします。

  • SQL Serverへの接続について教えてください。

    いつも初歩的な質問ばかりで済みません。 VB.NET2003+Access2000で開発していたアプリをSQL SERVER 2005 に移そうと作業しています。 まずMSDE2000Aをインストールし、同じマシンにあるMDBからコンバートしたMDFファイルにはアクセス 出来ました。 SQL server 2005 Express に変更しましたが、これもうまく接続・更新が出来ていました。 そして今度は別のマシンにWindows SERVER 2003 R2評価版をインストール、次いで SQL SERVER 2005 Express をインストールしてそのサーバーへデータベースファイルをデタッチして移しました。 クライアントからマイネットワークをたどっていくと共通ディレクトリはちゃんと見え、 MDF以外のファイル(XLSやMDB等)はちゃんと読み書きが出来ます。 ただ肝心のMDFファイルにアクセス出来ません。 接続しにいくと「サーバーが見つからない」とか「接続が拒否されました」等々無情なメッセージばかり返ってきます。 どこをチェックしたらいいのか、ご教示に従って補足していきますのでどうぞよろしくお願いいたします。

  • 回答No.1
  • lv4u
  • ベストアンサー率27% (1861/6715)

>>また、WAN越えで高レスポンスを得るためには、どのようなデータベース、言語を選択すべきなのでしょうか? 基本的に、ACCESSは1人でデータベースを使うための個人ユーズをターゲットにしています。なので、以下の先輩のアドバイス >>先輩の技術者からは、SQL Serverへの移行、またはDB2の採用を勧められました。 に従うのがいいですね。とくにWANで使うのは、絶対やめるべきでしょう。言語としては、使いやすいものにすればいいと思います。お手軽さという面では、Rubyを使って、RubyonRailsってのもありかもしれません。 >>まず、MDBファイルをデータベースとして使用した場合、3ヶ月で90MB という大きさは問題視すべきなのでしょうか? 上に書きましたように、ACCESSは個人ユーズを目的にしたDBです。こうしたファイルの増大は、良くないのですが、どうしようもありません。システムの作りがどうこうというより、ACCESSを採用していることが問題なんです。 なお、SQLServerあるいは、DB2に変更することで、いろいろと学ぶことが必要だと思います。がんばってください。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

lv4u様 どうも貴重なご意見ありがとうございます。 言語については、現在クライアントもACCESS2000のため、VBAで構築 されております。 先輩のアドバイスでは、DB2、SQL Serverへの移行に伴い、WAN越えを 考慮するのならば、VB.NETをすすめられました。 現在の資産を生かした形で、比較的安価で再構築できるからです。 (ACCESSからVB.NETへ変換できるソフトもあるとのこと) UIがACCESSのままでもデータベースを変えるだけで、レスポンスは良く なる可能性はあると思うのですが、やはり常にデータベースとリンクし ている以上、レスポンスの改善には繋がらないとの見解でした。 いずれにせよ、いろいろと試してみるしかないかと思いますので、がん ばりたいと思います。 フロントエンドの部分について、何かアドバイスがございましたらよろ しくお願い致します。

関連するQ&A

  • AccessとSQL Serverの連携について

    Accessをフロントエンドとして、SQL Serverをバックエンドとしてデータベースを構築したいとします。 【質問1】 構築後、Accessのテーブルやフィールドを変更することはできるのでしょうか。 【質問2】 上記の仕組みをWindowsサーバではなく、UNIXサーバ上で実現できるでしょうか。

  • SQL Serverのリンクサーバーの

    こんにちは。 現在VisualStudio 2008 ProでC#を用いてWebアプリケーションを作成しようとしています。 いつもは、SQL Serverのデータを扱うのにADO.NETを使用してアプリケーションを作成しています。 Webアプリケーションのデータベース用のPCとしてWindows2003とSQL Server2005 Standardが搭載されているPCにAccess2003で作られているmdbがリンクサーバー設定されているものを用意しております。 このmdbは別のシステムで使用されており、常に更新されています。 今のところ、SQL Serverのタスクを用いて定期的(10分おきとか)にこのリンクサーバー上のmdbの情報を読み取り、SQL Server上に作ったテーブルを更新しているのですが、これだと情報を取りにいった時にタスクの更新が行われるまで、古い情報を取得することになります。 リアルタイムで取得することを考えた場合、 C#で作成したアプリケーションでこのSQL Serverにアクセスした時に直接リンクサーバーに対してSQL文を実行するという方法を考えているのですが、いろいろ検索しましたが探すことが出来ませんでした。 この様な方法がありましたら教えていただけないでしょうか?

  • [Oracle][IBM DB2][SQL Server]の違いと適性

    現在、Accessで業務アプリケーションを作成しているのですが、そろそろパフォーマンス的にも限界で、というかC/S環境でAccessを使っていること自体危険ですね… ここでデータベースをグレードアップしようと思っています。 しかし、データベースと言ってもたくさんあり、どれがいいのか 迷っています。 現在、商用RDBMSでは[Oracle][IBM DB2][SQL Server]がメインとの ことですが、これらの違いが分かりせん。 うちの規模は社員数が40人程度です Oracleは大規模システム向けと聞いた事があるのですが、 それであれば、IBM DB2かSQL Serverなのでしょうか 御教授宜しくお願いします。

  • Accessのデータを共有すると重くなるのを回避する方法

    Access2000ですが、データテーブルを独立させ、 フォーム等ユーザーインターフェイスは、別のMDBファイルに作っています。 で、データが小さいシステムのときは感じなかったんですが、 データが大きいシステムを構築したら、LAN上で1つのプログラムからデータを参照していると、 他のPC上のプログラムを起動すると、画面表示まで時間がかかります。 表示してからは、動きは速くなるんですが、開くまでの時間がちょっと、長すぎます。 MDBファイル(Accessのデータベース)の特性で、リンクしているすべてのデータをPC上に読み込んでから、動くみたいなんですが、これとの関係でしょうか? 何か、起動を早くする方法はないでしょうか? わかる方、よろしく、お知恵を拝借したいと思います。 お願いいたします。

  • AccessとDB2のテーブルリンクで…

    お世話になります。 ある2台のサーバーが社内にあります。 その2台のサーバーにはそれぞれ、IBMのDB2というデータベースを使用していて、それぞれのDB2内には同じデータベース名(テーブル)が存在します。 現在、サーバーAから新サーバーBに社内WEBシステムの移行を行っていて、Access2000のテーブルリンクを使って、サーバーAにあるDB2のデータベースAのテーブルとリンクをしています。 その際、テーブルリンクをする為にWindows2000の「ODBC データソース アドミニストレータ」のシステムDSNで、「IBM DB2 ODBC DRIVER」を使用してデータベースAにODBCを介して接続しております。 ですが、サーバーA側と同じ名前の、新サーバーBのデータベースAにODBCを介してテーブルリンクを繋ごうとすると、サーバーAと新サーバーBのデータベースAという名前が同じだからか、システムデータソースを追加しても、新サーバーB側のデータベースAに接続が出来ません。 この場合、新サーバーBのデータベースAの名前を同じものではなく、別の名前に変更した方が宜しいのでしょうか。 質問内容に不足な点がございましたら、内容を再度追加致します。 どうぞご教授宜しくお願いします。

  • SQL ServerとVisual Studio

    データベースの勉強のため、入門書を購入して、はじめたのですが、 最初からいきなりつまづきました(>_<)。 開発環境 windows 8 SQL Server 2012 Express Visual Studio 2010 SP1 です。 これで、データベースファイルを作成して、サーバーエクスプローラーで、”新しいテーブルの追加”を クリックしたところ、 ”このバージョンはサポートされていません。サポータされているサーバーはSQL Server 2008までです。” とのエラーメッセージが出ました。 そこで、質問ですが、この環境で、設定変更で使えないものでしょうか? それとも、SQL Server 2008にするか、またはVS2012にするしかないのでしょうか? 詳しい方が、おられれば教えて頂きたいです。よろしくお願いします。

  • SQL Serverへの接続ができません

    お恥ずかしながら、何か根本的なことが解っていないので、困っております、どなたかご教授くださいませ。 [環境] VB6+ADO2.7+SQL Server2000(又はMSDE)でシステムを構築しています。 [開発環境] 社内で開発していた時は、各PCにSQL Server2000のCDからクライアントツールをインストールしています。 開発環境ではサーバーへの接続はうまくいっております。 [困ったこと] Install Shield Expressで顧客用のSETUPファイルを作成してADO等の必要なファイルはインストールしているのですがいるのですが、接続できません。 あらかじめクライアントに何か設定しておく必要があるのでしょうか? いろいろ調べてみるとudlファイル?かODBC?と訳がわかりません。 開発環境のODBC画面には何もありませんので、udlかとは思うのですが、サーバーを参照させるにはどうしたらいいのでしょうか?

  • SQL server 2012のライセンスに関して

    SQL server 2012のライセンスとEditionに関する質問です。 Windows7のマシンをデータベースサーバとし、Windows7のマシン2台を クライアントとして使用する小規模なシステムを構築しようとしています。 Windows7マシンはCPUがCoreTM i5-3470程度の今時の法人用モデルの PCを3台とも使用します。 また、SQL server 2012はStandard Editionの使用を予定しております。 そこで質問ですが、 ・この場合、どの製品を購入するのが安価で済ませられるのでしょうか? サーバーライセンス×1とCAL×2でいいのでしょうか? ・稼動後、もし、データベースサーバが、Windows server 2008R2(2CPU)と なった場合、Windows7のサーバライセンスをアンインストールし、新しい サーバにインストールし直せば使用できるのでしょうか? それとも、サーバライセンスの追加購入かコアパックの購入が必要でしょうか? ・データベースをSQL server 2008R2で使用したい場合、購入するディスクキットを SQL server 2008R2用を購入すれば、SQL server 2008R2 Standard Edition として、使用できるのですか? 以上、よろしくお願い致します。

  • Xampp上で、sql server 2005を動かすには?

    Xampp上で、sql server 2005を動かすには? 開発環境で、ひとつのPC上でサーバー側「sql server 2005」と、クライアント側のアプリを構築しなければなりません。 この場合、Xamppを使って「sql server 2005」を構築すればいいと思いますが、何せこの辺の知識を持ち合わせておりません。 動作環境は、Windows XP(SP3)です。 参考になりそうなWebサイトなどを、教えていただけませんか。 以上、よろしくお願いします。

  • スマートフォンでSQL Serverとやり取り!

    使用している環境 サーバー:Windows Server 2008 Standard DB:SQL Server 2005 上記のサーバーの環境でLAN内で簡単なAccess で作成したSQL Server をデータベースとしたシステムが稼働しております。外部からスマートフォン(PDA)を使用してデータベースで検索結果を見るシステムを作りたいと思っています。 まず、上記サーバー環境だけで実現できるものなのでしょうか?(使用するのは5人前後) 他に必用なモノはございますでしょうか? またPDA(スマートフォン)でプログラムを作る場合に、どのプログラム言語を使えばよいのでしょうか? SQL Server、VB、Access での開発は経験ありますが、PDA(スマートフォン)での開発は一切ございません。まずは足りない環境があればご指摘ください。このような場合のPDAのプログラム言語は一般的に何が良いのか、まずは、とっかかりから教えて下さいませ。 よろしくお願い致します。