- ベストアンサー
accessからsqlserverへの移行について!
- accessからsqlserverへの移行による処理速度改善の見込みとは?
- accessからsqlserverへの移行におけるデータ件数の問題
- 既にaccessからsqlserverへ移行済みの方の改善事例
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
accessだから遅く、sqlserverだから速いという 単純なものではありません。やはり、エンジンを 置くPCの性能がカギで、これが遅いのでは期待は できないとしたものです。聞けば同じマシンで代替 するとのことなので、あまり期待しない方がよい と思います。accessのイヤな所は挿入/削除を 繰り返すと、デッドスペースが増加するだけでなく、 インデックスも最適な状態からかけ離れていくこと です。従って、度々最適化する必要があります。 DBの設計方針が分からないので何とも言えませんが、 抽出条件に使う可能性が高い項目にはインデックスを 置くとか、マスタを持つコード項目はリレーションを 張ることで速度が改善されます。特に昔の遅いDBでは リレーションの設計は最大のポイントでした。 SQLの組み方が拙いため遅い可能性もありますが、 accessやsqlserverはスマートな方で、影響は少ない でしょう。例えば、a=1 or a=2 より a in (1,2)の 方がaの参照が1回なので、若干高速です。(気休め程度) 尚、sqlserverには一時テーブルと言うのがあり、 対象レコードを減らしておいて処理することができます。 これは便利な機能で、大いに助かるところです。 尚、ODBC接続したテーブルにDLookupなどDxxx関数を 使うと、極端に遅くなることがあります。これらの 関数を多用している場合は注意が必要です。
その他の回答 (2)
- yorozu_ya
- ベストアンサー率54% (76/140)
ディスクアクセスと比べれば計算は非常に高速です。 計算が多いから遅いということは、あまり考えられません。 3万件のテーブルだけを使用しているのですか? 複雑な計算をしてるなら当然複数のテーブルを使用してますよね。 それら複数のテーブルをサーバーに置いてリンクテーブルにし、 従来通りのクエリーをそのまま使った場合は、確実に遅くなります。 高速化にはそれなりのテクニックが必要です。 方法はケースバイケースですので、実際のクエリーを見てみないと分かりません。
お礼
ありがとうございました
補足
回答ありがとうございます。 クエリーで使用しているテーブルはマスタやデータ含め4テーブルをリンクしています。 >従来通りのクエリーをそのまま使った場合は、確実に遅くなります。 これはサーバを立ててsqlserverに移行した時のことでしょうか。 VIEWを使用すれば遅くはならないでしょうか。 >高速化にはそれなりのテクニックが必要です。 何か参考になるサイトはご存知無いでしょうか。・ よろしくお願いします。
- 3rd_001
- ベストアンサー率66% (115/174)
>やはり抽出に時間がかかりあまり改善しません とのことですので、計算式なしで[select * from ...等]にしてみて流してみてください。 ここが遅いのであれば、索引等をつければ早くなる可能性はあります。 また、上記の条件でどれだけデータがヒットするのかが問題となります。 3万件全て取ってきてから計算する作りだと厳しいです。 Accessは一旦、データをローカルに持ってきてから計算するので、ネットワークの速度も関係してきます。
お礼
ありがとうございました
補足
回答ありがとうございます。 計算式無しで早くなった時、必要な計算値はどのようにして取得しておられるのでしょうか。 計算式⇒計算式⇒・・・等で求めている値は40個ぐらいあります。 インデックスは必要と思われる項目には設定し、リレーションも張っています。 対応されておられる方法がありましたら教えて下さい。 よろしくお願いします。
お礼
ありがとうございました
補足
回答ありがとうございます。 現在のマシン3年前に購入したPentium4の2.40GHzメモリは1Gで遅いマシンでは無いと思っています。 ファイル共有している他のマシンも同等です。 それから仰るとおりにaccessを最適化すると早くはなります。 sqlserverにすればその必要が無いので移行の検討材料の1つに上げています。 又、インデックスは必要と思われる項目には設定し、リレーションも張っています。 回答頂いた内容からして専用サーバを検討した方がいいのでしょうね。 専用サーバも高価なものは買えないので性能的には現在のPCの性能と同等程度となります。 専用サーバを設置しサーバOSにするとにより処理速度はかなり速くなるのでしょうか。 よろしくお願いします。