Accessのリンクテーブルの重さの違いについて

このQ&Aのポイント
  • Access側から外部テーブルを参照したリンクテーブルを作成しましたが、テーブルを開くのに時間がかかり、時にAccessが応答なしの状態になります。同じデータを持つ別のテーブルを作成したところ、操作はスムーズに行われました。リンクテーブルとはなぜ重さの違いが生じるのでしょうか?
  • Accessを使い始めたばかりでパフォーマンスの向上方法に悩んでいます。リンクテーブルの作成によってテーブルの開く時間が長くなり、Accessが応答なしの状態になることがあります。同じデータを持つ別のテーブルを作成したところ、操作はスムーズに行えました。リンクテーブルの重さの違いについて、何が原因なのでしょうか?
  • Accessで外部テーブルを参照したリンクテーブルを作成しましたが、そのテーブルを開くのに時間がかかり、時にAccessが応答なしの状態になることがあります。テーブル作成クエリで同じデータを持つ別のテーブルを作成したところ、操作はスムーズに行えました。なぜリンクテーブルと同じデータ量でも重さの違いが出るのでしょうか?
回答を見る
  • ベストアンサー

Access のリンクテーブルについて

よろしくお願い致します。 Access側から外部テーブルを参照したリンクテーブルを作成しました。 しかしそのテーブルを開くのにはすごく時間がかかり、時にAccessが応答なしの状態になったりします。 そこで、ためしにテーブル作成クエリでリンクテーブルのデータと同じデータをもつテーブルを作成しました。 すると、そのクエリで作成したテーブルからの操作はスムーズに行われました。リンクテーブルとはデータ量も同じなのにこのように重さの違いがでるのはなぜなのでしょうか? Accessを使いはじめたばかりで、裏ではどのようになっているのかよくわからずパフォーマンスのあげ方に四苦八苦しております。 アドバイスをよろしくお願いします。

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

  • ベストアンサー
  • okwaver
  • ベストアンサー率100% (1/1)
回答No.1

omatudonさんがお使いのPCに、テーブルがあるとアクセスが早いと思います。 しかし、リンクテーブルはその名の通り、実際のテーブルのデータは別のPCやサーバにあって、そこへのリンクの情報を持っているだけなのです。なので、リンクテーブルは、実際のデータはomatudonさんのお使いのPCにはないのです。 リンクテーブルをクリックすると、違うPCやサーバにある情報を読みに行くので、遅いのです。 試しに、レコード件数の小さいテーブルへのリンクを作ってみてください。そうすると、レコードが早く取得できると思いますよ。

omatudon
質問者

お礼

回答ありがとうございます。 リンクされたテーブルを見に行くのとローカルにあるテーブルを見に行くのでは同じデータ量でもこれほど違いがでる場合があるのですね。 直接リンクされたテーブルを見に行かないで一旦ローカルで同じ情報をもつコピーのテーブルを作成することでパフォーマンスの改善に対応したいと思います。 ありがとうございましたm(_ _)m

