• 締切済み

バキューム処理の実行時間の目安

かなりざっくりな質問で申し訳ないのですが サーバーパフォーマンスは一般的なものとしてお考えいただき 10テーブル カラム平均数15くらいで 1日に蓄積される不要レコードが約5万くらいの場合 vacuumdb の実行時間はどのくらいなのでしょうか。 数秒、数分、30分以上、1時間以上など ざっくりでいいのでご教授ください。 また、これらの情報に関する有益なサイト等ご存知の方いらっしゃいましたら、よろしくお願いします。

みんなの回答

  • aton
  • ベストアンサー率47% (160/334)
回答No.1

私も詳しいわけではないのですが,回答がつかないようなので。 http://ossipedia.ipa.go.jp/capacity/EV0603300125/index.php OSDL DBT-1によるPostgreSQLのVACUUMに関する考察 は参考にならないでしょうか? DBT-1の設定の詳細(item数やuser数)が不明なので,ご質問の条件に適合しているかどうかわからないのですが,itemテーブルのみだと数秒~数十秒,全テーブルだと数分~十数分のようです。

参考URL:
http://ossipedia.ipa.go.jp/capacity/EV0603300125/index.php
rain08
質問者

お礼

お礼がおくれて申し訳ないです。。 やはり、実機で測定するしかなみたいですね。。 URL先参考にさせていただきます。 ありがとうございました。

