パススルークエリでスピードアップ


━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
vol174

これならわかるマイクロソフトアクセス活用法
            -->パススルークエリでスピードアップ
              
発行者:高内 章治 2012年12月13日
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
┏ 今日の内容 ━━━━━━━━━━━━━━━━━━━━━━━━┓

┃【01 - ご挨拶    】
┃【02 - トピックス  】パススルークエリでスピードアップ

┃【03 - 編集後記    】

┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛

─────────────────────────────────
【01 - ご挨拶    】          
─────────────────────────────────

こんにちは、高内(こうない)です。

今回は、

「パススルークエリでスピードアップ」

についてお話したいと思います。




─────────────────────────────────

【02 - トピックス】: パススルークエリでスピードアップ

─────────────────────────────────

皆さんは、「パススルークエリ」ってご存知ですか。

お客様から依頼がありました。
そのお客様には、1年ほど前に、システムを納品しました。
データベースは、「SQL Server」です。

「Access」からは、ODBC経由でリンクして使用しています。
今も、問題なく稼働しています。

でも、1年も経過するとデータ量がかなり多くなります。
「Access」のプログラムの中で、「クロス集計クエリ」を使ったデータの表示のプログラムがあります。,
現在は、表示がかなり遅くなっています。
ボタンを押してから表示するまでに、「9分」もかかっていました。

「9分」ですよ。

確かに、パソコンが古いこともあります。処理能力があまりよくありません。
「9分」もかかると、日常業務に支障がでます。 

その解決方法をいろいろやってみました。

データの読み出しに選択条件を入れてみました。
でも、殆ど時間は変わりません。

調べると「リンク」は、データをクライアントのパソコンに呼び出して処理するようです。

データ数が多くなったり、クエリの中でたくさんのテーブルがある場合は、データの処理スピードが遅くなります。

条件が入っていてもデータを全部クライアント側に読み込んで処理するようです。


困りました。

そして最後に、「パススルークエリ」でやってみました。

なんと、「10秒」になりました。

早くなるとは思いましたが、ここまで改善するとは思いませんでした。

「パススルークエリ」は、クエリを「SQL Server」のあるサーバー側で処理をおこないます。
クライアントのパソコンが、遅くても大丈夫です。
今回、このやり方を説明します。

■1.「SQL Server」でSQL文を作成します。

これは、「SQL Server」の「Management Studio」というツールを使用しないといけません。
でも、このやり方の方が、かなり簡単です。

「パススルークエリ」は、サーバーの「SQL Server」で動かします。
「Access」で使用する「SQL文」では、ありません。
「SQL Server」が使用する「SQL文」を作成する必要があります。

このSQL文を、最初から作るのは大変です。
「SQL Server」の中で作成します。

「SQL Server」には、「Access」と同じように「選択クエリ」や「パラメータクエリ」を持っています。

「選択クエリ」は「ビュー」と呼んでいます。
「パラメータクエリ」や「更新クエリ」は、「ストアドプロシージャー」と呼んでいます。
データを抽出するだけでは、「ビュー」をマスターすれば大丈夫です。

「ビュー」は「Access」の「クエリ」とよく似ていますから、使い方は簡単です。
その「ビュー」を使って「SQL文」を作成します。

  1. 「SQL Server Management Studio」を立ち上げます。

  2. 左の「データベース」の横の「+」をクリックします。

  3. その中の使用する「データベース」の横の「+」をクリックします。

  4. この中の「ビュー」が「Access」の「選択クエリ」になります。

  5. 「ビュー」を右クリックして「新しいビュー」をクリックします。

  6. 「ビュー」が開いて「テーブルの追加」が表示されます。

  7. 使用する「テーブル」を選択して「追加」をクリックします。
    「テーブル」が追加されます。

  8. 「テーブル」の追加が終わったら「閉じる」をクリックします。

  9. 2つの「テーブル」がある場合は「Access」でいう「リレーションシップ」されていることもあります。

  10. 「リレーションシップ」がある場合は、「結合線」を右クリックすると、外部結合などを設定することができます。

  11. 一番上が「テーブル」です。2番目がフィールドの設定です。
    3番目が「SQL文」です。4番目がデータを表示します。

  12. 表示する「フィールド」にチェックを入れます。

  13. 左上の「!」(SQLの実行)をクリックします。

  14. 一番下にデータが表示されました。

  15. この作成した、「SQL文」をコピーして、「Access」の「パラメータクエリ」に貼り付けます。

  16. 右上の「X」で画面を閉じます。
    必要であれば名前を付けて保存してください。

