• ベストアンサー

ACCESSとVB2005のデータ検索速度について

こんばんは。連続投稿失礼します。 現在およそ300万件(容量1G程度)のデータ検索プログラムを作成しています。 データをサーバに置いておき、クライアントPCよりサーバのデータを参照する仕組みになっています。 質問(1) (1)~(3)の方法でデータ検索をした場合、処理速度の違いはどの程度 あるものなのでしょうか?(コードの書き方にもよると思いますが)  (1)Access+リンクテーブルを使用  (2)VB2005+データソースAccess  (3)VB2005+データーソースSQL2005 質問(2) ついでですが、 VB2005についてネットで調べると、Excel/AccessVBAに比べてHIT件数 が少ないような気がします。検索のコツとか、良いサイトがありましたら ご教示をお願いします。 関連性の無い質問でもうしわけありませんが、よろしくお願いしします。 ※お礼が遅れる場合がありますが、必ずしますのでその時は少々お持ちください。

質問者が選んだベストアンサー

  • ベストアンサー
  • popesyu
  • ベストアンサー率36% (1782/4883)
回答No.1

1.条件によって幾らでも変わりますので何とも言えません。ちょっと条件を変えるだけで処理速度は3桁から4桁は余裕で変わりますので、一般的なという前提は無意味です。 強いていうならAccessはテキスト系の処理は苦手というぐらいです。 この辺を参考に http://www.naboki.net/access/heaven/heaven_05.html 2.歴史が違いますし。VBA(VB)は10年以上の歴史がありますが、.NETの方は5年程度ですかね。しかもVBAは初心者をターゲットにしつつ広く親しまれた言語ですが、.Netは開発者向けのまだまだ出始めたばかりでこれから本格的に活用されようとしているものです。当然ユーザー数も全く違いますし。ファミコンとプレステ3ぐらいは歴史が違います。 少ないような気がするのではなく、圧倒的に歴史が違います。蓄積されているデータベース量はこちらも3桁4桁は異なるでしょう。 強いていうなら、VB2005と限定して検索するのではなく、.NetFrameWorkとか、VBをキーワードの中心にするとかでしょうか。

z-volantis
質問者

お礼

こんばんは。 1.やっぱり漠然としすぎですよね。とりあえず色々試してみて 良いものを使用したいと思います。 2.歴史の差は納得です。そういえばWindowsVistaも余りヒットしないみたいですね。 丁寧なご回答有難うございます。

その他の回答 (1)

回答No.2

popesyuさんの「条件によって幾らでも変わりますので・・・」で気づいたのですが、「検索する」方法によって全然違った事があります。 例えば、検索するのにサーバからデータを持ってきて比較するのと、検索クエリ一発で結果を受け取るのでは、桁違いになる場合があります(ありました)。 クエリはたくなら、クライアントはどれでも大差無いかも・・・ それと些細な話ですが、結果を表示する時に、画像描画をオフにして更新して表示すると「ほー速くなったね」と言われた事があります。 実際の検索時間は、はほとんど変わってないのですが、表示でチラつき無くしたら、速くなったと思われてしまった・・・

z-volantis
質問者

お礼

こんばんは。 >結果を表示する時に、画像描画をオフにして更新して表示 エクセルVBAでワークシートへの出力時にシートの更新をしない みたいなイメージですね。 >表示でチラつき無くしたら、速くなったと思われてしまった・・・ 現在の処理件数を表示したら早くなった気がする・・・みたいなイメージですね^^ 参考になります。ご回答有難う御座いました。

z-volantis
質問者

補足

こんにちは。 処理速度は一つ一つ検証していくのが一番みたいですね。 この辺で締め切りたいと思います。 皆様ご回答有難うございました。

