タグ

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

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

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

    kamipo
    kamipo 2017/02/02
  • パーティショニング : 使い方 | Let's POSTGRES

    1. UPDATE, DELETE へのルールの定義 8.1 以前では UPDATE, DELETE に対して『ルール (RULE)』の定義が必要です。古いバージョンでは検索条件による自動的な絞込みが行われないため、検索を効率化するためにルールを用いて不要なパーティションを除外してやる必要があるのです。 この作業には手間がかかると思いますので、作業が自動化された 8.2 以降を使うことをお勧めします。 2. constraint_exclusion による SELECT, UPDATE, DELETE の自動化 設定パラメータ constraint_exclusion が追加され、SELECT は 8.1 以降で、UPDATE, DELETE は 8.2 以降で、絞込みが自動的に行われるようになりました。constraint_exclusion = on を設定します。ただし、デフォルトの

    kamipo
    kamipo 2015/05/16
  • ロケール(国際化と地域化) — Let's Postgres

    NTT オープンソースソフトウェアセンタ 板垣 貴裕 PostgreSQL でロケール (国際化と地域化) の設定を行うと、データベース内での文字列処理、日付や通貨の表示、メッセージの言語などを変更することができます。特に PostgreSQL 8.4 では、日語のメッセージ・カタログが追加されたため、エラーメッセージを日語化したい場合にはロケールを設定する必要があります。 ただし、C ロケール以外を設定すると、インデックスが使われないなどの性能への影響がある場合もあります。また、特に古いバージョンの PostgreSQL では、誤った設定によりサーバが正しく動作しなくなるケースもありました。 この記事では、ロケール設定の効果を結果例を交えて解説すると共に、トラブルへの対応方法を示します。PostgreSQL で日語を扱う際に、ロケール設定を決める時の参考にして下さい。 Postgr

  • PostgreSQL 9.1 の新機能—Let's Postgres

    PostgreSQL 9.1.0 が 2011年9月12日にリリースされました。 最新版のバイナリやソースコードは "ダウンロード用ページ" で配布されています。 9.1 では、9.0 で新規に採用されたレプリケーション機能の使い勝手の強化の他、外部のファイルや DB に直接アクセスできる SQL/MED や、拡張モジュールの管理機能など、さらなる強化が行われています。 互換性に関する注意 最初が注意になってしまいますが、以前のバージョンとの互換性の無い設定がデフォルトに変更されています。比較的多くのアプリケーションで問題になる可能性があるため、あえて強調して注意させてもらいます。 standard_conforming_strings のデフォルトが on に変更 standard_conforming_strings = on がデフォルトになりました。E'...' 形式でない文字列内

  • PostgreSQL 9.1 の新機能—Let's Postgres

    PostgreSQL 9.1.0 が 2011年9月12日にリリースされました。 最新版のバイナリやソースコードは "ダウンロード用ページ" で配布されています。 9.1 では、9.0 で新規に採用されたレプリケーション機能の使い勝手の強化の他、外部のファイルや DB に直接アクセスできる SQL/MED や、拡張モジュールの管理機能など、さらなる強化が行われています。 互換性に関する注意 最初が注意になってしまいますが、以前のバージョンとの互換性の無い設定がデフォルトに変更されています。比較的多くのアプリケーションで問題になる可能性があるため、あえて強調して注意させてもらいます。 standard_conforming_strings のデフォルトが on に変更 standard_conforming_strings = on がデフォルトになりました。E'...' 形式でない文字列内

  • HOTの効果 (1) — Let's Postgres

    現在 (2009年1月) の最新版であるPostgreSQL8.3では、「HOT」と呼ばれる機能が追加されています。この「HOT」により、PostgreSQLの更新処理性能が劇的に向上し、ガベージ発生量が大幅に減少しました。シリーズでは3回に分けて、この「HOT」の効果や仕組み、そして上手な使い方を詳しく解説していきたいと思います。

  • ログ解析にhstoreを利用してみよう | Let's POSTGRES

    夏目 伸彦 前回では、生ログデータをテーブルに取り込みました。早速解析を始めたいところですが、ちょっと待ってください。 ログ解析をする上で最も気になる点の一つにユーザーの行動等の分析があると思います。今回のログデータの中で、ユーザーの要求、動きが表れているデータは検索条件を表すparamsです。しかしながらparamsはtext型で保持しているため、このままでは扱いやすい形とは言えません。ここで活躍するのがhstoreというデータ型です。 hstoreとは PostgreSQLにはhstore型というキーと値の集合を単一の列に保持できる型があります。paramsの中身であるパラメータ文字列も同様にキーと値の組合せなので、これを使わない手はありません。また、手続き型言語のハッシュテーブル(言語によっては辞書型、マップ等とも呼ばれる)とよく似ているため、手続き型言語になじみのある方には取っつき

  • systemtapを使った動的追跡 | Let's POSTGRES

    NTT オープンソースソフトウェアセンタ 笠原 辰仁 はじめに PostgreSQLのバージョン8.2から、Soralis, FreeBSD, Mac OSXなどで使用可能なDtraceという情報取得ツールに対応しました。Dtraceを使うと、PostgreSQLのトレーシング (ある処理がどのような関数等を通過してきたかの解析) やプロファイリング (ある期間にどんな処理がどれだけ実施されたかの解析) が可能になります。PostgreSQLのマニュアルでも動的追跡という項で紹介されています。これを利用することで、ボトルネックの発見などが可能になります。 Linuxでは、Dtraceの類似の機構としてSystemtapというツールが備わっています。来は、カーネル内部のトレーシングやプロファイリングを主な目的としたツールですが、ユーザアプリケーションの情報取得も可能です。記事では、Sys

  • PostgreSQLの機能と他のRDBMSの比較 | Let's POSTGRES

    全ての機能を網羅した表ではありませんが、PostgreSQLOracle Database と同様の機能があることがお分かりいただけるでしょう。レプリケーションやクラスタリングなどは、PostgreSQL体とは別にリリースされるサードパーティーでの提供となりますが、pgpool-II, Slony-I をはじめとした実績も豊富なソフトウェアが提供されています。 PostgreSQLが特に強みを発揮する分野として、最後の行に記載したGIS (地理情報システム) があります。GISは位置に関する情報を持ったデータ (空間データ) を管理し、主に地図と組み合わせて位置を表示、検索、分析するシステムです。PostgreSQLでは、PostGIS というサードパーティーソフトウェアで、GISオブジェクトをデータベースに格納し空間データに適した検索を行うインデックスと、GISオブジェクトを解析す

  • HOTの上手な使い方 — Let's Postgres

    NTT オープンソースソフトウェアセンタ 笠原 辰仁 さて、HOTシリーズの第3回目となりました。前回・前々回を通じて、HOTがどんな効果を持ち、どのように振舞うのかを見てきました。今回は、HOTを上手く使うためのコツを解説していきたいと思います。HOTの機能を上手く生かすには何が必要になるのでしょうか?次の4つのキーワードに沿って進んでいきましょう。 インデックスキーの更新は避けよう 使われないインデックスは削除しよう ページの空き領域を確保しておこう ロングトランザクションに要注意 インデックスキーの更新は避けよう! 1つ目のコツは、「インデックスキーの更新を避ける」です。 HOTが機能するための前提として、「インデックスキーの更新が起こらない」ことが挙げられます。もちろん、必要不可欠なインデックスキーの更新処理は避けることができませんが、HOTを機能させるための条件ですので、覚えてお

  • 1