■2.「Access」で「パラメータクエリ」を作成する

「Access」で「パラメータクエリ」を作成します。

  1. 「Access」の「クエリ」で「作成」タブで「クエリデザイン」をクリックします。

  2. 何の「テーブル」でも良いですので、「テーブル」を追加します。

  3. 「フィールド」も何でもよいですので追加します。

  4. 名前を付けて保存します。

  5. 再度「デザインビュー」で表示します。

  6. 「デザイン」タブの「クエリの種類」の「パススルー」をクリックします。

  7. ここに、「SQL Server」の「ビュー」で作成した、「SQL文」をコピーします。

  8. リボンの右上または、タイトルを右クリックして「プロパティ」をクリックします。

  9. 「プロパティ」の「ODBC接続文字列」の行をクリックします。

  10. 横のボタンをクリックします。 

  11. 「ODBC」が表示されます。

  12. 作成した「ODBC」を選択して「OK」をクリックします。

  13. 「SQL Server」の「データベース」アクセスする「ID」と「パスワード」を入力して「OK」をクリックします。

  14. 「はい」をクリックします。

  15. 「ODBC接続文字列」が作成されます。

  16. 「プロパティシート」を閉じます。

  17. 「実行」をクリックしてデータを表示させます。

  18. データは、「SQL Server」側で処理してデータを表示しています。

  19. クエリは保存してください。

少し、面倒くさいですが、「SQL Server」に「Access」からODBCでリンクしている方は、やってみる価値はあると思います。


興味のある方は、
「アクセス(Access)のシステムを無料のSQL Server Expressへ移行してみよう」という教材も販売していますので宜しくお願いいたします。
この中にも追加しました。

http://www.sk-access.com/sqlserver/sql_server1.html

です。

参考にしてください。



─────────────────────────────────
【03 - 編集後記    】       
─────────────────────────────────

今週の日曜日に、衆議院選挙があります。

いろいろな政党が乱立しています。
小さい党は、政策がよくわかりませんね。

今回は、過去の民主党の政治に対する審判が下されます。
厳しいようですね。

自民党、公明党が有利なようですが。

選挙結果が出るまでどうなるかわかりませんが。

これからの、日本を決める選挙ですから、多くの人に投票に行って欲しいですね。


◆私がアクセスをマスターできたのは!!
http://www.sk-access.com/kyozai/zaiko1.html  

テーブル作成からVBAまでマスターできます。 
「在庫管理システムをアクセスで作ってみよう」教材です。
http://www.sk-access.com/kyozai/zaiko2.html  


━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
●ご意見・ご感想・ご質問
 
『メルマガでもっとお役にたてる情報を配信したいと思いますので、日ごろから疑問に思っていることを教えてください。
宛先はこちらへです』

  •  kohnai★vega.ocn.ne.jp
      (高内:こうない:)
    (メールするときは、★を@に変えてください)

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━


◎「これならわかるマイクロソフトアクセス活用法」 のバックナンバー・配信停止はこちら

archive.mag2.com/0000222659/index.html

◎以下のホームページからでもバックナンバーを見ることができます。

http://www.sk-access.com/mailmaga/index.html

登録・解除につきましてはご自身でお願いいたします。

※このメールマガジンの転送はOKですが、掲載された記事の内容を許可無く転載することをを禁止させて頂きます。
必ず事前にご相談ください。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━


1週間でアクセス(Access)のシステム開発ができる〜
「在庫管理システムをアクセスで作ってみよう」教材

「アクセスのプログラム/システムを短期間で開発したい方」、
「アクセスのフォーム/VBAを完全にマスターしたい方」のための
アクセス(Access)を使って1週間でシステム開発する究極の方法とは?

「アクセス(Access)のシステムを無料のSQL Server 2016 Expressへ
移行してみよう」教材

あなたの会社のアクセス(Access)のデータベースやシステムに不安を感じていませんか?
アクセスのデータ量が多くなり処理スピードが遅くなった。
アクセスのデータを共有したい。
セキュリティに不安がある。などと、感じている方は!!
(SQL Server 2016 Expressバージョンです。)


「アクセス(Access)プログラムの仕様書の作り方」教材
マイクロソフトアクセスを使用して、プログラムの作成/システム開発をおこないたい方の為に、
アクセス(Access)のプログラム開発に成功するために絶対に必要な「仕様書」とは?



[↑一番上へ]
[マイクロソフトアクセス活用法(メールマガジン)(ホームへ)]
11:412301

アクセス全体

VBA

SQL Server