• ベストアンサー

数百万件のデータ集計時のソフトウェア(Access?SQLServer?PostgresSQL?)

 ある自治体の下請けで、工業統計や商業統計(国の指定統計)データを集計することになりました。  前回、同様のことを手がけた時は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は便利でした)  ご存知の方がおられましたら、なにとぞご教示をお願いいたします

  • ina00
  • お礼率50% (6/12)

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

  • ベストアンサー
  • cse_ri2
  • ベストアンサー率25% (830/3287)
回答No.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/4872834437/qid=1127835491/sr=1-2/ref=sr_1_10_2/249-9407014-9413952

ina00
質問者

お礼

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

その他の回答 (2)

  • xcrOSgS2wY
  • ベストアンサー率50% (1006/1985)
回答No.2

AccessとSQL Serverを同じ土俵で比較することは少ないのであまり知られていませんが、Accessのデータベースエンジンは非常に高速かつ高性能なものです。Accessが扱えるデータ量の範囲内で、なおかつデータベースファイルをローカルHDDに置く場合、AccessよりSQL Serverのほうが高速になることはほとんどありません。 ですので、お望みのことがAccessで実現可能なのであれば、Accessを使われることをお勧めします。

ina00
質問者

お礼

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

  • O_cyan
  • ベストアンサー率59% (745/1260)
回答No.1

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

ina00
質問者

お礼

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

