
ある自治体の下請けで、工業統計や商業統計(国の指定統計)データを集計することになりました。
前回、同様のことを手がけた時は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は便利でした)
ご存知の方がおられましたら、なにとぞご教示をお願いいたします
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/4872834 …
回答有難うございました。
返事遅くなってしまい、失礼いたしました。
これが「データウェアハウス」というのですか…。
ご紹介いただきました書籍を早速注文してみました。自分なりに確かめてみます。
有難うございました。
No.2
- 回答日時:
AccessとSQL Serverを同じ土俵で比較することは少ないのであまり知られていませんが、Accessのデータベースエンジンは非常に高速かつ高性能なものです。
Accessが扱えるデータ量の範囲内で、なおかつデータベースファイルをローカルHDDに置く場合、AccessよりSQL Serverのほうが高速になることはほとんどありません。ですので、お望みのことがAccessで実現可能なのであれば、Accessを使われることをお勧めします。
ご回答ありがとうございました。
実は他企業のPCでSQL Serverを使わせてもらったとき、「ほんの少し遅いかな?」と感じました。
ただし、これはロールバック用の処理をしながらとのことでしたので、その機能を切れば少し早くなるかもとのことでした。ご参考までにお知らせいたします。
No.1
- 回答日時:
>あくまでローカルマシン上でデータ格納のみに用いるつもりです
PostgreSQLの消費メモリは小さくてすみますが大量のレコードを扱う場合はやはりPostgreSQLはUNIX系サーバ
でサービスした方が良いと思います。
SQLServerでレコードを持ちSQLで集計等するのが良いのではと思います。
>一部に加重平均、クロス集計等や条件分岐をしなければならない部分があり・・(こういう時Accessは便利でした)
ODBCでSQLServerにAccessを接続させてAccessで処理した方が便利なものはAccessで処理するようにすれば良いと思います。
>よほど高速に動作した
これはある程度の差は出ます。
PostgresSQLやSQLServerより早いのはメモリの差に物をいわせOracleだと思いますが。PostgresSQLはOracleの約2倍の処理時間がかかる程度?くらいだと思ます。
ご回答ありがとうございました。
「ODBCでSQLServerにAccessを接続させてAccessで処理」も選択肢として考慮してみます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
カウントが出来ません
-
AccessからExcelへエクスポート...
-
ACCESSのクエリで集計で、先頭...
-
FROM の中で CASE を使えるでし...
-
Accessフォームにクロス集計ク...
-
「直需」の意味を教えてください
-
ACCESS検索★ある文字を複数のフ...
-
Excel 2019 のピボットテーブル...
-
Accessでテーブル名やクエリ名...
-
テーブルの存在チェックについて
-
Accessのフィールド数が255しか...
-
日本語のテーブル名、カラム名...
-
Oracle 2つのDate型の値の差を...
-
Oracleのビュー作成時に「指定...
-
Accessでコードを入れると名前...
-
Accessのクエリでデータの入力...
-
SUBSTRING 関数に渡した長さの...
-
Access クロス集計クエリについて
-
ACCESSでの改行コード
-
エクセルグラフの凡例スペース
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
カウントが出来ません
-
FROM の中で CASE を使えるでし...
-
ACCESSのクエリで集計で、先頭...
-
アクセスで困ってます(初心者)
-
access 存在しない項目を”0件”...
-
Accessフォームにクロス集計ク...
-
複数列フィールド値のクロス集計
-
クロス集計の結果を元に戻す方法
-
アクセスクエリ 締め日毎で絞...
-
AccessからExcelへエクスポート...
-
アクセスクエリの計算
-
Accessで年齢から年代ごとの集計
-
桐の集計(集計行設定のこと)...
-
ASで指定した項目名をGROUP BY...
-
教えてグーのランキング?につ...
-
「警告 : NULL 値は集計または...
-
クロス集計での order by句の使...
-
ACCESS VBAの定義域集計関数の...
-
ファイルメーカーからエクセル...
-
クエリを使って縦に一行ずつ足...
おすすめ情報