関連するQ&A

  • VBからへ接続したい(「データソースの変更」でSQLサーバーが表示されない)

    こちらでも質問したものですが http://oshiete1.goo.ne.jp/qa5120099.html VB2008からSQLサーバーへ接続したいのですが 「データソースの変更」画面で「SQLサーバー」は表示されません。 どうやればSQLサーバーに接続できるのでしょうか? よろしくお願いします。

  • VBでフォームを作ってSQLServer2000にデータ登録したい。

    VBでフォームを作ってSQLServer2000にデータ登録したい。 の、ですが、可能でしょうか?ついでに詳しいやり方、 SQL SERVER2000のパーソナルエディション。 http://www.microsoft.com/japan/sql/enterprise/feautures.asp の値段も教えていただければうれしいのですが。 よろしくおねがいします。

  • VBからサーバ上のAccess mdbにアクセスする方式について

    クライアントのVBアプリからサーバ上のAccess mdbにアクセスしたいのですが、 データベースがAccessの場合、データを丸ごとクライアント側に持ってきて、クライアント処理になってしまうと聞きました。 サーバ上でデータセットを作成してクライアントに渡す方法があれば教えてください。 よろしくお願いします。

  • Excelデータの検索

    1.コモンダイアログを開く 2.パス上のExcelファイルを取得 3.VB上で取得したデータベースのファイルと比較したいのですが。 1.のところは分かるのですが、VB上からExcelのデータの取り方がわかりません。 参考urlか関連ソースを教えてください。 VB.NET,SQL Server 2005を使用

  • VBでSQLサーバーへ接続できない

    WVD2008ではSQLサーバーへ接続できて、データも表示できるのに、 VB2008からは最初の設定画面がわかりません。 添付の図は 右:WVD 左:VB です。 WVDは データソース:Microsoft SQL Server (SqlClient) サーバー名:○○○\SQLEXPRESS データベース名:master と入力しテスト接続すると「成功」します。 しかしVBは データソース:Microsoft SQL Server Compact 3.5 データベースファイル名:○○○\SQLEXPRESS もしくは データソース:Microsoft SQL Server データベース ファイル (SqlClient) データベース:○○○\SQLEXPRESS と入力しテスト接続すると「見つかりません」となります。 アクセスへなら データソース:Microsoft Access データベース ファイル (OLE DB) データベースファイル名:C:\\Desktop\Documents\○○○.mdb として接続できます。 接続できないというよりもVBにおいてのSQLサーバーへの設定方法がわかりません。 VBにて サーバー名:○○○\SQLEXPRESS データベース名:master へ接続したい場合はどうすればいいでしょうか? ご教授よろしくお願い致します。

  • SQL ServerとACCESSとのデータのやり取りについて

    下記の仕組みを検討しています。データをSQL Serverに置く。(安全性などを考慮して)Access側にも同じ構造のテーブルを用意してデータの編集・検索表示などをACCESSで行う。更新したデータをSQL Serverの該当テーブルにSQL文を実行して書き込む。書き込み方法は、両者を比較してSQL Server側にないレコードをInsert文にて追加する。(Not Inによるサブクエリを使用) お聞きしたいのは、ここで問題が発生していまして、 (1)単一主キーのテーブルの場合は動作しているが、複数主キーのテーブルの場合に、処理に非常に時間がかかる、もしくはエラーとなること(複数主キーでは処理できないものなのか) (2)上記のようなSQL ServerにデータをおいてAccess側でデータの編集・検索表示などを行う場合の良い仕組みについて 色々とHPを探し回ったのですが、今回のケースにずばり当てはまるものがなく、解決の糸口もなく苦戦しています。わかりにくい質問文になって申し訳ないですが、似たようなご経験の皆様方おられましたらアドバイス頂けないでしょうか。お願い致します。

  • SQLサーバのデータをAccessにリンクする方法

    SQLサーバの勉強を始めたばかりの者です。 Accessのテーブルを、SQLサーバに移行したいと考えています。 Acessのサイズアップして SQLサーバにデータを移行することはなんとかできた様子なんですが 今度はそのSQLサーバのデータをAccessにリンクする方法がわかりません。 ネットで検索したのですが Accessのバージョンが違っていたりしてどうもわかりません。 わかりやすく手順など掲載されているサイトがあったら 教えてください! Access:2007 SQL Server:2008 を使用しています。

  • VBからサーバーへ

    初めてVBプログラミングをしようとしているものです。VBでサーバーに接続する方法がよく分かりません。アクセスに接続する方法はなんと無く理解できたのですが、SQLサーバへの接続方法がイメージがつかめないんです。プログラムは何人かが共通して利用できるものを考えています。どうかご教授のほどよろしくお願いします。 サーバー 2000 SQLサーバ2003 開発クライアントPC W2K VB6

  • 「アクセス+SQLサーバー」より「VB+SQLサーバー」のほうがいいのでしょうか?

    今現在アクセスのデータをSQLサーバーに移行して 「アクセス+SQLサーバー」にしようと思っていると知り合い話したら 「VB+SQLサーバーのほうが最強!」と言われました。 (理由までは聞く時間がなかったです) 何がどう最強だかわかりませんが、 「アクセス+SQLサーバー」より 「VB+SQLサーバー」のほうがいいのでしょうか? (VBはアクセスよりも高機能?) メリット・デメリットを教えてください。 よろしくお願いします。

  • ORACLEデータをACCESSへインポート VB

    OracleのデータをAccessへインポートする方法について、どなたかご教授ください。 VB.NETで OracleからAccessへのデータコンバート機能を作ることになりました。 (環境 OS;Win7 言語;VB2008 Oracle;10g Access;2010) 対象のテーブル数、フィールド数、データ数がかなり多いのですが、Accessへデータをインポート(コピー)する良い方法はないでしょうか? 普段、データ入力が専門のためプログラムは初心者です。 今のところOLE DBを使用して1行ずつデータを登録する方法しかできません・・・ ヘルプを参考に、ODBCでDSNレスのINTO(SQL)を挑戦しているのですが「入力テーブルまたはクエリが見つかりません」と出てしまいます。 ◇質問 (1).複数のテーブルをAccessへコピーするにはどんな方法がありますか?   また、このような対象テーブルが多い場合に有効な方法は? (2).ODBCでDSNレスのINTO(SQL)を作成するのに注意することはありますか? ちなみにエラーが出てしまうSQL文は以下です。違っているでしょうか? cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;data source=D:\DATA\DB.mdb" sql = "SELECT * INTO impテーブル名 " & _ "FROM [ODBC;DRIVER={Microsoft ODBC for Oracle};" & _ "SERVER=" & orSorc & ";" & _ "UID=" & orUsrID & ";" & _ "PWD=" & orPswd & "].expテーブル名" ※ Oracleは10g/11gのバージョンが存在するためODPは使用しません

専門家に質問してみよう