関連するQ&A

  • SQLServer2000からSQLServer2005へのデータ移行

    SQLServer2000からSQLServer2005へのデータ移行方法 Microsoft SQL Server ManagementStadio Expressで SQLServer2000のバックアップファイルから、 ローカルの開発環境(SQL Server2005 Express)でデータベースを復元しようと試みましたところ、 復元が正常に出来ませんでした。 復元はエラーが発生せず完了しデータベースは作成されているのですが、 データベースを右クリックで削除やプロパティを見ることもできず、 どのようなテーブルが存在するのか中身の参照も追加も何もできない状態です。 http://qanda.rakuten.ne.jp/qa4183273.html 上記URLなどでSQL Server2000のバックアップから2005で復元しているような発言がされているので 可能だと思うのですが、何か特別な処理が必要なのでしょうか? ご存じのかた、教えていただけますようお願いいたします。

  • SQLServer7.0 重大な例外「EXCEPTION_ACCESS_VIOLATION」について

    SQLServer7.0のストアドプロシージャにて、 あらかじめCSVからワークテーブルに格納されたデータを 取り込もうとしています。 1000件ほどのCSVなら難なく取り込めるのですが、 1300件に増やして取り込もうとすると 以下のようなエラーが出ます。 「SqlDumpExceptionHandler: プロセス9で重大な例外 c0000005 EXCEPTION_ACCESS_VIOLATION が発生しました。 SQL Server はこのプロセスを終了します。」 自分なりにネットで検索をかけて調べたところ、 SQLServer7.0のサービスパックで回避出来るとのことだったのですが、 既に今出ているサービスパック4までは当てています。 他になにか原因があるのでしょうか? もしご存知の方がいらっしゃれば助けてください!

  • 大規模データの集計・分析時のソフトウェアについて

    ある団体の保有しているデータの集計・分析作業を行うことになりました.以前同様の業務をしたことがあったのですが,そのときはデータを保有していた先方のシステムをお借りできたので何も考えずに集計・分析作業に集中できました.しかし,今回は先方にそのような環境がないとのことで,環境も構築する必要があります. 以下のような状況の場合,安価に集計・分析するためにはどのようなデータベースのソフトを選択するのが良いでしょうか? ・集計・分析の対象となるデータは月ごとに多くて5億件(これを四半期分なので三ヶ月分) ・1件あたりのデータに含まれる情報はせいぜい100バイト ・集計方法は単純な合計・平均がメインですが,ミクロな分析も必要なので,SQLなどでの制御も考えています. ・集計・分析時にデータの更新などは発生せず,利用者(分析者)は同時に複数アクセスすることはありません. ・データベースを動かす環境の候補は Windows か Linux (i386) のどちらかです. このような場合,どういったデータベースソフトを選択するのが良いでしょうか.よろしくお願いします.

  • OracleとSQLserver間のデータ連携手法について

    SQLserver格納データをoracleDBへ自動格納する方法を探しております。どのような方法があるか皆さまお教えいただけませんでしょうか? 連携手法として同期・非同期は問わないのですができるだけ自動化したいと思っております。(上記でDB間のデータ格納と書きましたが、リンクテーブル等Oracle上で参照できればOKです。) 当方環境としましてはWindows2003Server /Oracle10g・SQLServer2000となります。

  • VBでフォームを作ってSQLServer2000にデータ登録したい。

    VBでフォームを作ってSQLServer2000にデータ登録したい。 の、ですが、可能でしょうか?ついでに詳しいやり方、 SQL SERVER2000のパーソナルエディション。 http://www.microsoft.com/japan/sql/enterprise/feautures.asp の値段も教えていただければうれしいのですが。 よろしくおねがいします。

  • excelでデータの集計をしたいのですが

    エクセル上の表に地域別のデータを集計しています。 地域には番号をつけてあり、下記のようにまとめています。 地域番号   反響内容  1      ○○○○○  4      ○○・・・  2      ・・・・・ これを地域別に何個ずつデータがとれたかを集計する方法を知りたいのです。 地域番号 1 について 反響データ  ○○件   のような形にです。 エクセル上の方法を教えてください。

  • SQLServerでユーザー登録せずにデータを参照

    連続投稿で失礼いたします。 SQLServer初心者です。 microsoft SQL SERVER 2008 R2を使用しています。 SQLサーバーにデータベースを作成し, それをAccessにリンクして,フォームで見たいと思っています。 データーベースは社内サーバに置いてあります。 社内サーバにアクセスできる人であれば, SQLサーバにユーザー登録をせずにデータを閲覧することはできないでしょうか? いちいち全員ユーザー登録して,ユーザーごとに権限を与えるのが面倒だと考えています。 初歩的な質問で大変恐縮です。 よろしくお願いいたします。

  • エクセルのデータ集計

    エクセルでデータの集計についての質問です。 商品のデータベースで「商品名」「注文日」「納品日」が入っています。 「注文日」から「納品日」までが入荷を待ち状態ということになります。 ここで、日ごとの納品待ち商品合計数の年平均を取るにはどうすれば良いでしょうか。 エクセルorアクセスで集計する方法を教えてください!! よろしくお願いいたします。

  • [SQLserver]長文に適したデータ型とその「長さ」

    こんにちは。 ASPとSQLサーバーを用いてWeb掲示板的なシステムを開発しています。 いろいろな文献やインターネットで検索しましたが結局よくわからなかったので仕方なく書き込みをさせていただきます。宜しくお願い致します。 さて、問題ですが・・・。 掲示する情報の件名や日付は問題ないですが、テキスト部分は長文になります。 そうした場合、どのデータ型で格納するのが一番適していますでしょうか? また、そのデータ型の最大「長さ」はいくらなのでしょうか? 以上、宜しくお願いいたします。

  • ASPを用いてSQLServerからのデータ取得ができません。

    ASPを使ってSQLServerからのデータ取得ができません。 クライアントのPCから、Webサーバ経由でDBサーバへアクセスすると、 『[Microsoft][ODBC SQL Server Driver]分散トランザクション エラー』 というエラーメッセージが表示されます。 WebサーバとDBサーバが同一PC上にある場合は、問題なく実行できます。 また、同じテーブルを使って、簡単なサンプルコードを実行した場合では、WebサーバとDBサーバが別々のPC上にあっても問題なく動きます。 原因はIIS、もしくはSQLServerの設定にあるのか、それともASPファイルのソース自体にあるのか、わかりません。 どなたかご存知の方、よろしくお願いします。 DBとの接続はADO接続で、環境は、 Webサーバ/WindowsXP Pro、IIS 5.0 DBサーバ/WindowsXP Pro、SQLServer2000 を使っています。