タグ

ブックマーク / lets.postgresql.jp (10)

  • Microsoft PowerPoint - Explaining_Explain_ja.ppt

    1 Explaining Explain PostgreSQL by Robert Treat (Inspired by Greg Sabino Mullane) PostgreSQL (2009-03-17 / 8.3 ) 2 Explain • Explain • • DML • • EXPLAIN ANALYZE 3 Explain Plan =# EXPLAIN SELECT * FROM pg_proc ORDER BY proname; QUERY PLAN ---------------------------------------------------- Sort (cost=181.55..185.92 rows=1747 width=322) Sort Key: proname -> Seq Scan on pg_proc (cost=0.00..87.47 row

  • 現場で役立つ実践ノウハウWeb開発の「べし」「べからず」(試験編) | Let's POSTGRES

    ~性能を最大限に引き出すための設計・開発・運用~ 永安 悟史 記事は、技術評論社 WEB+DB PRESS Vol.63 で掲載されたものを、著者と出版社の許可を得て転載したものです。なお、一部 記述に変更のある箇所もあります。 【試験】サービス開始に向けて、確認・記録する データベース開発の試験フェーズでは、機能的な動作確認は当然ながら、パフォーマンスやバックアップ/リストアなどの、いわゆる「非機能試験」を行うことになります。節では、データベース特有の試験について、いくつかのポイントを解説します。 【べし】 SQLの実行計画(EXPLAIN)を確認すべし まず、アプリケーションから実行されるSQLは、EXPLAINコマンドなどを用いて、実行計画を確認しておく必要があります(リスト5)。動的なSQL(アプリケーションの内部でSQL文を組み立てるようなケース)の場合は、SQLの実行ログを

  • テキスト検索の方法とインデックス — Let's Postgres

    板垣 貴裕 テキスト検索にもさまざまな方法があります。大量のテキストを検索するにはインデックスを使って検索したいところですが、どんな検索にも応えられるインデックスというものは、さすがに存在しません。それぞれのアプリケーションの条件に適したテキスト検索方法やインデックスの張り方を選んで行きましょう。 今回説明するテキスト検索の方法の一覧を以下に挙げます。PostgreSQL ユーザが「全文テキスト検索」というと「単語単位の検索」を指すことが多いようです。また、「中間一致検索」が「あいまい検索」と呼ばれることもあるようです。用語が厳密な意味で使われないことも多いようなので、文脈には注意して解釈してください。 「単語単位の検索」と「中間一致検索」では、追加のモジュールを導入することで日語全文検索が可能なインデックスを作成できます。こちらは説明の後半で紹介します。以下、記事の内容です。 テキス

  • PostgreSQL 9.5の新機能 | Let's POSTGRES

    PostgreSQL 9.5 は 2016年1月にリリースされました。記事では、PostgreSQL9.5 の新機能の概要と外部参考資料の紹介をいたします。 9.5 新機能の概要 9.5では多数の性能改善、機能拡張が行われています。主要な点を以下に挙げます。すべての変更点は9.5のリリースノートに記載されています。 アプリケーション開発むけに以下の機能追加が行われています。 INSERT .. ON CONFLICT 構文が追加されました。INSERT して既に該当行があったなら UPDATE するという処理が1命令で表現できます。 行単位セキュリティ制御がサポートされました。行ごとにロールに応じたアクセス制御が可能になります。 新たなインデックス方式 BRIN(Block Range Index)が追加されました。更新が少ない静的なデータに対して効率的なインデックスを構成できます。 グ

  • PostgreSQL 超入門 第3回 (2) | Let's POSTGRES

    ところで、Excel に出てくる表とデータベースの表では少し違いがあります。その違いを次に解説します。 データベースの表では、フィールド同士を連結したり、一つのフィールドを複数のフィールドに分割したりすることはできません。一つのフィールドに入れることができるデータは、一つです(ただし、データとして配列など、複数の値が入るように拡張してあります)(図3-2)。 図3-2 ● フィールドの分割結合はできない 行の順序には意味がありません。データベースからデータを読み出した場合、特に順序を指定しなければ、読み出される順は予測することはできません。入力した順序というわけでもありません。実際データを読み出す際には、データの順序を一定にする手段がいろいろと用意されています(図3-3)。 図3-3 ● 行の順序には意味はない 行は、それぞれのフィールドの値でだけ区別されます。したがって、図7にあるように

    PostgreSQL 超入門 第3回 (2) | Let's POSTGRES
  • スロークエリの分析 — Let's Postgres

    NTT オープンソースソフトウェアセンタ 板垣 貴裕 スロークエリ (時間のかかるSQL) を発見するまでの手順を解説します。スロークエリ分析と改善は以下の流れで行うことになります。この記事では主に 1. のスロークエリの特定方法について解説します。2.については『スロークエリの改善』を参考にしてください。 どのSQLが遅いのかを見つける。 そのSQLがなぜ時間がかかるのかを判断する。 設定パラメータ、SQL、スキーマなどを改善する。 着目したSQLの性能を再測定し、2. から繰り返す。 着目したSQLのチューニングが完了したら、他のボトルネックを探すため 1. から繰り返す。 スロークエリの見つけ方 スロークエリを見つけるには、大きく分けて統計情報ビューを使う方法と、サーバログを使う方法の2つがあります。統計情報ビューを使う方法は PostgreSQL 8.4 以降でしか利用できませんが

  • PostgreSQLでテストデータを作成する | Let's POSTGRES

    笠原 辰仁 記事は2013年のPostgreSQL Advent Calendar の 12/25 の記事です(地味なトピックになってしまいすいません)。PostgreSQLでのテストデータ作成に役立つ機能を紹介します。 はじめに PostgreSQLを対象としたの性能検証や機能検証を行う際に、開発環境や試験環境でスキーマ(テーブルやインデックス)を作成し、ダミーのデータを投入してSQLのチェックを行うことが多々あるかと思います。単純な機能の正常試験であれば少量のデータ投入で事足りると思いますが、大量のデータに対する検索処理やバッチ処理を試す際は、それなりの量の試験データを生成し、DBに投入する必要があります。 通常、試験データは、例えば専用のジェネレータを作る、実際のデータをマスキングしたものを使う、サンプルとして存在するデータ(郵便番号のデータなど)を利用する、といったことが多いと思

  • 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
  • HOTの仕組み(2) | Let's POSTGRES

    どうしてガベージの発生量が減ったのか? これの答えは、「常時行われる処理の中で、ガベージの回収を行うようになったから」です。PostgreSQLは、更新処理や削除処理を行った場合、古いデータは消さずに残しておきます。この古いデータ = ガベージを除去し、空き領域として再利用可能とする処理がVACUUMです。HOTは、常時実施されている SELECT, INSERT, UPDATE の処理の中で、VACUUM相当の処理をページ単位で実施するようになったのです(図5)。 図5. HOTによるガベージの掃除 しかし、これだけ見ると単純にVACUUMを細かな単位でバックグラウンド的に実施されるようになっただけに見えますね。実は、これが実現できたのは先ほどの「インデックスの不要な更新をスキップ」できるようになったからなのです。ガベージの掃除をする時に最も注意するのは、除去する行が完全に他から参照され

  • pgpool-II 3.3 の watchdog 機能 | Let's POSTGRES

    はじめに 2013 年 8 月に pgpool-II 3.3 がリリースされました。このバージョンでは、複数の pgpool-II を連携させ、可用性を高める機能である watchdog 関して、いくつか新機能が追加されました。 中でも大きな変更は、pgpool-II 間の死活監視に新しい方法が追加されたことです。 記事では、この新しい監視方法を用いた pgpool-II 3.3 の watchdog 機能について解説します。 pgpool-II および watchdog について pgpool-II とは pgpool-II は、PostgreSQL のクライアントアプリケーションと、(複数の)PostgreSQL の間に割り込んで入る proxy のような形で利用するミドルウェアです。直接 PostgreSQL を使うのではなく、pgpool-II を経由することによって、コネクショ

  • 1