アプリ版:「スタンプのみでお礼する」機能のリリースについて

大きなデータベースを持っていて、データを含めたプログラムのサイズは、100メガです。VBA(EXCEL2003)で、書かれています。ハイパフォーマンスを狙って、Duo搭載のPC(VISTA)で、EXCEL2007にしたら、互換モードとなり、かえって遅くなってしまいました。
解決策は、
1)もっと速いPC、2)EXCEL2007に、書き換え、3)他の方法(プログラミングテクニック?)、因みに、処理に要する時間は、長いもので、2時間ほどかかります。グラフィック機能は、それほど用いません。
具体的な質問でないので、答えにくいかもしれませんが、何かヒントでも、ご教示いただければ、幸いです。

A 回答 (6件)

データベースの世界で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 …
    • good
    • 0
この回答へのお礼

大変参考になりました。100MBのデータは20のSheetsに格納しています。2コア以上のクロックが、2.5GHz以上のPCを用意して、4GBを用いて、そのうち、1GBをRAMディスクに割り当てるわけですね。なるほど勉強になりました。研究してみます。有難うございました。

お礼日時:2009/10/22 16:15

再び、こんにちわ


ani00です。クラウドとかはかなり高いので、無料は厳しいんですよ。
単純に管理者も必要だし、データ領域とかの関係もあるしで。
会社でやっているなら、業務として何人かに手伝ってもらうしかないのですが、個人物だと厳しいでしょう。
なお、細かく、クラウドとかSaasとかに興味ある場合には、
まず、Wikiかぐぐると良いでしょう。
65歳でその向上心はすばらしいですね。
現在の50代や40代後半に見習わせたい次第です。
後は、皆さんにお礼を私も勉強になります。
    • good
    • 0
この回答へのお礼

何度も有難うございます。クラウド・コンピューティングは、費用が高いですか。一般化して個人にまで開放されるといいんですが、そうするとパソコンメーカーやチップメーカーは、困りますね。65歳にもなるとSaasとかWikiといわれるともういけません。目がショボショボして、ダメです。僕などは、化石みたいなもんです。ワイヤード・コンピュータの時からの付き合いですけど。また、ご指導ください。

お礼日時:2009/10/23 17:40

殆どが データなら


ODBCのドライバーをかまして

データだけでも 外部のDBMSに任せた方がいいと思う

MYSQLでもいいし

場合によっては 数十倍くらい性能が上がるかも

これでパフォーマンスが劇的に上がるのもアレなんですが
    • good
    • 0
この回答へのお礼

有難うございます。DBMSやMYSQLとなると本格的になりますね。65歳の僕には、少しハードルが高いような気がします。もっと勉強してみます。

お礼日時:2009/10/23 05:13

こんちわ


たぶんですが、VBAの増えすぎが原因じゃないかな?
と思います。
まず、できるならシートの分割とかで、分けてどうかな?
という問題のような気がします。
これで、マシンをパワーアップしてもイタチゴッコでしかないと思いますから。
んで、個人的には、2をしながら分割できるものは分けるぐらいが、良いんじゃないかな?
と思います。かなり手間でしょうが、頑張って下さい。
    • good
    • 0
この回答へのお礼

ありがとうございます。書き換えは、相当な手間がかかりますね。話は、変わりますが、最近話題のクラウド・コンピューティングとかが、一般的になり、個人ユーザにも開放されて、しかもEXCELが動けば、好いんですが・・・

お礼日時:2009/10/22 16:21

まず、高スペックなPCを要するプログラムはよろしくありません。


今でこそ、技術の進歩や製品の低価格化で高スペックなPCが手に入りやすくなりましたが昔のそうではない時代はPCに負荷をかけないプログラミングが心がけられていたと思います。
いくら高スペックのPCが安価に買えるようになったからといってもそういうプログラムはだめだめだと思います。
プログラムに合わせてPCを買い換えてたんじゃキリがありません。
プログラムの見直しが必要と思います。
まず、Excelで100MBというのはド級だと思います。
excelで管理するには無理がきているのであればデータベースソフトの使用も考えるべきでは?

この回答への補足

早速の回答有難うございます。そのとおりと思います。ただ、当方、素人で、長年溜め込んだVBAのソフトが数多くあり、新しく作り変えるのは、骨折りかなと案じています。Excelで100MBと言っても、計算してみると98%が、データでした。データベースをACCSESSという方法があるのかもしれませんが、計算が複雑なので、どうしてもEXCELが主体になります。併用は、煩雑になり諦めた経緯があります。

補足日時:2009/10/22 11:49
    • good
    • 0

こちらのサーバーをベースにしたらどうですか?


http://h20547.www2.hp.com/is-bin/INTERSHOP.enfin …

これをベースに
CPUをクアッドコア インテルXeonX3210
メモリを1st&2ndにフル搭載すればかなり快適に動きます。
このサーバーは結構PC代わりに使用している方も多いですよ。
    • good
    • 0
この回答へのお礼

有難うございます。少し贅沢な気がしますが、クアッドコアをPC代わりにという手もありましたね。検討してみます。

お礼日時:2009/10/22 11:27

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!