回答受付が終了しました

ID非公開

2020/8/10 0:03

33回答

アクセスに詳しい方、よろしくお願い致します。

アクセスに詳しい方、よろしくお願い致します。 1.社内サーバーよりデータをクエリで取得し、テーブルに書き込み(この動作で数分かかる位重い) 2.1のテーブルを別テーブルとリレーションし、クエリで該当レコードのみ抽出 上記のような動作をさせたいですが、2のクエリが重いようで10分以上実行した挙句、「メモリ不足」のメッセージが出て途中終了します。 解決策はないでしょうか?アクセス詳しくないため、よろしくお願い致します。

補足

エラーメッセージはアクセスから出ております。 仮想サーバーでの実行しております。 アクセスの限界ファイル容量のようなものはあるのでしょうか?もしご存知でしたら参考にご教示頂けますと助かります。無知で申し訳ありません。

Microsoft Access45閲覧xmlns="http://www.w3.org/2000/svg">100

回答(3件)

0

>1.社内サーバーよりデータをクエリで取得し、テーブルに書き込み このクエリで抽出条件を設定しているのであれば、そのフィールドにインデックスがっ設定されていないと、フルスキャン(全件走査)になって処理時間がかかります。 サーバ側のテーブルのインデックス設定で、劇的に速くなる可能性があります。 >2.1のテーブルを別テーブルとリレーションし、クエリで該当レコードのみ抽出 1で書き込んだテーブルと別のテーブルのけつごうフィールドにインデックスが設定されていないと、1と同様に時間がかかります。 双方の結合フィールドにインデックスを設定することにより、劇的に速くなる可能性があります。 メモリ不足はインデックス設定で防げる可能性もありますが、仮想メモリの設定値が不足している(自動管理の場合を除く)可能性の方が大きいです。

0

アクセスやネットワークに詳しいわけではありませんが、まず、どこに問題があるのか調べるのが先決だと思います。 悪いのはサーバなのか、クライアント(あなたのPC)なのか、場合によってはネットワークの経路やハブの性能が問題の事もあります。 始業前や昼休みはスムーズで始業後が遅ければサーバやネットワークの問題かもしれません。 込み合う経路のハブの性能が低いのかもしれません。 「メモリ不足」はどこが出したエラーでしょうか。 クライアント(あなたのPC)なら本当にメモリが少ないのかもしれません。 他にサクサク動いてるPCがあれば、性能を比較してみてください。 あと、無駄なソフトが動いてる場合は閉じるとかが有効かもしれません。 それと、サーバが別PCの場合、クエリで"*"を使うのを極力避けると言うのも、無駄なデータの移動や無駄なメモリを使わないのに有効かもしれません。 まず問題の原因が何かを調べた方がいいと思います。 エラーの原因も。

0

多分アクセスでは手に負えないデータ量の処理と推測します。「社内サーバーよりデータをクエリで取得し」がアクセスからであれば、本格的なRDBMSに移行された方が解決出来ると推測します。Microsoft SQL Server 2019 Express Edition 等、無償で使用出来るRDBMSが複数種類提供されているので、お試し下さい。RDBMSの場合はデータの定義と操作はSQLで対応します、アクセスの場合もVBAを使ってSQLで作れば同じ事が出来ます。

「メモリ不足」のエラーですので、エラーの発生したOSのメモリー(実メモリー及び仮想メモリーの容量)を増やしてみて下さい。