ラベル contrib の投稿を表示しています。 すべての投稿を表示
ラベル contrib の投稿を表示しています。 すべての投稿を表示

2013年2月19日

【資料公開】「“今そこにある危機”を捉える ~ pg_stat_statements revisited」

2013年2月16日に開催された「PostgreSQLアンカンファレンス」でのセッション「“今そこにある危機”を捉える ~ pg_stat_statements revisited」で使ったスライドを公開しました。

SQLのパフォーマンス分析、チューニングに今や不可欠なpg_stat_statementsビューの使い方を簡単に解説した資料です。


当日、セッションに参加している方に聞いてみたら、「pg_stat_statementsを知らなかった」とか「知っていたけど使ったことがなかった」という方も多くいましたので、改めてぜひ見てみていただければと思います。

資料の中で便利スクリプトも紹介していますので、そちらも併せてどうぞ。

※関連エントリ
実行が遅いSQL文をpg_stat_statementsで抽出する

2012年12月3日

実行が遅いSQL文をpg_stat_statementsで抽出する

PostgreSQL Advent Calendar 2012(全部俺)のDay 3です。

3日目となる今回はSQL文の実行状況を解析するツールとしてpg_stat_statementsを使ってみます。

■SQLパフォーマンスをどのように分析するか


特定のSQL文が遅いことが判明している場合は別ですが、通常、SQLのパフォーマンス分析を行う場合には、「どのSQL文が問題なのか」というところから調査します。その時の判断の軸としては、主に以下の2つがあります。

・実行回数の多いSQL文
・実行時間の長いSQL文

特定のSQL文を修正して得られるパフォーマンス向上の成果は、

・1つのSQL文の改善量×実行回数

となります。

例えば、1回実行するのに1秒かかるSQL文を1万回実行すると、トータルで1万秒となりますが、一回あたりの実行時間を0.5秒に短縮できればトータルの実行時間としては1万秒から5000秒に短縮されることになります。

このようにして、「クエリ1回の実行時間×クエリの実行回数」の大きいものから改善してくと、SQLチューニングに投入する費用対効果(時間も含む)が高くなります。

2012年12月2日

contribモジュールを使ってみよう

PostgreSQL Advent Calendar 2012(全部俺)のDay 2です。

今日はcontribモジュールの使い方についてです。

■contribモジュールとは


PostgreSQLには「contrib」と呼ばれるモジュールがあります。

これは、PostgreSQLのソースコードと一緒に配布されているものの、明示的にコンパイルしてインストールしないとデフォルトではインストールされないという、PostgreSQL周辺の拡張モジュールや便利ツールです。

以下のような感じで、ソースディレクトリの中のcontribというディレクトリ内にいろいろと並んでいます。

[snaga@devsv02 postgresql-9.0.8]$ ls
aclocal.m4  config.status*  contrib/   GNUmakefile     INSTALL   src/
config/     configure*      COPYRIGHT  GNUmakefile.in  Makefile
config.log  configure.in    doc/       HISTORY         README
[snaga@devsv02 postgresql-9.0.8]$ cd contrib/
[snaga@devsv02 contrib]$ ls
adminpack/         fuzzystrmatch/      pgbench/             seg/
auto_explain/      hstore/             pg_buffercache/      spi/
btree_gin/         intagg/             pgcrypto/            sslinfo/
btree_gist/        intarray/           pg_freespacemap/     start-scripts/
chkpass/           isn/                pgrowlocks/          tablefunc/
citext/            lo/                 pg_standby/          test_parser/
contrib-global.mk  ltree/              pg_stat_statements/  tsearch2/
cube/              Makefile            pgstattuple/         unaccent/
dblink/            oid2name/           pg_trgm/             uuid-ossp/
dict_int/          pageinspect/        pg_upgrade/          vacuumlo/
dict_xsyn/         passwordcheck/      pg_upgrade_support/  xml2/
earthdistance/     pg_archivecleanup/  README
[snaga@devsv02 contrib]$
この一覧はオフィシャルマニュアルでは「付録 F. 追加で提供されるモジュール」に記載されています。 このcontribのモジュールを使いこなせるかどうかで、PostgreSQLの便利度は大きく変わってきますので、今回はこのcontribモジュールの使い方を解説します。