業者に作成してもらったデータベースが動きません。

解決の道を探しています。

<経緯>
あるシステム業者にデータベース作成を依頼。(php・postgresql・apatchを使用したらしい)

しばらくはきちんと動いていたのですが、データがおおよそ1万件を越えたあたりから非常に重くなり始める。

2万件を越えたあたりで、データの全件インポート・全件エクスポートができなくなる。(業者によると、総データ量が大きすぎてタイムアウトをしてしまうとのこと)

解決方法を2つ提示される。
A.データを分割してインポート・エクスポートする
B.弊社のサーバを増強する

Aでは、システムに分割機能を持たせるには追加料金画必要。
Bでは、費用は自腹。それで解決しなくても補償は無し。

<前提>
取り扱うデータ件数は数万件単位になると開発段階で伝えている。(ただし要件定義には記述なし)


このケースでは業者の言うとおり、こちらが追加発注もしくはサーバ増強をしなくてはいけないのでしょうか。
なるべく低ダメージで解決する方法はあるのでしょうか。


アドバイスよろしくお願いいたします。

回答の条件
  • 1人2回まで
  • 登録:2007/10/22 21:18:59
  • 終了:2007/10/29 21:20:03

回答(6件)

id:KUROX No.1

KUROX回答回数3542ベストアンサー獲得回数1402007/10/22 21:48:34

ポイント19pt

http://support.microsoft.com/kb/813827/ja

http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=19682&am...

-----------

B.弊社のサーバを増強する

 ->仮に2万件が出来るようになっても、4万件になったらまた駄目になるかも

   わからない。そのときは・・・。

id:petem

おぉ。

タイムアウトって防げるんですね。

試してみます。ありがとうございます。

2007/10/25 10:41:02
id:b-wind No.2

b-wind回答回数3344ベストアンサー獲得回数4402007/10/22 22:11:30

ポイント19pt

データがおおよそ1万件を越えたあたりから非常に重くなり始める。

よほど複雑な処理化、設計が腐っているか。

いまどきのサーバースペックならちゃんと設計すればこの程度で重くなることはないです。

が、現状そうなってしまったものはどうしようもなく用件定義にも記述されていない以上、

再チューニングを依頼するしかなさそうです。


2万件を越えたあたりで、データの全件インポート・全件エクスポートができなくなる。

こちらは純粋にデータ量に依存するので、設計とかはあんまり関係ないです。


分割インポート・エクスポートでは状況にもよりますが、DBの整合性が取れないですし

サーバースペックをあげても高々数倍にもなりません。(ディスクアクセスや回線速度のほうが問題のため)


書かれていないので正確にはわかりませんが、インポート・エクスポートは Web のインターフェイスでやっているものと仮定します。

とりあえずの対応としては(おそらく Apache)のタイムアウト設定を長くすることでその場はしのげるでしょう。

本質的には直接エクスポートするのではなく、いったんサーバー上にエクスポートファイルを作成し必要に応じて圧縮。

それを別手段(CGI とか FTP とか)で転送するようにすれば、データ量の増加には耐えられます。

id:petem

なるほど。。。

ちょっと先方に可能かどうか確認してみます。

(そんな方法があるならどうしてやってくれなかったんだろう???まさか知らなかったのでは。。。)

2007/10/25 10:43:17
id:Baku7770 No.3

Baku7770回答回数2832ベストアンサー獲得回数1812007/10/22 23:34:17

ポイント18pt

 構成やこの質問及び過去の質問から中堅不動産業にお勤めと推測して回答いたします。

 ソフトハウス(以後SHと略記)がどのような業者か判りませんがこれも中堅どころで、ハードもメーカーの2次店かその傘下或いは量販店のようなところから購入されたと言うのであれば質問文に書かれているように追加発注或いは機器の増強しか手がありません。

 サーバをIBMなどの外資系メーカーから直接或いは1次店から購入したのならハードウェアの増強で効果があるかを確認するためにメモリなどの貸出を受けることができますが。富士通やNECなどの大手国産メーカーから直接或いは1次店から購入したのならメーカーが仲裁に入ってくれますが。

 国内メーカーのSEで拡販とトラブルシューターを15年弱勤めてきましたが、性能問題の判定は非情に対応が難しく、例えばOracleのような商用DBと違ってpostgresqlなどのフリーのDBだと本当の意味で情報がないなど対応が取れませんのでどんなSHであろうがまず使わせませんでした。

 さて現状抱えている問題の解決ですが、まず2の手法をとるとしてもどこまでの対応が可能なのか事前に確認が必要だと考えます。そのため費用はかかりますが、レンタル会社に依頼するか、メーカーの窓口に連絡をとって対応をお願いしてみて下さい。

 レコード長なども書いていないので単純な比較はできませんが、私個人が扱っているデータ量は半年に1回60万件を扱い、毎週10万件のデータを半日で処理させています。

 むしろ他の業者に依頼して新たに作り直した方が後々のためだと思います。

