
表題の件について質問させてください。
環境は
PostgreSQL8.2.1
pgpoolにてDB2台で運用しております。
現在、とあるECサイトの運用などに携わっております。
1日平均が2~3千件の注文があり、注文情報を格納してるテーブルが150万件くらいになっています。
元々の作りが全てその注文テーブルに色々な情報を持たせてしまっており、更新頻度も結構高いです。
その状態で、現在は3時間に1回VACUUM ANALYZEをかけているのですが、その影響かはわからないのですが、セッション数(pg_stat_activityの件数)が正常運用時の3倍程度になる事が、ここ最近頻発しており、サイト全体の処理速度に影響しております。
1.VACUUM ANALYZEは、ロックがかからずにSELECT,UPDATE,INSERTなどが出来ると認識しておりますが、実行中に更新がかかっても問題ないという認識はあっておりますでしょうか?
ロックがかかったまま、セッションに残ってしまっているのは別の原因という事であっていますでしょうか?
2.VACUUM ANALYZEの頻度として、3時間に1回という頻度は多いのでしょうか?
やはり、pg_stat_activityで監視をしていると、VACUUM ANALYZEの処理に時間がかかって、セッション数が多くなり、処理速度にかなり影響をあたえているのでは無いかと言う気がしてなりません。
以上、2点について、何かご教授頂ければ幸いです。
宜しくお願い致します。
No.1ベストアンサー
- 回答日時:
私の担当する顧客のPostgreSQL-DBも120万件以上のデータがあります。
1・お使いのバージョンであれば問題ないはずです。ただし、VACUUM時にSELECTなどのレスポンスは当然落ちます。
2・私の方針(笑)では、キー情報のUPDATEが多くない限り、VACUUM ANALYZEまたはFULLは、多くても1週間に1回しかVACUUMしません。
DBの構造にもよりますが、2~3千件のINSERTで3時間に1回のVACUUMは
多い気がしますが、3時間に1回VACUUMしないとレスポンスが悪いのでしょうか?
このあたりはマシンのスペックによってもかなり影響されるので、はっきりとした答えは出ないでしょう。
検索などのレスポンスが悪い場合は、ANALYZEも有効ですが、やはり
定期的にdump&restoreするのが一番いい方法なんですがね。
ノンストップ運用なら無理ですが・・・・
時間がたっているにも関わらず、ご丁寧な回答ありがとうございます。
なるほど。
やはり、3時間に1回は多いですよね。
>ただし、VACUUM時にSELECTなどのレスポンスは当然落ちます。
そうですよね。
ここ最近は、VACUUM時にレスポンスが落ちて、DBに負荷がかかってしまってレスポンスが全然返ってこなくなってしまったりする現象が起きてます。。
>定期的にdump&restoreするのが一番いい方法なんですがね。
こちらの方法も可能かどうか検討してみます。
ありがとうございます!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- ウォーキング・ランニング 減量出来ない原因、持久力が伸びない原因について。 複数の医師に相談しても解決せずですが、私の症状に心 3 2022/11/06 22:02
- その他(ビジネススキル・経営ノウハウ) 在庫管理のこの問題が分かりません。どなたか解説お願いします 2 2022/04/18 18:35
- 数学 在庫管理のこの問題が分かりません。どなたか解説お願いします 4 2022/04/18 22:19
- 数学 在庫管理のこの問題が分かりません。どなたか解説お願いします 2 2022/04/18 22:21
- ガラケー・PHS SMSメールの受信遅延原因はガラケー自体の欠陥では 8 2022/08/06 11:46
- Wi-Fi・無線LAN 最近、WiFiの問題でPCがろくに使えないのですがどうすればいいですか。 現在、何らかの原因でPCを 5 2023/02/19 12:52
- TOEFL・TOEIC・英語検定 2014年に購入した英文法書でTOIEC対策をしてもよいか? 1 2023/01/08 11:41
- Wi-Fi・無線LAN スプラ3の通信エラーについて 3 2023/08/04 00:08
- 政治 日野自動車がこんな事に成ったのは、内部通報制度が機能してなかったからではないですか? 2 2022/08/23 11:51
- 数学 至急!!大学2年の女子です。この高校レベルの問題が分からないので教えてください!お願いしますm(_ 2 2022/11/11 22:10
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
DELETE文でFROM句を省略した場合
-
RDBのテーブル種類の違い
-
ActiveX DLLでのオラクルのトラ...
-
同じSELECT文同士でのデ...
-
accessでイベントを中止するよ...
-
PL/SQLの平行処理について
-
年度毎にシーケンスの初期化?
-
行ロックされているROWID
-
oracle sequence
-
[性能改善]AccessのDBに大量の...
-
統計情報の取得=コミットですか?
-
他の処理でselectさせないよう...
-
条件分の際のnullデータの扱い...
-
同一レコード更新時の排他制御
-
データを削除しても表領域の使...
-
ORA-00959: 表領域'****'は...
-
異なるスキーマからデータを抽...
-
Viewにインデックスは張れ...
-
Data Pump で大量データインポ...
-
viewのバックアップ
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
DELETE文でFROM句を省略した場合
-
他の処理でselectさせないよう...
-
object browser で処理を中断す...
-
RDBのテーブル種類の違い
-
同じSELECT文同士でのデ...
-
PL/SQLの平行処理について
-
年度毎にシーケンスの初期化?
-
[性能改善]AccessのDBに大量の...
-
accessでイベントを中止するよ...
-
C#でトランザクション開始後参...
-
処理速度の見積もり時間について。
-
Oracleから見たOracleの優位性(...
-
チューニング対象のSQLの見つけ...
-
カーソルについて
-
統計情報の取得=コミットですか?
-
Access2013で操作ログを残した...
-
ロングトランザクションについて
-
処理が終わったり終わらなかっ...
-
同一レコード更新時の排他制御
-
トランザクションのデータ件数...
おすすめ情報