タグ

PostgreSQLに関するrhyaoshのブックマーク (20)

  • PostgreSQLで各テーブルの総サイズと平均サイズを知る - Qiita

    DBを使っている時、どのテーブルがどのくらい容量をっているか知りたいことがあると思う。 また今後のサイズ増加を見積もりたいとき、あるテーブルの1行あたりの平均バイトサイズも知りたいはず! PostgreSQLで見るべきところ pg_classのテーブルの relpagesがブロック数 reltuplesが行数 を表すらしい。 これらは実際にはプランナが用いる推測値。ANALYZEコマンドを打つとこれらの統計情報が更新されるので、ANALYZE直後にやるほうが正確。まぁ大抵、概算が知りたいだけなのであまり気にする必要ないかもしれないが。 ブロックサイズは8K(SHOW block_size;で確認可能)なので relpages / 128Mbytesのサイズを占領しているということ。 平均サイズは、バイト数で知りたいのでrelpages * 8192 / reltuplesすれば良い。0割

    PostgreSQLで各テーブルの総サイズと平均サイズを知る - Qiita
  • PostgreSQLでSQLチューニングや障害状況調査に使ったクエリ達まとめ - $shibayu36->blog;

    最近PostgreSQLSQLチューニングや、DBが詰まった時の状況調査をいろいろやった。その時に便利だったクエリ達をまとめていく。PostgreSQLのバージョンは9.6系です。 SQLチューニングなどに便利だったクエリ達 それ以降に実行するSQLの実行時間を表示する。参考 https://morumoru00.wordpress.com/2011/05/08/postgresql-sql%E5%87%A6%E7%90%86%E6%99%82%E9%96%93%E3%82%92%E8%AA%BF%E3%81%B9%E3%82%8B%EF%BC%88timing/ \timing 実際にクエリを実行して実行計画や実行時間を表示する。クエリが実行されるので破壊的な操作も実行されてしまうことに注意。トランザクション張って最後にROLLBACKしましょう。参考 https://www.post

    PostgreSQLでSQLチューニングや障害状況調査に使ったクエリ達まとめ - $shibayu36->blog;
  • よく使うpsqlの便利技10選

    1. メタコマンドとSQLを一緒に使う 実行例 2. SELECT結果の値だけを取得する 実行例 3. SQLSQLを作り実行 (9.6~) 実行例 4. サーバに応じて実行するSQLを変える (10~) 実行例 5. 忘れたDDLのシンタックスを確認する 実行例 6. SQLファイルの内容を一行ずつ確認しながら実行する 実行例 7. 特定のコマンドを定期的に実行したい 実行例 8. psqlを起動した時に実行されるコマンドを設定する 実行例 9. .psqlrcを一時的に使わない 実行例 10. SELECTの結果をCSV形式で出力 実行例 普段よく使っているpsqlで便利だと思う使い方を10個紹介します。運用で使うシェルスクリプトとかでもpsqlは使う事があると思うので、psql派でない人にも多少は役に立つはず。 特に最近のバージョンで追加された機能は、利用できるバージョンを記載して

  • PostgreSQLの実行計画を読み解くための参考資料集 - ぱと隊長日誌

    はじめに PostgreSQLは商用DBに比べて書籍が少なく、まとまった情報が入手しにくいです。また、有志の方がPostgreSQLに関する資料を公開していますが、散在しており、せっかくの有益な情報にアクセスしにくい状況にあります。 そこで、エントリではPostgreSQLの実行計画に焦点を絞り、公開されている有用な資料(書籍含む)をまとめました。読み返したい資料を探しやすくするため、内容のポイントも併せて紹介してます。 エントリをきっかけに、これらの資料がさらに活用されることを願っています。 前提 各資料の前提としているPostgreSQLのバージョンは異なることにご注意ください。調査対象のPostgreSQLのバージョンが異なれば、状況は変わっているかもしれません。 各資料には内容の重複があり、ほぼ同一内容の場合もあります。重複している内容についてはポイントから割愛することがありま

    PostgreSQLの実行計画を読み解くための参考資料集 - ぱと隊長日誌
  • PostgreSQL Index Only Scan 奮闘記 その3 | TECHSCORE BLOG | TECHSCORE BLOG

    どうも。村上です。 今回で3回目のPostgreSQLです。 今はこんな感じです。 追記型アーキテクチャ バキューム Visibility Map  ← 前回ここまで プラン演算子 ← 今回ここ Index Only Scan では「プラン演算子」いってみよう!! プラン演算子??? プラン演算子ってあまり聞きなれないですけど、簡単に言うと「explain」したら出てくるアレです。 =# explain select * from users; QUERY PLAN ------------------------------------------------------------------- Seq Scan on users (cost=0.00..385179.80 rows=10010480 width=190)

  • PGTune - calculate configuration for PostgreSQL based on the maximum performance for a given hardware configuration

    PgTune - Tuning PostgreSQL config by your hardware

  • PostgreSQL のパフォーマンスチューニング - Qiita

    PostgreSQL Advent Calendar 2014 の 13日目です。 Advent Calendar を今年もやってみたいと思って、枠が空いていたので飛び込んでみました。 昨日は osapon さんの libpqxx を使ってみたでした。 概要 PostgreSQL のパフォーマンスチューニングは大きく下記に分かれます。 システムチューニング SQL チューニング ここでは Linux 上で動かしていることを前提に、それぞれ説明します。 システムチューニング システムチューニングの概要 システムチューニングとは、OS または PostgreSQL の設定を変更することです。 それぞれ順に説明します。 OS チューニング PostgreSQL では特にメモリ関連でOSパラメータを設定変更すると、高速化効果が得られます。 特に下記のカーネルパラメータに注意します。 vm.dirt

    PostgreSQL のパフォーマンスチューニング - Qiita
  • ストリーミング・レプリケーション | Let's POSTGRES

    ストリーミング・レプリケーション (Streaming Replication) は、PostgreSQL 9.0 以降で利用できる、体組み込みのレプリケーション機能です。参照/更新が可能な1つのマスタDBへの更新操作を、参照のみが可能な複数のスタンバイDBへ転送することで、データベースを複製することができます。スタンバイDBに更新結果が反映されるまでには若干の遅延がありますが、比較的 遅延は少なく、マスタDBへの影響も小さいレプリケーション方式です。 用途 ストリーミング・レプリケーションには以下の用途があります。 多数の参照クエリのサーバ間分散 マスタDB異常時の迅速なフェイルオーバー (切り替え) マスタDBのディスク故障に備えたリアルタイム・バックアップ PostgreSQL 9.1 での強化点 バージョン 9.0 の目玉機能として登場したレプリケーション機能ですが、9.1 では

    ストリーミング・レプリケーション | Let's POSTGRES
  • [SQL] SQL文の書き順 〜PostgreSQL Tutorialを使いながら解説〜 | DevelopersIO

    はじめに いざSQL文を書こうと思ったけど、どこから書けばよいのか迷うことはないでしょうか? まずはselect句から書こうかな。。 使用するテーブルはわかっているのでfrom句から。。 where句はちょっと長くなるから後回しにして。。。 などなど 長いSQL文を書く必要がある時に、どこから書けばいいのか迷う方(僕もそうです)に読んでいただければと思います。 今回ご紹介する書き方は、あくまでも僕がSQL文を書く時に気をつけている方法ですので、他にもっといい書き方・書き順がある可能性があります。 今回は順番にフォーカスしているため、個々の句についての解説は割愛します。 環境 MacOS 10.10.5 PostgreSQL 9.4.5 実行順序 SQLが実行される順番は以下のようになっています。 FROM → WHERE → GROUPBY → HAVING → SELECT → ORDE

    [SQL] SQL文の書き順 〜PostgreSQL Tutorialを使いながら解説〜 | DevelopersIO
  • Window関数 — Let's Postgres

    また、CREATE FUNCTION 文でユーザ定義のWindow関数を追加することもできますが、バージョン 8.4 ではC言語で関数を記述する必要があります。SQLやPL/pgSQLは使えないので、敷居は高いかもしれません。 例 典型的なWindow関数の使い方を挙げます。この他にも、これまで複雑なSQLが必要だったさまざまなケースを効率化できる可能性がありますので、SQLパズルだと思って試してみてください。。 連番付与 連番付与を行います。ソートした後、番号をふるのがポイントです。 SELECT row_number() OVER (), * FROM (SELECT * FROM tbl ORDER BY sortkey) AS t; ただし、結果の最大行数を指定するには、row_number との値の比較ではなく、これまでどおり LIMIT 句を使ってください。row_number

  • PostgreSQLを遅くしている犯人はどこだ?

    PostgreSQLを遅くしている犯人はどこだ?:Linuxトラブルシューティング探偵団(3)(1/3 ページ) NTTグループの各社で鳴らした俺たちLinuxトラブルシューティング探偵団は、各社で培ったOSS関連技術を手に、NTT OSSセンタに集められた。普段は基的にNTTグループのみを相手に活動しているが、それだけで終わる俺たちじゃあない。引き続きOSSに関するトラブルの解決過程を@ITで連載していくぜ。 ソースコードさえあればどんなトラブルでも解決する命知らず、不可能を可能にし、多くのバグを粉砕する、俺たちLinuxトラブルシューティング探偵団! 助けを借りたいときは、いつでもいってくれ! OS:高田哲生 俺はリーダー、高田哲生。Linuxの達人。俺のようにソースコードレベルでOSを理解している人間でなければ、百戦錬磨のLinuxトラブルシューティング探偵団のリーダーは務まらん。

    PostgreSQLを遅くしている犯人はどこだ?
  • PostgreSQLのバックアップとリストア - "たゆたえども沈まず"で

    使用しているDB(PostgreSQL 8.4.4)でデータの移行をおこなうことになりました。pg_dumpやpg_restoreを使用することで、データのエクスポートやインポートが可能ということはなんとなく知っているのですが、細かい手順までは理解していないため少し調べてみました。 論理バックアップとリストア 下記ページに記載がありました。 論理バックアップ(pg_dump と pg_dumpall) | Let's Postgres オススメの形式は、カスタムアーカイブ形式 (-Fc) とのことなので、今回はそれでいこうと思います。プレーンテキスト形式もあるようなので、ストレージに余裕がある場合はこちらでもよい気がします。リストア時にどのコマンドを使うかは、ダンプの形式によって異なるようです。カスタムアーカイブ形式 (-Fc)で出力した場合はpg_restoreでリストア、プレーンテキス

    PostgreSQLのバックアップとリストア - "たゆたえども沈まず"で
  • PostgreSQLでインデックスを効率良く利用しよう | TECHSCORE BLOG | TECHSCORE BLOG

    どうも、Benoîtです。 TECHSCORE Advent Calendar 2014 の 4 日目の投稿です。 PostgreSQLではいろいろなインデックス種類が存在する。使い方も様々である。インデックス種類の概要のあとに一番使われるB-treeインデックスの使い道や保守の話しを深めていく。 インデックスとは特定の項目を素早く参照できるようにするためのもの。B-treeインデックスに関してはソートに使うこともできる。 インデックスの種類 PostgreSQLはいろいろなインデックスに対応している。 B-treeインデックス、CREATE INDEX を利用するとデフォルトで選択されるインデックスである。Bの字はバランスの意味で、イメージとしてはtree(木構造)のroot(根)からleaf(最下層のノード)までの階層数がなるべく揃うようにバランスを取る。B-treeインデックスはどの

  • Pgpool-IIの接続性能の改善 | Let's POSTGRES

    SRA OSS, Inc. 日支社 石井 達夫 はじめに 記事は2013年のPostgreSQL Advent Calendar の 12/17 の記事です。pgpool-IIに多数のクライアント同時に接続すると、極端にレスポンスが落ちることがあります。ここではその原因と改善方法について考えます。 pgpool-IIはpre-fork型のアーキテクチャ pgpool-IIは、複数のPostgreSQLを使ったクラスタシステムを構築できるミドルウェアです。pgpool-IIでは、num_init_childrenというパラメータの数だけあらかじめプロセスを起動(pre-fork)しておきます。クライアントからの接続要求があると、そのプロセスの一つがカーネルから選択され、クライアントからの接続を受付けて、処理を開始します。これはApacheなどと同じ方式で、あらかじめプロセスをフォークして

    Pgpool-IIの接続性能の改善 | Let's POSTGRES
  • pgpool-II ユーザマニュアル

    pgpool-IIとは pgpool-IIはPostgreSQL専用のミドルウェアで、PostgreSQLのデータベースクライアントと PostgreSQLサーバの間に割り込む形で動作し、PostgrSQLに以下のような機能を追加します。 コネクションプーリング PostgreSQLへの接続を保存しておき、同じ属性(ユーザ名、データベース、プロトコルバージョン)を持つ接続を 受け付けたときに再利用することによって PostgreSQLへの接続オーバヘッドを低減し、システム全体のスループットを向上することができます。 レプリケーション pgpool-IIは複数のPostgreSQLサーバを管理することができます。レプリケーション機能を使用することにより、 物理的に2台以上のDBサーバにリアルタイムでデータを保存することができ、 万が一どれかのDBサーバに障害が発生しても運用を継続することがで

  • PostgresのRDSチューニング - Qiita

    Wantedlyは今までRDSを初期設定のまま使っていました。ごめんなさい。 今回ちゃんとチューニングしてみたのでやってみた過程と結果を書きます。 ちなみにWantedlyDBを幾つか持っていて、その中のDBの一つの最適化結果です。 NewRelic での測定の結果、平均31ms ぐらいかかっていたのが、 平均23ms ぐらいになっているので25%ぐらいの改善になりました。 インスタンスタイプ 使っているDBのインスタンスタイプです モデル: r3.4xlarge vCPU: 16 メモリ: 122GB SSDストレージ: 1 x 320G デフォルト値 RDSはパラメータグループを調節します。 それぞれのデフォルト値は書かれてないですが、以下のSQL出だすことができます。 => SELECT name,setting,unit FROM pg_settings; name | sett

    PostgresのRDSチューニング - Qiita
  • PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~

    2. 自己紹介 • 氏名下雅意美紀 • 所属TIS株式会社 • 経歴入社1年目 • PostgreSQL歴= 入社歴 • 業務で勉強する以外にも、前回のJPUGのしくみ分科会にも 参加したり(http://thinkit.co.jp/story/2014/07/01/5074)、 PGEConsにも参加したりとコミュニティ活動なども通して日々 PostgreSQLの勉強をしています。 2 3. PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~ アジェンダ ・PostgreSQLのクエリ実行の概要 ・Explain実行結果(問い合わせプラン)の読み方 ・Explain演算子の種類 ・問い合わせプランを変更させる ・実際のデバック例 3 目標 クエリチューニングで使用するExlpainコマンドが出力する実行 計画を読めるようになりましょう。 PostgreSQLがクエリ

    PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~
    rhyaosh
    rhyaosh 2016/02/18
  • PostgreSQLアンチパターン

    2017/9/7 db tech showcase Tokyo 2017(JPOUG in 15 minutes)にて発表した内容です。 SQL大量発行に伴う処理遅延は、ミッションクリティカルシステムでありがちな性能問題のひとつです。 SQLをまとめて発行したり、処理の多重度を上げることができれば高速化可能です。ですが・・・ AP設計に起因する性能問題のため、開発工程の終盤においては対処が難しいことが多々あります。 そのような状況において、どのような改善手段があるのか、Oracleを例に解説します。

    PostgreSQLアンチパターン
  • PostgreSQLが重い!あなたならどうしますか? · DQNEO日記

    サーバが重いということは、負荷(load average)が高いということです。 topコマンドを叩いてDBサーバの負荷を調べます。 $ top top - 01:36:45 up 340 days, 20:16, 4 users, load average: 0.01, 0.04, 0.00 Tasks: 85 total, 1 running, 84 sleeping, 0 stopped, 0 zombie Cpu(s): 0.8%us, 0.2%sy, 0.0%ni, 97.7%id, 1.2%wa, 0.0%hi, 0.2%si, 0.0%st Mem: 4044720k total, 3996008k used, 48712k free, 60648k buffers Swap: 2152700k total, 252k used, 2152448k free, 3826572

  • jpn.ph

    This domain may be for sale!

  • 1