関連するQ&A

  • クエリの実行時間の目安

    クエリのパフォーマンスチューニングを勉強し始めたのですが、クエリの実行時間の良し悪しはどのように判断したらよいのでしょうか? 実行にかかった時間の目安などはあるのでしょうか? ちなみに、MySQL5.5を使用しています。 以上、よろしくお願い致します。

    • ベストアンサー
    • MySQL
  • 単位時間ごとのレコードのカウント

    time ---------------------------- 2006-12-01 00:00:00.323861 2006-12-01 00:00:00.710523 2006-12-01 00:00:00.963864 2006-12-01 00:00:01.45068 2006-12-01 00:00:01.512551 2006-12-01 00:00:02.17493 2006-12-01 00:00:02.731608 2006-12-01 00:00:02.873651 2006-12-01 00:00:03.398863 2006-12-01 00:00:03.438085 2006-12-01 00:00:03.833481 このようなレコードが格納されているテーブルに対して、例えば1秒ごとにレコードを集計してその集計時間と集計数を表示する といったことをどのようなSELECT文を作れば良いのでしょうか? SELECT COUNT (time) FROM table1 where ~ と書いて条件文を一秒ごとに設定した文を何度も繰り返し実行してみたのですが、処理を完了するのにかなり長い時間を要したのでこの方法は断念しました。 短時間でこの処理が行えるような文があったら教えてください。 お願いします。

  • 命令の実行時間について

    「命令の実行時間=クロックサイクル時間×CPI」とあります。 で、クロックサイクル時間が「10ナノ」秒で、 「CPI」が「5」の機械語命令は、1つの命令を実行する為に、 「=10ナノ秒/クロックサイクル数×5クロックサイクル数/命令」とあります。 上記の計算式を使えば、 クロックサイクル数が「10ナノ」秒で「CPI」が「5」なので、 1つの命令を実行するのに「50ナノ」秒が必要なのは分かりますが、 上記の式の中にある、「/クロックサイクル数」・「/命令」とは 何を意味しているのでしょうか。 単位分数方式として、下記が記載されていました。 「10(ナノ秒/クロックサイクル数)×5(クロックサイクル数/命令)=50(ナノ秒/命令)」 お手数ですが、分かる方おられましたら、ご教授お願いします。 出来ましたら、詳しく解説して頂けると幸いです。 以上、よろしくお願い致します。

  • データの許容量について

    環境 Linux Fedoracore 4/MySQL 4.1/Apache 2.0/PHP 5 いつもお世話になっております。 DB初心者です。 業務で管理しているDBについてですが、1つのテーブルあたり50万行を超えたあたりからパフォーマンス(SQL実行速度)が低下しているのが体感できるようになりました。Slowlogでも確認すみ。 テーブル自体は、アクセスログを保存するため、1アクセス1レコードのように追加しています。(構築すみで仕様の変更はできません。) そこで、下記の質問に対してご意見をいただければと思います。 1)MySQLのレコード数が、パフォーマンスに影響のある一定の桁数(僕のサーバでは50万行以上)に達した場合、レコードを消す以外に対処方はありますか? 2)現在のシステムは別として、数10万行にもデータを蓄積する場合、テーブルを分ける、マシンのスペックをあげるなどの具体的な設計思想や対策があれば教えてください。

  • アクセスからSQLサーバーへ移行の目安

    よく 多数で使うならSQLサーバー、 もしくは一人で使っていてもデータ量が多いならSQLサーバーへ移行、 と聞きますが 後者はどのくらいのデータ量を言うのでしょうか? 現在、 レコード数が10000レコードを超えるテーブルが2つあり、 テーブル数も10個あります。 ファイルのサイズは30MBです。 すでにデータを分割してリンクテーブルとしていますが この場合SQLサーバーへ移行するメリットはありますか? よろしくお願いします。

  • MSDE ACCESSの処理がサーバとクライアントで処理時間が違う

    WindowsXP Access2003 MSDEを使用しております。 ADOを用い ある2つのテーブルを比較して、差異があれば 別のテーブルに差異情報を追加していくという処理をAccessVBA上で行っております。 このプログラムをクライアント側で実行するのとサーバ側で実行するのとで 処理時間が異なります。 クライアント側で実行すると40分 サーバ側で実行すると6時間以上かかってしまいます。 プログラムが組み込まれたadpファイルはまったく同じです。 サーバ側実行時にタスクマネージャで監視していると、 CPU占有率は数%程度で MSACCESS.exeのメモリ使用量はそれほど増減しないのですが sqlserber.exeのメモリ使用量が増加していきます。 しばらく監視しているとまたメモリ使用量はへったのですが、また増えていきます。 サーバ側で遅くなる原因はどこにあるのでしょうか。 ご教示のほど何卒よろしくお願いいたします。

  • Cronで同じ処理を複数同時に実行するには?

    PHPで作ったWebサービスがあります。 ユーザーが100人いたとします。 この100ユーザーそれぞれのデータを、毎日0時(例えば)になると処理をするというCronを作りたいです。 PHPファイルは1ユーザー分の処理をするので、Cronで毎日0時に指定すると1人分の処理しかできません。 ではユーザー毎にCronを100個作るのは得策ではないと思います。 「一つのCron実行で100人分処理すれば?」というご意見もあるかもしれませんが、 1人分の処理が3~30秒かかるので、レンタルサーバーの1実行当たりの動作時間を超えてしまう問題があります。 毎日0時に100人分の処理を実行するのは無理なのでしょうか? そもそも共用のレンタルサーバーレベルでは、100人分の同時処理というのは現実的ではないでしょうか? そうすると、1人ずつ処理していくと、30秒×100人=50分の処理時間が必要になります。 こういう場合はどのように設計すれば良いのでしょうか? どうぞよろしくお願い致します。

    • ベストアンサー
    • PHP
  • CPUの処理待ち数の調べ方と目安を教えてください。

    SolarisサーバにおけるCPUの処理待ち数(WindowsでいうところのSystem - Processor Queue Length)を表示するコマンドを教えていただけないでしょうか。 また、処理待ち数の閾値もお願いします。 閾値はCPUの数やサーバの使い方にもよると思いますが、大体の算出方法を教えてください。 SolarisはWEBサーバ用途でCPUは2個つんでいます。 サーバでは1時間おきにバッチ処理が走り、バッチ処理実行中のCPU idleは0%になります。

  • インデックスの張り方について

    とあるテーブルのレコード数は、全部で28レコードあります。 このテーブルにはインデックスを張っておらず、シーケンシャルスキャンでDBよりSELECTしています。 通常にシステムを運用する上では問題ないのですが、負荷試験などで同時接続数を50などにしループでDBにアクセスさせるとき、その他の4000万レコード程度あるテーブルをSELECTしてくるのは0.00xxx秒で行えるのに対し、この28レコードしかないテーブルからSELECTしてくる際は、遅い場合で0.xx秒もかかってしまいます。 この28レコードしかないテーブルにインデックスを張っても、レコード数が少なすぎてまったく意味がありませんでした。 ちなみにこのレコードへは下記のようなSELECT文を発行しています SELECT xxx,xxx,xxx FROM xxxx where カラム1 = aaaa AND カラム2 IN (bbb,ccc) AND カラム3 = ddd; このレコードのSELECT文を高速化させるには、どのような手段があるでしょうか。 お手数ですがご教示いただけますと幸いでございます。 DBはPostgreSQL、PHPのWebアプリケーションよりDBにアクセスしています。

  • Access 削除クエリが重い

    お世話になります。 環境:Access2003     SQL Server 2008 R2 Express 先日、Accessのローカルにあるテーブルが20万レコードを超えた為、SQLサーバーへ移行しました。 しかし、Accessより削除クエリにて(フォーム上に設置した削除ボタンにて)当該テーブルのレコードを削除しようとすると、4分ほどかかりました。 なお、ローカルにあったときは上記操作をしても2、3秒程度で削除完了してました。 PCのスペックやテーブルのレコード数によるかとは思うのですが、ローカルテーブルとSQLテーブルでこんなに時間が違うものなのでしょうか。 また、回避策や何か設定すれば早くなるなどございましたら、ご教授頂けたらと思います。 宜しくお願い致します。