関連するQ&A

  • accessでテーブルのリンクでクエリに反映させる方法を教えてください

    accessでテーブルのリンクでクエリに反映させる方法を教えてください。 現在2つのエクセルデータを比較するクエリを作成したのですが、 比較するデータが大量にあり、テーブルのリンクでクエリに反映させたいのですが、 うまくいきません。 よろしくお願いします。

  • Accessで多くのExcelファイルをリンクしてテーブルを作ろうとするととエラーが出ます

    Access2007で、複数のExcelファイルをリンクテーブルとして参照し、 UNIONで結合して1つのテーブルにまとめ、様々な処理をしています。 リンクするExcelファイルの数がだんだん増えてきて、 50個になったところでエラーが出るようになりました。 ユニオンクエリは正常に開くことができるのですが、 テーブル作成クエリで「クエリが複雑すぎます」と表示され、 テーブルが作成できません。 ユニオンクエリでは全てのリンクテーブルをUNIONで繋いでいます。 テーブル作成クエリはユニオンクエリをSELECT...INTOでテーブルにしているだけです。 参照するExcelファイルは今後も増えていって最終的には120個くらいまで 増やるかもしれないということで、 どうしていいかわからず困っています。 何かいい方法をご存知の方、教えていただけないでしょうか。

  • アクセステーブル、リンクとローカルで違いはある?

    Access2003からSQLServerにリンクテーブルを張ったアプリケーションの作成をしています。 本番リリース時にはすべてのテーブルがリンクテーブルになる予定ですが 開発時にはローカルテーブルで開発をしたいと考えています。 理由は、DBにテスト用のゴミデータを追加したくないことと、 セキュリティの関係で接続出来るマシンが限られるためです。 現状の開発方法としては、 テーブルに一度リンクを張り、テーブル追加クエリでローカルにテーブル構造とデータを退避。 手動で主キーを定義して、そのテーブルを実体をみなして開発をしています。 SQLレベルではローカルテーブルもリンクテーブルも同等の扱いだと思っているのですが 何か制限事項などがあるのであれば教えていただきたいです。 なお、ACCESSからはDBを参照するのみで追加・更新は一切無しません。 追記。 クエリからクエリを参照して、さらにSQL内でサブクエリも記述しています。 その為、度々「クエリが複雑過ぎます。」みたいなメッセージが表示されています。 複雑というより無駄に長いだけだったりするのですが、 ローカルテーブルなら発行出来たのに、 リンクテーブルは発行出来ないなどあれば開発に支障が出ますのでよろしくお願いします。

  • リンクテーブルの件

    いつも参考にさせていただいてます。 EXCELのデータをACCESSの既存テーブルに取込みたくて、リンクテーブルを作成いたしました。 そしてここからいろいろ調べると 「Excelリンクテーブルからアクセステーブルへの追加クエリを作成する」のがいい方法だと伺いました。 しかし私は初心者なのもでやりかたがわかりません。 ぜひ教えて頂きたいです。

  • Accessでテーブルのリンクを新規テーブルに保存

    ExcelのデータをAccessのテーブルでリンクしています。 そのデータをクエリで必要なレコードだけを抽出します。 抽出したデータのみを新規テーブルとして保存したいんですが、保存の仕方がわかりません。 Access2000です。 どうかよろしくお願いします。

  • AccessとSqlServerのテーブルリンク

    Access2007とSqlServer2008を使用しています。 Accessで作成したテーブルを「データベースツール」-「データの移動」でSqlServerに移行してリンクする際、 (1)SqlServerに新規にデータベースを作成すると、リンクテーブルマネージャから見てもリンク先DBが正しく表示されますが、 (2)その後、その既存DBに同じAccess内の別のテーブルを、「データベースツール」-「データの移動」してリンクしたものは、リンクテーブルマネージャから見てもリンク先DBが ()となっており表示されていません。 ツールとしてSqlServer Management Studioを使っていますが、そこからでも(1)のテーブルは表示されていますが、(2)のテーブルは表示されません。 でもリンクはできているようなのです。 また、SqlServer Management Studioを使って、SqlServer内に新規テーブルを作成し、 それをAccessからリンクしようとしても、テーブルリンク一覧内に表示されない状態です。 (「外部データ」-「ODBCデータベース」…)にて SqlServerのファイルデータソースを表示しています) (2)のテーブルはSqlServer Management Studioから見ることができないため、更新・削除もできず困っています。 DB、テーブル、リンク方法等、何か問題があるのでしょうか? よろしくお願いします。

  • アクセスのテーブルのリンクで・・・

    アクセスの ”外部データの取り込み” の ”テーブルのリンク” を使って エクセルからリンクしたのですが、 エクセルに入力されている値と違う値が入ってしまいます。 例えば  1.エクセルで ”*” が アクセステーブルでは”#Num!”に    なってしまいます。(きちんと”*”のところもあるのですが)  2.エクセルで ”0” が アクセステーブルで ”#Num!”に    なっているのと ”0” になっているのと2通りになってしまう。    (”#Num!”に統一したいのですが) 対処法があったら教えて下さい。

  • ACCESS97で、テーブルリンクを使用すると結果がおかしくなります

    こんにちわ、ご教授よろしくお願いします。 win2000 Office97を使用しています。 ACCESS97でテーブルリンクでデータを抽出して、 クエリーを走らせた場合と、 リンクを一度テーブルに落としてから、 クエリーを走らせた場合とでデータ件数がちがってきてしまいます。 正しい結果は一度テーブルに落としてから、クエリーを走らせた場合が正しい結果が出ました。 97でテーブルリンクを使用する際に なにか注意しなければならないことがあるのでしょうか? 一々、テーブルに落としてからクエリーを走らすにはかなりの数があるので、 できれば、テーブルリンクを使用してクエリーを走らせたいのです。 わかりずらい説明ですが、ぜひとも ご教授お願いします!><

  • EXCELデータをリンクテーブルとしてACCESSで使う・・・・

    初心者ですが、よろしくお願いいたします。 顧客のデータをEXCELで管理しておりますが、ACCESSでの管理に変更します。そこで、ACCESSでの基盤となるデータなのですが、EXCELで入力して、それを毎日ACCESSのテーブルに引っ張ってくる方法をとりたいのです。過去のデータから現在のデータまで必要です。その方法なのですが、 (1)EXCELのデータをリンクしてリンクテーブルを作成。それをもとにフォームやレポートを作成・・・。 (2)削除クエリで前日の基盤のデータを丸ごと全部消してしまい、追加クエリで新データを丸ごと追加する。 ・・・と自分なりに2つの方法を考えたのですが、経験不足の為、これがベストの方法かよく分かりません。 みなさんは単純にEXCELのデータをACCESSのテーブルに毎日データを更新していくときはどのような方法をとっているのでしょうか。なにかスマートなやり方ありますでしょうか・・・。 よきアドバイスよろしくお願いいたします。

  • ACCESS 2003では、テーブルのリンクを作成できますが、

    ACCESS 2003では、テーブルのリンクを作成できますが、 同じことをACCESS 2007では、操作がわかりません。 教えてください。

専門家に質問してみよう