大きなデータベースを持っていて、データを含めたプログラムのサイズは、100メガです。VBA(EXCEL2003)で、書かれています。ハイパフォーマンスを狙って、Duo搭載のPC(VISTA)で、EXCEL2007にしたら、互換モードとなり、かえって遅くなってしまいました。
解決策は、
1)もっと速いPC、2)EXCEL2007に、書き換え、3)他の方法(プログラミングテクニック?)、因みに、処理に要する時間は、長いもので、2時間ほどかかります。グラフィック機能は、それほど用いません。
具体的な質問でないので、答えにくいかもしれませんが、何かヒントでも、ご教示いただければ、幸いです。
No.3ベストアンサー
- 回答日時:
データベースの世界で100MBは決して大きなサイズとはいえない。
但し、Excelとなるとどれだけのsheetがあり、各sheetでどれだけのレコード数があるか訊きたいところかなぁ。
その2時間掛かる処理というのが、色々なsheetからデータを読み込んでいるような処理なら、データのi/o処理に一番時間が取られているのかもしれない。
ちなみにその処理の最中にHDDのアクセスランプはどうなっていますか?
(必死に点滅を繰り返していますか? それともタマにアクセスしている程度ですか?)
i/o処理に時間が掛かるなら、そのexcelのsheetごとRAMディスクのドライブに移せば、i/o処理は非常に早くなる。
CPU側はその処理に専任で当たれるコアがあれば良いと思うので、2コア以上でクロックが2.5GHz以上のPCを用意。
メモリは、4GBを搭載して内1GBをRAMディスク側に割り振る。
(1GBあれば、そのExcelデータ+Excelのテンポラリファイル作成でも足りるだろうから)
で、処理時間はかなり短縮できるのではないかと。
RAMディスクは電源を切ると内容が消えるが、ソフトによっては電源を落とす前に別の場所に退避しておき、次回電源を入れた際に復元してくれるものもあるから、RAMディスクである事を気にせず使えるかも知れないと思う。
【RAM Phantom】
http://www.iodata.jp/prod/memory/list/2004/ramph …
大変参考になりました。100MBのデータは20のSheetsに格納しています。2コア以上のクロックが、2.5GHz以上のPCを用意して、4GBを用いて、そのうち、1GBをRAMディスクに割り当てるわけですね。なるほど勉強になりました。研究してみます。有難うございました。
No.6
- 回答日時:
再び、こんにちわ
ani00です。クラウドとかはかなり高いので、無料は厳しいんですよ。
単純に管理者も必要だし、データ領域とかの関係もあるしで。
会社でやっているなら、業務として何人かに手伝ってもらうしかないのですが、個人物だと厳しいでしょう。
なお、細かく、クラウドとかSaasとかに興味ある場合には、
まず、Wikiかぐぐると良いでしょう。
65歳でその向上心はすばらしいですね。
現在の50代や40代後半に見習わせたい次第です。
後は、皆さんにお礼を私も勉強になります。
何度も有難うございます。クラウド・コンピューティングは、費用が高いですか。一般化して個人にまで開放されるといいんですが、そうするとパソコンメーカーやチップメーカーは、困りますね。65歳にもなるとSaasとかWikiといわれるともういけません。目がショボショボして、ダメです。僕などは、化石みたいなもんです。ワイヤード・コンピュータの時からの付き合いですけど。また、ご指導ください。
No.5
- 回答日時:
殆どが データなら
ODBCのドライバーをかまして
データだけでも 外部のDBMSに任せた方がいいと思う
MYSQLでもいいし
場合によっては 数十倍くらい性能が上がるかも
これでパフォーマンスが劇的に上がるのもアレなんですが
有難うございます。DBMSやMYSQLとなると本格的になりますね。65歳の僕には、少しハードルが高いような気がします。もっと勉強してみます。
No.4
- 回答日時:
こんちわ
たぶんですが、VBAの増えすぎが原因じゃないかな?
と思います。
まず、できるならシートの分割とかで、分けてどうかな?
という問題のような気がします。
これで、マシンをパワーアップしてもイタチゴッコでしかないと思いますから。
んで、個人的には、2をしながら分割できるものは分けるぐらいが、良いんじゃないかな?
と思います。かなり手間でしょうが、頑張って下さい。
ありがとうございます。書き換えは、相当な手間がかかりますね。話は、変わりますが、最近話題のクラウド・コンピューティングとかが、一般的になり、個人ユーザにも開放されて、しかもEXCELが動けば、好いんですが・・・
No.2
- 回答日時:
まず、高スペックなPCを要するプログラムはよろしくありません。
今でこそ、技術の進歩や製品の低価格化で高スペックなPCが手に入りやすくなりましたが昔のそうではない時代はPCに負荷をかけないプログラミングが心がけられていたと思います。
いくら高スペックのPCが安価に買えるようになったからといってもそういうプログラムはだめだめだと思います。
プログラムに合わせてPCを買い換えてたんじゃキリがありません。
プログラムの見直しが必要と思います。
まず、Excelで100MBというのはド級だと思います。
excelで管理するには無理がきているのであればデータベースソフトの使用も考えるべきでは?
この回答への補足
早速の回答有難うございます。そのとおりと思います。ただ、当方、素人で、長年溜め込んだVBAのソフトが数多くあり、新しく作り変えるのは、骨折りかなと案じています。Excelで100MBと言っても、計算してみると98%が、データでした。データベースをACCSESSという方法があるのかもしれませんが、計算が複雑なので、どうしてもEXCELが主体になります。併用は、煩雑になり諦めた経緯があります。
補足日時:2009/10/22 11:49No.1
- 回答日時:
こちらのサーバーをベースにしたらどうですか?
http://h20547.www2.hp.com/is-bin/INTERSHOP.enfin …
これをベースに
CPUをクアッドコア インテルXeonX3210
メモリを1st&2ndにフル搭載すればかなり快適に動きます。
このサーバーは結構PC代わりに使用している方も多いですよ。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(Microsoft Office) PCを買い換えました。 今使っているノートパソコンが10年以上使っており新しく買い換えました。Win 5 2023/03/26 00:18
- その他(Microsoft Office) ExcelデータをPDFにして保存するとWordデータに変換されるようになった 10 2023/06/20 09:03
- Visual Basic(VBA) Vba 互換モードでのAppActiveについて教えてください 2 2022/06/27 18:47
- Excel(エクセル) iphonからone driveに保存してあるExcelを閲覧すると表示の仕方がちがうデータ 2 2022/12/21 13:51
- Visual Basic(VBA) VBAでArrayListを使う為の「mscorlib.tlb」の参照設定について 3 2022/03/23 19:45
- Windows 7 Media Playerが開かない。ファイルアイコンを右クリックしても「プロパティ」が表示されない。 2 2023/02/05 14:45
- その他(Microsoft Office) Windows Update 後、Office2019(Word、Excelなど)が消えた 4 2023/01/14 10:28
- Visual Basic(VBA) EXCEL VBAで教えてください。 1 2022/12/22 04:20
- Excel(エクセル) Excelファイル開けない。 3 2023/04/18 07:35
- その他(クラウドサービス・オンラインストレージ) Onedriveで実現したい事。2台のPC間で。 2 2023/04/10 20:42
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
win10で、正確な待ち時間の作り方
-
Excel VBAにて、2GB超の点群デ...
-
小数点を含む数値かどうか判断...
-
SQLの速度をあげるには・・・
-
Excelでのセル内容の高速消去方法
-
.netからexcel操作の処理速度が...
-
絶対パスの取得について
-
EXCELが高速に動く、PCを教えて...
-
フリーズ対処方法
-
テキストファイルの空行をスキ...
-
C言語:関数を使うメリットとデ...
-
このプログラミングの問題がい...
-
C#で書かれたプログラムをバッ...
-
実行時のCPU使用率を増やしたい
-
基本情報技術者試験詳しい方へ...
-
C言語 再帰処理のメリットとデ...
-
DoEvents関数って何?
-
OpenGLでのコンター表示
-
6x6ぼかしマスクをかけるプログ...
-
複数のファイルを読み込むバッ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelでのセル内容の高速消去方法
-
DoEvents関数って何?
-
SQLの速度をあげるには・・・
-
小数点を含む数値かどうか判断...
-
win10で、正確な待ち時間の作り方
-
Excel(VBA)でSetTimer関数を使...
-
絶対パスの取得について
-
WebBrowserの読み込み待ちの処...
-
Excel VBAにて、2GB超の点群デ...
-
VBでの簡易電卓の作成(減算方...
-
テキストファイルの空行をスキ...
-
ノットイコールを教えて下さい
-
ナップザック問題?をエクセル...
-
If Not c Is Nothing Then ~延...
-
プログラム上のCPU稼働率低減に...
-
逆ポーランド記法における単項...
-
符号付きにすべきか、符号なし...
-
C言語 時刻差分の算出方法
-
C言語:関数を使うメリットとデ...
-
Excel VBA データ削除の高速化
おすすめ情報