dポイントプレゼントキャンペーン実施中!

 ある自治体の下請けで、工業統計や商業統計(国の指定統計)データを集計することになりました。
 前回、同様のことを手がけた時はMicrosoftAccessのみを用いましたが、DBサイズは2Gまでの制限とか計算速度等の面でさんざん苦労しました。
 
 今回はデータ格納に別のソフトウェアを用いようと思いました。
 現在「SQL Server 2005 」の導入か、オープンソースのPostgresSQLを考えています。(サーバにするつもりではなく、あくまでローカルマシン上で、データ格納のみに用いるつもりです)

 そこで経験者の方にお聞きしたいのですが、このような「大量データの集計」という目的に、SQLServerやPostgresSQLは適するものなのでしょうか。「PostgresSQLやSQLServerだと、Accessよりよほど高速に動作した」ということはあるものなのでしょうか。

 ちなみにデータは1年につき100万~200万件で、構造は基本的に
調査区番号     事業所番号    出荷商品番号出荷商品金額
001          0001         001           100万円
001          0002         001           50万円
                :

のような形です。金額や件数を調査区番号別・出荷商品番号別に集計します。

 集計方法は比較的単純な合計・平均が多いのですが、一部に加重平均、クロス集計等や条件分岐をしなければならない部分があり、ある程度SQL文やプログラムによる制御の必要もあります。(こういう時Accessは便利でした)

 ご存知の方がおられましたら、なにとぞご教示をお願いいたします

A 回答 (3件)

データウェアハウスですね。

私の専門分野です。

予算にもよりますが、あまり大勢の人が使うのでなければ、SQLSeverで十分
かと思います。
Postgress SQLの方が安いのですが、私は使った経験がないのでノーコメント
です。
Postgress SQLは、デフォルトの設定だとあまり速くないという噂を聞いている
ので、ある程度DBのチューニングが必要かもしれません。

ソフトの構成については、
 DB:SQLServer Standard Edition
 多次元DB:SQLServer Analysis Services (SQL Serverに添付)
 フロント :MS Excel + Excel ドリルスルーアドイン(無料でダウンロード)
が、安上がりでよいかと思います。

Excelにドリルスルーアドインを組み込むと、Excelのピボットテーブルに、
SQL Serverのデータを読み込めます。
クロス集計表を作るのであれば、Accessより簡単でしょう。

ただし、データウェアハウス向けのDBを設計する必要がありますので、
ここは専門家の手助けが必要になります。


書籍では、この本がわかりやすそうです。一読の価値はあるかと思います。
『超図解ExcelとOLAPによるデータ分析入門』
 http://www.amazon.co.jp/exec/obidos/ASIN/4872834 …
    • good
    • 0
この回答へのお礼

回答有難うございました。
返事遅くなってしまい、失礼いたしました。
これが「データウェアハウス」というのですか…。
ご紹介いただきました書籍を早速注文してみました。自分なりに確かめてみます。
 有難うございました。

お礼日時:2005/10/02 15:10

AccessとSQL Serverを同じ土俵で比較することは少ないのであまり知られていませんが、Accessのデータベースエンジンは非常に高速かつ高性能なものです。

Accessが扱えるデータ量の範囲内で、なおかつデータベースファイルをローカルHDDに置く場合、AccessよりSQL Serverのほうが高速になることはほとんどありません。

ですので、お望みのことがAccessで実現可能なのであれば、Accessを使われることをお勧めします。
    • good
    • 0
この回答へのお礼

 ご回答ありがとうございました。
 実は他企業のPCでSQL Serverを使わせてもらったとき、「ほんの少し遅いかな?」と感じました。
 ただし、これはロールバック用の処理をしながらとのことでしたので、その機能を切れば少し早くなるかもとのことでした。ご参考までにお知らせいたします。

 

お礼日時:2005/09/27 17:03

>あくまでローカルマシン上でデータ格納のみに用いるつもりです


PostgreSQLの消費メモリは小さくてすみますが大量のレコードを扱う場合はやはりPostgreSQLはUNIX系サーバ
でサービスした方が良いと思います。
SQLServerでレコードを持ちSQLで集計等するのが良いのではと思います。
>一部に加重平均、クロス集計等や条件分岐をしなければならない部分があり・・(こういう時Accessは便利でした)
ODBCでSQLServerにAccessを接続させてAccessで処理した方が便利なものはAccessで処理するようにすれば良いと思います。
>よほど高速に動作した
これはある程度の差は出ます。
PostgresSQLやSQLServerより早いのはメモリの差に物をいわせOracleだと思いますが。PostgresSQLはOracleの約2倍の処理時間がかかる程度?くらいだと思ます。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。
「ODBCでSQLServerにAccessを接続させてAccessで処理」も選択肢として考慮してみます。

お礼日時:2005/09/27 17:05

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

関連するカテゴリからQ&Aを探す