id:petem

>むしろ他の業者に依頼して新たに作り直した方が後々のためだと思います。

そうですよね。。。

一般的にはどのように業者選定を行うのでしょう?

2007/10/25 10:53:14
id:paraizo No.4

paraizo回答回数139ベストアンサー獲得回数102007/10/23 02:50:39

ポイント18pt

postgresqlのバージョンが分かりませんが流石にvacuumはしてますかね?

あとはpostgresqlのバージョンを8.2に上げると別物のように速いですがリスク高すぎですね。

全件インポート、エクスポートはb-windさんが仰っているようにサーバサイドでコマンドラインなどでやればタイムアウトすることはありえません

id:petem

>postgresqlのバージョンが分かりませんが流石にvacuumはしてますかね?

・・・。勉強します。

>サーバサイドでコマンドラインなどでやればタイムアウトすることはありえません

これが一番有効な対処法のようですね。試してみます。

2007/10/25 10:55:01
id:ikedamama No.5

ikedamama回答回数29ベストアンサー獲得回数02007/10/23 18:44:21

ポイント18pt

コマンドラインでやればその程度の件数

増強なしでやれる筈ですよ。

ただ上記の方もコメントされてますが、

データベースの構造しだいではありますが

もしかしたら外注に出して居るのかもしれませんね

id:petem

>データベースの構造しだい


もしそれすらできないようなアホな構造してたら、責任を問えたりできるのでしょうか?

2007/10/25 10:56:43
id:Baku7770 No.6

Baku7770回答回数2832ベストアンサー獲得回数1812007/10/27 17:08:47

ポイント18pt

 #a3です。

 私宛コメントと#a5のコメントについて回答します。

 

 業者選定の仕方ですが、一番良いのは同様のシステムを利用しているライバル会社に聞くです。

 2番目は大手のベンダー数社に電話して紹介してもらうというのがありますが、その場合、応対した営業マンが借金を抱えている(別のプロジェクトで便宜を図って貰った)ことがあるので私は避けるようにしています。

 3番目は図書館などで日経コンピュータなどの専門雑誌から事例などを見て参考にする。JDパワーなどの調査も参考にしても良いでしょう。

 候補を2~3社選んで、見積もりと提案書を提出してもらい、選定するのが一般的です。提案書には類似システムの開発事例を明記するようにして貰って下さい。

 #A5

>もしそれすらできないようなアホな構造してたら、責任を問えたりできるのでしょうか?

 難しいですが私はアホだということが証明できたら十分可能だと考えています。ハードウェアのスペックなどが書かれていないので、ここでは結論を出しませんが。

参考までに

http://it.nikkei.co.jp/business/column/ochi_comp.aspx?n=MMIT0300...

https://www.netsecurity.ne.jp/7_8621.html

  • id:KUROX
    IEのタイムアウト時間を1分から10分ぐらいに変えたら
    急場をしのげるとは思いますが・・。
    1分でタイムアウトしてるなら。

    タイムアウトしてるのが原因なら、それを解決すべきだと
    思います。サーバー増強したら処理時間が短くなるので
    まあ、かなりの確率で問題解決すると思いますが、
    文面だと、適切なサーバー増強を提案してくれるかどうか
    不明。
  • id:ikedamama
    アホな構造といっても
    速度の遅いデータベース定義見ていると
    第三定義とか、情報処理の試験に出てくるような
    構造が多いんですよね。
    ですから責任を問うことは難しいと思います
    試験の世界では「そちらでやれ」といっているわけですから
    *勿論サーバーのスペックが潤沢であれば、問題ないのでしょうが

    実際運用の世界でデータベース組んで行くと
    理想論からは少し離れていきます。
    多分その境目が、ご指摘あるような2万とかその位の処理件数だと思います

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません