accessからsqlserverへの移行について!
accessからsqlserverへの移行することにしました。
問題が起きないよう先日質問させて頂いた内容でもう少し詳しく教えてください。
以下が前回の内容です。編集をしています。
accessの処理はそのままでDBをsqlserverからODBCでリンクしようと思います。
現在の運用環境はサーバは使用せずファイル共有で4台のPCで運用しています。OSはWinXPです。
現在のマシンは4台とも3年前に購入したPentiumの2.40GHzメモリは2GBです。
今回も専用サーバは使用せず現在のPCにSQLServer2005無料を使用と思っています。
データ件数は約3万件で必要な項目にはインデックスを付けてリレーションも張っています。
計算項目が多く定義と参照項目含め約300項目となり、クエリーをNo.1とNo.2の2個のに分けています。
クエリーはデータやマスタとリンクしています、No.2はNo.1の式の値を使用し計算しています。
計算式は複雑なものや計算結果⇒計算結果⇒・・・・となっています。
入力画面はレスポンスが遅く、単票印刷で約30件の処理に5~10分位かかるものがあります。
印刷はワークテーブルに必要項目を出力する等をやって見ましたが改善しませんでした。抽出に時間がかかっています。
DBをsqlserverに移行することで処理速度の改善はどの程度見込めるのでしょうか。
計算項目数が多いのであまり見込めないのではと思っています。
頂いた回答です。
>それら複数のテーブルをサーバーに置いてリンクテーブルにし、従来通りのクエリーをそのまま使った場合は、確実に遅くなります。
?これはsqlserverのデータをリンクしクエリーはそのままにしたら遅くなるのでしょうか。
対象方法はsqlserverにクエリーをVIEWで定義すればいいでしょうか。対処方法を教えてください。
>高速化にはそれなりのテクニックが必要です。
?参考になるサイトがあれば教えてください。
>やはり抽出に時間がかかりあまり改善しませんとのことですので、計算式なしで[select * from ...等]にしてみて流してみてください。
?早くなった場合必要な値はどの様にして取得しているのでしょうか。
>やはり、エンジンを置くPCの性能がカギで、これが遅いのでは期待はできないとしたものです。聞けば同じマシンで代替するとのことなので、あまり期待しない方がよい
と思います。
?サーバを設置しサーバOSにするとにより処理速度はかなり速くなるのでしょうか。
専用サーバも高価なものは買えないので現在のPCと同等程度の性能となります。
よろしくお願いします。
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
例えばOSをWindows2003ServerR2に替えても
処理速度は変わりません。エンジンとハードが
同じならです。
>ODBC接続時でリンク
止めた方がいいです。それよりパススルークエリを
使うべきです。これはJet(Access)のエンジンを
通らないで、直接SQLがサーバに届きますので高速
です。SQL文法はSqlServerのものを使います。
テクニックですが、方法としては以下の通りです。
(1)ストアドプロシージャを使う
決まった計算や抽出があれば予め登録しておくことで
同的にSQLを解釈するより速く処理できます。
(2)一時テーブルを使う
クエリを分けて実行するとありましたが、Accessと
異なり、データを絞る、計算して更新する、など
連綿と続くクエリを1回で処理できます。この時、
繋ぎのデータを保持しておくのに一時テーブルを使い
ます。実行回数(DBエンジンへの要求)を減らせる
ので、かなり速度の改善が見込めます。
No.2
- 回答日時:
遅い原因を特定してから対応しないと改善は見込めません。
・計算式抜きで抽出してみることで計算式が問題かどうかを判断する。
・計算式が問題の場合
Accessを使用してもSQL Serverを使用してもクライアント側の問題なのでAccessを修正する。
クエリ経由ではなくSQLを使用してデータを取得しVBA内で計算させる、等々。
※このあたりは実装がわからないとなんとも言えません。
・計算式が問題ではない場合
抽出が遅い場合は、その原因を追求します。
・索引が本当に使われているかを確認する。
検索項目のデータ型が一致しているか、条件指定に関数を使用していないか。
・データ件数を確認する。
ジョインが間違っていてデータ件数が増えていないか。
・多段のクエリのあとの方で条件指定を行っており一段目の戻す件数が多くないか。
条件を変更して元のクエリで件数を絞り込みができないか。
とにかく各ステップで掛かっている時間を計算して、どこが問題点かを調査してください。
単純にDBをAccessからSQL Serverに変えるのはリスクが高いです。
原因を調査した上で、ここを変えれば速くなると確証を得てから作業をしてください。
No.3
- 回答日時:
3年ほど前にAccessアップサイジングウィザードを使用してSQL Serverへ移行しました。
結論は圧倒的に速度アップしました。VPNを通じて2拠点間で単純なフォームを開くのに
3分程度要していたものが、瞬時に開くようなりました。テーブルとクエリはSQL側に
フォーム、レポートとモジュールはAccess側に置いています。クエリはSQLだとビュー、
ストアドプロシージャ、テーブル値関数になります。Access.mdbの場合クエリを実行
する際、サーバからクライアントにクエリに関連するテーブルの値をダウンロードして
きます。またクエリ実行中もサーバとの同期を取りながら計算しているため時間が
かかります。Access.adpの場合はクエリの結果のみを受け取るためサーバの処理速度
に依存することになります。
3年前はSQLは全く知りませんでしたし、今も高速化のテクニックなど知りません。
使用しているサーバはDELLのPowerEdge840です。サーバ専用機を使用するメリットは
24時間365日稼動が前提として製作されているので信頼性が高いという点だと思っています。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(データベース) pythonでsqlight勉強中、クエリー結果の利用法教えて下さい 1 2022/04/28 20:38
- 情報処理技術者・Microsoft認定資格 応用情報処理技術者試験のシステム利用率の計算について 2 2022/03/28 07:43
- Access(アクセス) Access DAOのExecuteメソッドのオプション(RecordsetOptionEnum)に 1 2022/09/19 07:34
- システム CSVファイルのマッピング処理の省力化 1 2022/11/24 00:01
- その他(プログラミング・Web制作) プログラミング 処理速度 1 2022/11/25 11:05
- FTTH・光回線 AU光回線の速度が出ません 2 2022/07/30 16:05
- 会社・職場 健診等の健康管理に厳しい会社で働いています。 皆様の会社は如何でしょうか?ご意見が聞きたいです。 弊 4 2023/08/22 20:15
- その他(自然科学) 論文のまとめに関して(小論文)添削お願いします。 6 2023/07/16 14:24
- その他(データベース) 業務用のデータベースサーバーの選び方について 4 2022/11/22 10:22
- 統計学 統計に関する質問です 3 2022/05/19 20:21
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ACCESS クエリー 抽出条件が...
-
access:連続データ入力
-
accessで選択クエリで得た全レ...
-
アクセス 重複したら1 しなか...
-
ACCESS クエリで重複データを最...
-
ACCESS クエリで、グループ化...
-
追加先の発見方法(SQL以外)
-
accessの自動更新処理をできな...
-
[至急]accessクエリ結果を入力...
-
Access 別フォームへの再クエ...
-
アクセス:フォームを閉じずに...
-
Accessでグループ化した結果フ...
-
Accessのクエリで、Left関数を...
-
Access 2010 土日祝日を除いて...
-
Access:フォームをクリ...
-
Accessクエリのデータ表示件数...
-
NULL値を含む場合のフィルタ
-
アクセス非連結フォームのテキ...
-
Access:yesの時は画像を表示、...
-
Access:サブフォームにクエリ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ACCESS クエリで重複データを最...
-
ACCESSでクエリを作成したら「...
-
access・カウント結果がゼロで...
-
ACCESS クエリで、グループ化...
-
「データベースまたはオブジェ...
-
クエリで「データ型が一致しま...
-
ACCESSにてフィールド間の最小...
-
SQLで優先順位が高いレコードを...
-
追加先の発見方法(SQL以外)
-
accessで選択クエリで得た全レ...
-
access:連続データ入力
-
Accessのフィルタ検索でデータ...
-
アクセスでフォームが更新でき...
-
ACCESS クエリー 抽出条件が...
-
ユニオンクエリについて
-
ACCESSで2つのテーブル比較で...
-
Access あるクエリを利用して...
-
Accessで「クエリーが複雑すぎ...
-
ACCESS のクエリー実行に異常に...
-
Accessのクロス集計クエリから...
おすすめ情報