タグ

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

  • PostgreSQL Conference 2014 参加レポート — Let's Postgres

    今年の講演は? 3 日目、4 日目がメインイベントといえます。キーノート講演から始まり、3 トラック全 35 講演が用意されています。PostgreSQL の主要開発者も多数演壇に立ちます。 今回のキーノート講演は、組み込みデータベースソフトウェア SQLite の開発者である Dwayne Richard Hipp による講演です。SQLite は PostgreSQL から (6.x 時代の昔にですが) 分岐して、あるいは参考にして生まれた製品なのでした。 「データベースサーバに PostgreSQL を、アプリケーション保存形式には SQLite を使おう、ところで NoSQL は屑だ」といった講演内容です。PGCon に集まるハッカーの大部分は当然のことながら YeSQL 党 (= リレーショナルデータベース派) なので、後段のくだりには会場が笑いに沸き立ちます。 PostgreS

    PostgreSQL Conference 2014 参加レポート — Let's Postgres
  • Mac OS X で PostgreSQL を使ってみよう (2) | Let's POSTGRES

    3. PostgreSQL を立ち上げてみる 順調にインストール作業は終了しました。さて実際に Mac OS X 上で PostgreSQL を立ち上げてみましょう。 Mac の「アプリケーション」フォルダを見てみると、既に「PostgreSQL」、「PostgreSQL 8.3」と言ったフォルダが作成されています。「PostgreSQL  8.3」フォルダは PostgreSQL 体のインストール時に、「PostgreSQL」フォルダはスタックビルダで phpPgAdmin をインストールした時に作られたようです。 それでは「PostgreSQL 8.3」の「SQL Shell (psql)」を立ち上げてみましょう。 ダブルクリックすると自動的に「ターミナル」が立ち上がり、以下のようなメッセージが表示されます。 /Library/PostgreSQL/8.3/scripts/runps

    Mac OS X で PostgreSQL を使ってみよう (2) | Let's POSTGRES
  • PostgreSQL 9.2 の新機能 | Let's POSTGRES

    最新のメジャーバージョンとなるPostgreSQL 9.2 が2012/9 にリリースされました。記事では、PostgreSQL9.2の新機能をいくつかピックアップしてご紹介します。 9.2 では、ロックの改善やIndex Only Scanのサポートなどの性能改善をはじめ、レプリケーション機能の強化、JSON型や範囲型のサポート、ログメッセージや監視機能の充実など、多方面に渡る改良がバランスよく行われています。 性能強化 9.2ではIndex Only Scanやスケーラビリティの向上など、様々な性能強化が図られています。特に、Index Only Scanは9.2の目玉機能の一つとなっています。 Index Only Scan 読んで字の如く、インデックスのみを読むスキャン機能です。この機能により、インデックスキーの付与されている列だけを参照するSELECT処理速度がぐっと向上してい

  • これを読めば PostgreSQL の全てが分かる!PostgreSQL ガイドブック (2) | Let's POSTGRES

    PostgreSQLの開発 PostgreSQL は、PostgreSQL Global Development Group によって開発が行われています。 PostgreSQL Global Development Group とは、PostgreSQLの開発者からなるコミュニティです。開発者は、コアメンバ、主幹開発者、その他の開発者(パッチ投稿など)の 3 層に分けることができます。コアメンバは、プロジェクト全体の取り仕切りを中心に、開発の意思決定権を持っています。ディベロッパ以下の開発者は、自分の得意分野を中心とする機能の開発などを行っているという形です。 開発者は、企業の支援を受けて開発に専念している人もいれば、純粋なボランティアとして趣味の時間を利用して活動している人など様々です。 企業が開発者の支援を行っている場合でも、その企業はソフトウェアの方向性を左右するようなことはなく、

    これを読めば PostgreSQL の全てが分かる!PostgreSQL ガイドブック (2) | Let's POSTGRES
  • Let's Postgres

    Site map An overview of the available content on this site. Keep the pointer still over an item for a few seconds to get its description.

  • SQLを使ってログ解析をしよう | Let's POSTGRES

    各項目がカンマ区切りのテキストで1行を構成します。実際には下記のような内容です。 (注)幅の関係で1行のデータを2行に分けて記述しています。 ee1bdfe5b017f8dcddea61b54aa76536,2010-05-13 00:00:03,1,277,DoSearch,sort 安い順 region ハワイ country ハワイ島 ee1bdfe5b017f8dcddea61b54aa76536,2010-05-13 00:00:04,2,115,ShowList,sort 安い順 region ハワイ country ハワイ島 ee1bdfe5b017f8dcddea61b54aa76536,2010-05-13 00:00:06,3,344,DoSearch,date 20100701 sort 安い順 region ハワイ country ハワイ島 ee1bdfe5b017

  • pgpool-II 3.2 の新機能 (2) オンメモリクエリキャッシュ | Let's POSTGRES

    オンメモリクエリキャッシュとは? 端的に言うと、SELECT の結果をメモリ上にキャッシュとして保存しておいて、 同じ SELECT がきたときに、即座にそのキャッシュした結果を返すしくみです。 キャッシュが存在する場合には、SELECT 文をパース(構文解析)したり実際に実行したりしなくなるので、非常に高速です。 以下は、この機能に関する文書です。 場合によっては、飛躍的な性能向上が見られます。 更新がそんなに頻繁でなく、apache など同じユーザが同じ SELECT をたくさん発行するようなシステムでは、 大きな効果が得られるかもしれません。 特に、それが重い SELECT である場合には、めざましい改善が期待できるでしょう。 以下はその一例のグラフで、横軸は pgbench -S -c 10 -T 10 を実行した回数、 縦軸は TPS(Transactions Per Secon

  • HOTの効果 (4) | Let's POSTGRES

    【コラム】 ガベージの監視 DBT-1の測定でガベージ量の時間推移を見ていましたが、その方法を説明します。PostgreSQLは、取得できる稼働統計情報(DBの様々な処理の統計情報)がバージョンによって少し異なります。そのため、8.2.5と8.3.0で少々ガベージ量のチェック方法が異なります。 8.2.5の場合 8.2.5の測定では、PostgreSQLのシステムテーブルである「pg_stat_user_tables」の「n_tup_upd」と「n_tup_del」のカラムの数値をガベージ量としてしました。pg_stat_user_tablesは、DB内のユーザテーブルに関する様々な情報を記録しており。その中に、更新や削除されたタプル(レコードと同義)数を記録している数値があります。「n_tup_upd」は更新されたタプル数、「n_tup_del」は削除されたタプル数です。そこで更新または

  • 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 を経由することによって、コネクショ

  • Pgpool-IIの簡単セットアップ機能を試してみよう | Let's POSTGRES

    はじめに SRA OSS, Inc. 日支社 石井 達夫 pgpool-IIは複数のPostgreSQLを使ったクラスタシステムを構築できるミドルウェアです。そこでpgpool-IIを実際の業務システムで動かすためには、通常、マシンを複数用意したり、それぞれにPostgreSQLをインストールすることが必要になります。それだけでなく、pgpool-II自体の設定ファイルや、フェイルオーバやオンラインリカバリのためのスクリプトも設定してあげないといけません。これらは結構敷居が高い要求で、「pgpool-IIがなんとなく良さそうなので試してみたい」と思ってもいる人も簡単には手が出せない原因となっていました。 pgpool_setupとは そこで今回ご紹介するのが、pgpool-II 3.3から同梱されるようになった「pgpool_setup」というツールです。pgpool_setupはコマン

  • HOTの仕組み(2) | Let's POSTGRES

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

  • オブジェクト識別子を活用する | Let's POSTGRES

    笠原 辰仁 記事は2013年のPostgreSQL Advent Calendar の 12/9 の記事です。PostgreSQLのオブジェクト識別子(OID)を上手く活用する方法を紹介します。記事の内容はマニュアルでも詳しく書かれているので参考にしてください。 オブジェクト識別子とは、PostgreSQLDB内部に格納している様々なオブジェクト(テーブルやインデックス、関数、演算子、データ型定義などなど)を一意に識別するためのIDです。PostgreSQLをよくお使いの方は、OIDという名称の方がなじみがあるかもしれません。以降はOIDと呼びます。 OIDは、PostgreSQLインスタンスで一意の値を持つ32bitの整数です。ユーザやシステム(PostgreSQL)がオブジェクトを作る際にこのOIDが発行され割り当てられます。システムテーブルや組み込みの関数、演算子、データ型など

  • 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
  • PostgreSQLでテストデータを作成する | Let's POSTGRES

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

  • pgpool-II 3.4の新機能 | Let's POSTGRES

    SRA OSS, Inc. 日支社 石井 達夫 はじめに 記事は2014年のPostgreSQL Advent Calendar の 12/17 の記事です。2014年11月7日にリリースされた pgpool-II 3.4の新機能を紹介します。 pgpool-IIとは pgpool-IIは、複数のPostgreSQLを使ったクラスタシステムを構築できるミドルウェアです。pgpool-IIは、PostgreSQLクライアントと、複数のPostgreSQLの間に割り込む形でproxyのように動作します。既存のPostgreSQLアプリケーションを、ほとんど変更することなく利用することができます。 もっとも多いpgpool-IIの使い方としては、PostgreSQLを複数台使ったストリーミングレプリケーション構成によるクラスタの管理サーバとして使用するものです。以下のような機能が利用できます

  • pgpool-II 3.4の新機能 | Let's POSTGRES

    SRA OSS, Inc. 日支社 石井 達夫 はじめに 記事は2014年のPostgreSQL Advent Calendar の 12/17 の記事です。2014年11月7日にリリースされた pgpool-II 3.4の新機能を紹介します。 pgpool-IIとは pgpool-IIは、複数のPostgreSQLを使ったクラスタシステムを構築できるミドルウェアです。pgpool-IIは、PostgreSQLクライアントと、複数のPostgreSQLの間に割り込む形でproxyのように動作します。既存のPostgreSQLアプリケーションを、ほとんど変更することなく利用することができます。 もっとも多いpgpool-IIの使い方としては、PostgreSQLを複数台使ったストリーミングレプリケーション構成によるクラスタの管理サーバとして使用するものです。以下のような機能が利用できます

  • LATERALを使ってみよう | Let's POSTGRES

    笠原 辰仁 記事は2015年のPostgreSQL Advent Calendarの 12/3 の記事です。PostgreSQL9.3でサポートされたLATERALについての解説と使いどころについて紹介します。 はじめに PostgreSQLは幅広くSQL標準(ではないものも含む)の句や構文をサポートしており、それが製品の特徴の一つでもあります。PostgreSQL8.4でサポートされたWindow関数やWITH句はその引き合いに出されることが多いです。 さて、PostgreSQL9.3からはLATERALという句がサポートされています。やや地味で使われることが少ないため、ご存知の方は少ないかもしれません。しかし、LATERAL句は、使いどころによっては非常に強力な武器になります。 注意 記事ではテーブル定義や実行計画等を記載している箇所がありますが、幅の表示上、見やすいように改行して

  • スロークエリの分析 — Let's Postgres

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

  • 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