とっておきの手土産を教えて

SQLServer初心者です。

社内で顧客情報を管理するためAccessを使っています。
フォームを使って検索,登録等できるようにしています。
データ量が増えてきたので,
テーブルのみSQLServerに移行することになりました。

ただ単にテーブルをSQLServerに移行して
クエリ等はそのままで使ってみたところまったく高速化されませんでした。

Accessで行っている動作は以下です。

フォーム上に設置した検索用テキストボックスに「ヤマダ」と入力して
「検索」ボタンをクリックすると
リストボックスに「ヤマダ」とつく氏名一覧が出てきて,
該当する氏名をクリックすると,右側にその人の詳細情報が表示されます。
抽出はAccessクエリで行っています。

検索用テキストボックスを使って,Accessのクエリで絞り込みをしているのですが
パススルークエリを利用してSQLServer上で絞り込みをすることができるようだと
調べていて知りました。

しかしそのやり方がうまくWEBで検索できずにいます。

パススルークエリの動的パラメータの指定方法をご教授いただきたいです。
よろしくお願いいたします!

環境は以下です。
SQLServer:microsoft SQL SERVER 2008 R2
Access:Access2007
ODBCデータソースを作成してSQLServerに接続しています。

「パススルークエリの動的パラメータの指定方」の質問画像

A 回答 (1件)

はじめまして、通りすがるというものです。


パススルークエリの方法ですが、パススルーでググってみると、以下のurlが検出されました。
http://support.microsoft.com/kb/303968/ja
これで、解決されるのでしょうか?
データ量が増えて、sqlserverに移行した。ということですが、今まで、クライアント側のアクセスを回線
を通して、dbから抽出したデータをクライアントに送信する形式となったのでそのネックで当然
レスポンスは落ちると思います。
また、氏名検索にて同一名が複数存在した場合(データ量増大により)サーバーとクライアントとの
データ量が増大しレスポンスが低下することが予想されるかと思います。
これらにより、パススルークエリによる(これはアクセス特有の機能? )レスポンスの改善はあまり
効果ないと思います。
レスポンス向上の方法として氏名のみの検索条件だけでなく、たとえば住所とか、生年月日などの
複合条件で検索することを検討したほうがよいかと思います。
複合条件で抽出件数を絞ることにより、サーバーからクライアントへのデーター送信量を絞るため
レスポンス向上を図れると思います。
これに合わせ、サーバー自体に付加がかかるのであれば、インデックスを追加するとかメモリ割り
当てなど、検討してはいかがでしょうか?

この回答への補足

別で新しく質問を投稿してみました。
よろしくお願いいたします!

補足日時:2014/02/28 15:09
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます!

いただいたURLでパススルークエリを作ることはできたのですが
Accessで指定した条件でSQLServer側のデータを絞り込みする方法をお聞きしたかったです。
レスポンス改善はあまり見込めないとのことでしたが・・・
こうなったらやり方を学んでおきたいと思っています。

また検索条件を変更することは出来ません。
日々複数の人間でデータを登録,変更,削除等行っているので
インデックス作成は出来ません。

よろしければ引き続きよろしくお願いいたします!

お礼日時:2014/02/27 15:01

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

関連するカテゴリからQ&Aを探す


おすすめ情報