PostgreSQL の最新情報 日本 PostgreSQL ユーザ会石井達夫

Similar documents
PostgreSQL による クラスタ構成の可能性 SRA OSS, Inc. 日本支社 取締役支社長 石井達夫

SRA OSS, Inc. のご紹介 1999 年より PostgreSQL サポートを中心に OSS ビジネスを開始 2005 年に現在の形に至る 主なビジネス PostgreSQL, Zabbix などの OSS のサポート コンサルティング 導入構築 PowerGres ファミリーの開発 販売

スライド 1

スライド 1

Zabbix で PostgreSQL を監視! pg_monz のご紹介 Zabbix Conference Japan 年 11 月 20 日 SRA OSS, Inc. 日本支社マーケティング部

pgpool-ii で PostgreSQL のクラスタを楽々運用しよう OSC Tokyo 2014/12/12 SRA OSS, Inc. 日本支社マーケティング部 OSS 技術グループ 長田 悠吾

Web 環境におけるレイヤー別負荷の 2 違い DB サーバ AP サーバ 後ろのレイヤーほど負荷が高く ボトルネックになりやすい

スライド 1

スライド 1

自己紹介 長田悠吾 ( ナガタユウゴ ) SRA OSS, Inc. 日本支社 マーケティング部 OSS 技術グループ pgpool-ii 開発者 PostgreSQL 関連の技術調査 OSS の技術サポート PostgreSQL の開発にも参加 Copyright 2015 SRA OSS, In

メール全文検索アプリケーション Sylph-Searcher のご紹介 SRA OSS, Inc. 日本支社技術部チーフエンジニア Sylpheed 開発者 山本博之 Copyright 2007 SRA OSS, Inc. Japan All right

標準化 補足資料

第 1 章 条件分岐 この章では 条件に応じて処理を分岐する方法について説明します 1. CASE 式で複雑な条件分岐を実現 2. 関数を使用した条件分岐 3. MERGE 文による条件に応じた DML の実行

PostgreSQL 10 で作るクラスタ構成 SRA OSS, Inc. 日本支社 取締役支社長 石井達夫

プレポスト【問題】

n n n ( ) n Oracle 16 PostgreSQL 3 MySQL

PostgreSQLによる クラスタ運用および負荷分散術 SRA OSS, Inc. 日本支社 OSS事業本部 星合 拓馬

PowerPoint プレゼンテーション

第 5 章 結合 結合のパフォーマンスに影響を与える結合の種類と 表の結合順序について内部動作を交えて 説明します 1. 結合処理のチューニング概要 2. 結合の種類 3. 結合順序 4. 結合処理のチューニングポイント 5. 結合関連のヒント

pg_monz 監視アイテム一覧 :Template App PostgreSQL Template App PostgreSQL アプリケーション LLD アイテムトリガー監視タイプ更新間隔ヒストリトレンドデフォルト説明ステータス pg.get pgsql.get.pg.bgwriter Zabb

スライド 1

アジェンダ はクラウド上でも十分使えます 1. の概要 とは の導入事例 で利用される構成 2. をクラウドで使う クラウドサービスの分類 Amazon Web Services による構成例 2


第6回 2014/04/15 OSSユーザーのための勉強会 PostgreSQLの優位性 株式会社アシスト データベース技術本部 喜田 紘介 Copyright 2014 K.K.Ashisuto All Rights Reserved. 1

リレーショナルデータベース入門 SRA OSS, Inc. 日本支社 Copyright 2008 SRA OSS, Inc. Japan All rights reserved. 1

PowerGres Plus V9.1 のご紹介 PostgreSQL をベースに信頼性とセキュリティをプラス SRA OSS,Inc. 日本支社マーケティング部 2015/10 Copyright 2015 SRA OSS, Inc. Japan All rights reserved. 1

Enterprise Cloud + 紹介資料

PowerPoint プレゼンテーション

GresCube で快適 PostgreSQL ライフ 2013 年 11 月 8 日 NTT データ藤井雅雄 PostgreSQL カンファレンス 2013 Copyright 2013 NTT DATA Corporation

PostgreSQL 9.4 評価検証報告 SRA OSS, Inc. 日本支社高塚遙 :55 ~ 16:30 PostgreSQL 9.4 最新情報セミナー Copyright 2014 SRA OSS, Inc. Japan All rights reserved. 1

スライド タイトルなし

今さら聞けない!? Oracle入門 ~前編~

第 2 章 問合せの基本操作 この章では データベースから情報を検索する際に使用する SELECT コマンド および SELECT コマンドと 同時に使用する句について説明します 1. 問合せとは 2. 基本的な問合せ 3. 列の別名 4. 重複行を一意にする 5. 検索行の絞込み 6. 文字パター

今さら聞けない!? Oracle入門 ~後編~

はじめに コースの概要と目的 Oracle をより効率的に使用するための SQL のチューニング方法について説明します また 索引の有無 SQL の 記述方法がパフォーマンスにどのように影響するのかを実習を通して理解します 受講対象者 アプリケーション開発者 / データベース管理者の方 前提条件 S

はじめに コースの概要と目的条件分岐の方法や複雑な集計の手法など SQL のコーディングの幅を広げるためのテクニックについて説明します また パフォーマンスを考慮した記述方法や正しい結果を取得するための記述方法などについても あわせて説明します 本コースでは 実践的な SQL の記述手法を広く浅く紹

PA4

スライド 1

2010/07-08 PostgreSQL 9.0 とクラスタリングソリューション最新動向セミナー

使用する前に

Microsoft PowerPoint - 講義補助資料2017.pptx

データベースS

iNFUSE インフューズ

アジェンダ WG1( 性能ワーキンググループ ) の今年度テーマ 今年度の成果物 実施体制 活動報告 1: 定点観測 ( スケールアップ検証 ) 活動報告 2: パーティショニング検証 活動報告 3: ハードウェア活用 (SSD) 検証 活動報告 4: スケールアウト検証 (Postgres-XC)

<4D F736F F D2095DB8AC78AC7979D A E646F63>

はじめに Dell PowerVault DL2000 Powered by Symantec Backup Exec は シンプルで管理しやすいデータ保護機能を提供する 柔軟かつ経済的なバックアップソリューションです 本ホワイトペーパーでは PowerVault DL2000 の バリューシリーズ

ICDE’15 勉強会 R24-4: R27-3 (R24:Query Processing 3, R27 Indexing)

PowerPoint Presentation

3. XML, DB, DB (AP). DB, DB, AP. RDB., XMLDB, XML,.,,.,, (XML / ), XML,,., AP. AP AP AP 検索キー //A=1 //A=2 //A=3 返却 XML 全体 XML 全体 XML 全体 XMLDB <root> <A

Microsoft PowerPoint - db03-5.ppt

平成20年度成果報告書

ITdumpsFree Get free valid exam dumps and pass your exam test with confidence

Microsoft Word - JP-AppLabs-MySQL_Update.doc

PostgreSQL Plus 管理者ガイド

基本サンプル

目次 1. はじめに SSL 通信を使用する上での課題 SSL アクセラレーターによる解決 SSL アクセラレーターの導入例 SSL アクセラレーターの効果... 6 富士通の SSL アクセラレーター装置のラインナップ... 8

<4D F736F F D2091B28BC68CA48B8695F18D908F912E646F63>

目次 1 VirtualBoot for Hyper-V とは バックアップを実行するマシンの設定 確認すべきこと SPX によるバックアップ VirtualBoot for Hyper-V を実行するマシンの設定 確

平成20年度成果報告書

Sylpheed とは オープンソースのメールソフト ライセンスは GPL+LGPL 高速 軽量 高機能 高い操作性 高い信頼性 導入が容易 マルチプラットフォーム Windows, Linux, etc. 多言語対応 ( 約 30 ヶ国語 )

TOC 本講演の内容 PostgreSQL 開発とリリースの概要 PostgreSQL 9.5 新機能の検証報告 講演者について 高塚遙 SRA OSS, Inc. 日本支社にて PostgreSQL サポート 各種クラスタ構築技術支援 マイグレーション技術支援 などを担当 Copyright 20

自己紹介 正野 裕大 マサノ ユウタ SRA OSS, Inc. 日本支社 OSS技術グループ 主にAmazon Web Services (AWS) 関連のR&D活動に従事 SRA OSS, Inc. 日本支社 1999年よりPostgreSQLサポートを中心にOSSビジネスを開始 Postgre

構成例 システム名 : 単独サーバ業務システムユーザ数 : 1 ユーザ マルチコア CPU のサーバ 1 台で開発 運用します ソート機能を使用します COBOL SE Developer COBOL SE Server Runtime SORTKIT/Enterprise for Windows

アーカイブ機能インストールマニュアル

Microsoft PowerPoint - MySQL-backup.ppt

変更履歴 項番版数内容更新日 版新規作成 2013 年 11 月 18 日 1

日本 PostgreSQL ユーザ会第 28 回しくみ + アプリケーション勉強会 Zabbix を使って PostgreSQL を監視してみよう 2014 年 2 月 1 日 TIS 株式会社中西剛紀 (Yoshinori Nakanishi)

PowerPoint プレゼンテーション

基本サンプル

また IS12T はアップデート以外の動作もできませんので アラームも動作しません IS12T のバージョンによりソフトウェアアップデート所要時間は異なります また インターネットの接続速度や パソコンの性能といったお客様の利用環境により 時間が延びることがあります IS12T のバージョンを確認す

<4D F736F F F696E74202D E A92E897CA D E83678AC7979D B838B5F F947

Microsoft PowerPoint - 4-MySQL50_JDBC_failover.ppt

intra-mart EX申請システム version.7.2 事前チェック

Microsoft PowerPoint pptx

iNFUSE インフューズ

CheckPoint Endpoint Security メトロリリース製品について 株式会社メトロ 2017 年 12 月 27 日

第 3 章 メディア障害とバックアップ リカバリ この章では メディア障害の発生に備えたバックアップ方法と 障害時の基本的なリカバリ方法につい て説明します 1. メディア リカバリ概要 2. ファイルの多重化 3. アーカイブ モードの設定 4. バックアップ概要 5. 一貫性バックアップ ( オ

Postgres Plus Advanced Server 9.3パーティションテーブルの特徴と性能検証レポート

ArcGIS Server 10 機能比較表

OracleDBA(パフォーマンスチューニング(SQL編) - コピー

COBOL Enterprise Edition V2 for Linux COBOL Enterprise Edition V2 は以下のソフトウェアによって構成されています COBOL Enterprise Edition Developer V2.0 COBOL Enterprise Edit

目次 更新履歴... 1 はじめに... 3 レコードセット?... 3 準備... 5 SQL でデータを取得する... 6 データのループ処理... 7 列の値を取得する... 7 対象行を変更する (MoveFirst, MoveNext, MovePrevious, MoveLast)...

新製品 Arcserve Backup r17.5 のご紹介 (SP1 対応版 ) Arcserve Japan Rev. 1.4

PostgreSQLによる データベースサーバ構築技法

3.システム管理(SQL版)_xlsx

アジェンダ Oracle サーバの見える化はなぜ必要? WebSAMApplicationNavigator で簡単 安心に監視を実現 Oracle 監視の導入コスト 2 NEC Corporation 2009

KTest

PowerPoint Presentation

PowerPoint Presentation

PowerPoint Presentation

CheckPoint Endpoint Security メトロリリース製品について 株式会社メトロ 2018 年 07 月 25 日

スライド 1

PowerPoint Presentation

MySQL研修コース & 資格のご案内

データセンターの効率的な資源活用のためのデータ収集・照会システムの設計

データマネジメントを取り巻く IT の課題 大規模データの実践的活用に向けて レッドハット株式会社 Senior Solution Architect and Cloud Evangelist 中井悦司 2012/04/13 version1.0

CLUSTERPROXSingleServerSafe SingleServerSafe ご紹介 2007 年 10 月

Microsoft Word - nvsi_050110jp_netvault_vtl_on_dothill_sannetII.doc


Source Insight

Transcription:

PostgreSQL の最新情報 日本 PostgreSQL ユーザ会石井達夫

すみません. カナダに行けませんでした 2009/05/30 Copyright(c)2009 Tatsuo Ishii 2

スケジュールはこちら コンファレンスについて http://www.pgcon.or g/2009/schedule/ 今回の目玉は右の方だ ったようです How to Get Your PostgreSQL Patch Accepted 2009/05/30 Copyright(c)2009 Tatsuo Ishii 3

2009/05/30 Copyright(c)2009 Tatsuo Ishii 4

順調に成長を続ける PostgreSQL 再帰 SQL Window 関数 9 0 0 0 0 0 8 0 0 0 0 0 マルチプロセッサ最適化 7 0 0 0 0 0 6 0 0 0 0 0 5 0 0 0 0 0 4 0 0 0 0 0 トリガ PL/pgSQL WAL ログ TOAST Concurrent Vacuum Windows 対応 HOT 全文検索 autovacuu m 3 0 0 0 0 0 2 0 0 0 0 0 行ロック MVCC 1 0 0 0 0 0 副問い合わせマルチバイト 0 6.1 6.2 6.3 6.4 6.5 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 8.3 8.4 2009 2008 2006 2005 2003 2002 2001 2000 1999 1998 1997 2009/05/30 Copyright(c)2009 Tatsuo Ishii 5

PostgreSQL の主要な機能 標準装備の機能 行ロック 読み取り一貫性 (MVCC) コストベース オプティマイザ パーティショニング ストアドプロシジャ, トリガ オンライン バックアップ アーカイブログ 全文検索 オプション機能 レプリケーション, クラスタリング,GIS 対応 2009/05/30 Copyright(c)2009 Tatsuo Ishii 6

この 5 年間で PostgreSQL の性能はどれだけ向上したか? PostgreSQL 7.4 (2003 年 ) から PostgreSQL8.3 (2008 年 ) の間に... 検索性能 164% 向上 一括ロード性能 200% 向上 更新性能 300% 向上 2009/05/30 Copyright(c)2009 Tatsuo Ishii 7

検索性能の向上 7.4(2003/11) から 8.3(2008/2) の間に 164% の性能向上 2009/05/30 Copyright(c)2009 Tatsuo Ishii 8

一括ロード性能の向上 7.4(2003/11) から 8.3(2008/2) の間に 200% の性能向上 1 億件 (15GB) のロード 2009/05/30 Copyright(c)2009 Tatsuo Ishii 9

更新性能の向上 7.4(2003/11) から 8.3(2008/2) の間に 300% の性能向上 2009/05/30 Copyright(c)2009 Tatsuo Ishii 10

8.4 注目の新機能 : 再帰 SQL のサポート リスト, 木構造などのデータ構造から再帰的にデータを取得できる 今はアプリ側で処理するか,PL/pgSQL などの関数を使わなければならず, 不便で効率も悪かった 住友電工情報システムと SRA OSS の協力により開発 ユーザ企業が積極的に PostgreSQL の開発に関与する新しい形態 ( エコシステム ) 実装は SQL 標準の共通 SQL 式 (Common Table Expression: CE) 句を採用 2009/05/30 Copyright(c)2009 Tatsuo Ishii 11

単純な再帰 SQL WITH RECURSIVE t(n) AS ( VALUES (1) 非再帰項 UNION ALL SELECT n+1 FROM t WHERE n < 100 -- 再帰項 ) SELECT sum(n) FROM t; sum ------ 5050 2009/05/30 Copyright(c)2009 Tatsuo Ishii 12

サンプルデータ 神奈川支部 横浜営業所 東日本営業本部 関内営業所 東京本社 製造事業本部 厚木工場 戸塚営業所 千葉工場 西日本営業本部 大阪支部 梅田営業所 難波営業所 2009/05/30 Copyright(c)2009 Tatsuo Ishii 13

RDB での表現 事業所名 管轄事業所名 人員数 東京本社 1 0 0 東日本営業本部 東京本社 5 0 神奈川支部 東日本営業本部 5 0 横浜営業所 神奈川支部 2 0 関内営業所 横浜営業所 1 5 戸塚営業所 横浜営業所 1 0 製造事業本部 東京本社 5 0 厚木工場 製造事業本部 2 0 0 千葉工場 製造事業本部 2 0 0 西日本営業本部 東京本社 5 0 大阪支部 西日本営業本部 5 0 梅田営業所 大阪支部 2 0 難波営業所 大阪支部 2 0 2009/05/30 Copyright(c)2009 Tatsuo Ishii 14

東日本営業本部以下の人員数を求める 再帰 SQL の定義 WITH RECURSIVE 東日本営業人員 ( 事業所名, 人員数 ) AS (SELECT 事業所名, 人員数 FROM 人員構成表 WHERE 事業所名 = ' 東日本営業本部 ' UNION ALL SELECT PEN. 事業所名, PEN. 人員数 FROM 人員構成表 AS PEN, 東日本営業人員 AS EBP WHERE PEN. 管轄事業所名 = EBP. 事業所名 ) SELECT SUM( 人員数 ) FROM 東日本営業人員 ; SELECT 本体 2009/05/30 Copyright(c)2009 Tatsuo Ishii 15

組織階層の 深さ を表示 WI T H RECURSI VE 東日本営業人員 ( 事業所名, レベル, 人員数 ) AS (SEL ECT 事業所名, 1, 人員数 F ROM 人員構成表 WHERE 事業所名 = ' 東日本営業本部 ' UNI ON AL L SEL ECT PEN. 事業所名, EBP. レベル +1, PEN. 人員数 F ROM 人員構成表 AS PEN, 東日本営業人員 AS EBP WHERE PEN. 管轄事業所名 = EBP. 事業所名 ) SEL ECT * F ROM 東日本営業人員 ; 事業所名 レベル 人員数 -------------+--------+-------- 東日本営業本部 1 5 0 神奈川支部 2 5 0 横浜営業所 3 2 0 関内営業所 4 1 5 戸塚営業所 4 1 0 (5 r o ws ) 2009/05/30 Copyright(c)2009 Tatsuo Ishii 16

PostgreSQL の新機能 :Window 関数 SQL 標準のデータ解析関数 順序付けなどに利用 行を集約しない ( 集約関数の一種ではない ) 主な関数 row_number: 行番号 rank, dense_rank, percent_rank, cume_dist: 順位 ntile: N 個のグループに分類 first_value, last_value, nth_vaue: ある順位のデータ OVER 関数 () OVER(PARTITION BY...): 区間に分割 関数 () OVER(ORDER BY...): 区間毎にソート 2009/05/30 Copyright(c)2009 Tatsuo Ishii 17

Window 関数 : row_number te s t = # SEL ECT row_number( ) OVER ( ), * F ROM e mp s a l a r y ; r o w_ n u mb e r d e p n a me e mp n o s a l a r y e n r o l l _ d a t e ------------+-----------+-------+--------+------------- 1 d e v e l o p 1 0 5 2 0 0 2 0 0 7-0 8-0 1 2 s a l e s 1 5000 2006-1 0-01 3 p e r s o n n e l 5 3 5 0 0 2 0 0 7-1 2-1 0 4 s a l e s 4 4800 2007-08 -08 5 p e r s o n n e l 2 3 9 0 0 2 0 0 6-1 2-2 3 6 d e v e l o p 7 4 2 0 0 2 0 0 8-0 1-0 1 7 d e v e l o p 9 4 5 0 0 2 0 0 8-0 1-0 1 8 s a l e s 3 4800 2007-08 -01 9 d e v e l o p 8 6 0 0 0 2 0 0 6-1 0-0 1 1 0 d e v e l o p 1 1 5 2 0 0 2 0 0 7-0 8-1 5 (1 0 r o ws ) 出力結果に対して,1 から連番を振る 2009/05/30 Copyright(c)2009 Tatsuo Ishii 18

test=# s e l e c t * f r o m e mp s a l a r y o r d e r b y e mp n o ; d e p n a me e mp n o s a l a r y e n r o l l _ d a t e -----------+-------+--------+------------- s a l e s 1 5000 2006-1 0-01 p e r s o n n e l 2 3 9 0 0 2 0 0 6-1 2-2 3 s a l e s 3 4800 2007-08 -01 s a l e s 4 4800 2007-08 -08 p e r s o n n e l 5 3 5 0 0 2 0 0 7-1 2-1 0 d e v e l o p 7 4 2 0 0 2 0 0 8-0 1-0 1 d e v e l o p 8 6 0 0 0 2 0 0 6-1 0-0 1 d e v e l o p 9 4 5 0 0 2 0 0 8-0 1-0 1 d e v e l o p 1 0 5 2 0 0 2 0 0 7-0 8-0 1 d e v e l o p 1 1 5 2 0 0 2 0 0 7-0 8-1 5 (1 0 r o ws ) 元データ Window 関数 : rank t e s t = # SEL ECT d e p n a me, e mp n o, s a l a r y, rank( ) OVER ( PARTI TI ON BY depname ORDER BY sal ary DESC) F ROM e mp s a l a r y ; d e p n a me e mp n o s a l a r y r a n k -----------+-------+--------+------ d e v e l o p 8 6 0 0 0 1 d e v e l o p 1 0 5 2 0 0 2 d e v e l o p 1 1 5 2 0 0 2 d e v e l o p 9 4 5 0 0 4 d e v e l o p 7 4 2 0 0 5 p e r s o n n e l 2 3 9 0 0 1 p e r s o n n e l 5 3 5 0 0 2 s a l e s 1 5 0 0 0 1 s a l e s 4 4 8 0 0 2 s a l e s 3 4 8 0 0 2 (1 0 r o ws ) 部門の中で, 給料の高い順に並べる 2009/05/30 Copyright(c)2009 Tatsuo Ishii 19

Window 関数 : dense_rank t e s t = # SEL ECT d e p n a me, e mp n o, s a l a r y, dense_rank( ) OVER ( PARTI TI ON BY depname ORDER BY sal ary DESC) F ROM e mp s a l a r y ; d e p n a me e mp n o s a l a r y d e n s e _ r a n k -----------+-------+--------+------------ d e v e l o p 8 6 0 0 0 1 d e v e l o p 1 0 5 2 0 0 2 d e v e l o p 1 1 5 2 0 0 2 d e v e l o p 9 4 5 0 0 3 d e v e l o p 7 4 2 0 0 4 p e r s o n n e l 2 3 9 0 0 1 p e r s o n n e l 5 3 5 0 0 2 s a l e s 1 5 0 0 0 1 s a l e s 4 4 8 0 0 2 s a l e s 3 4 8 0 0 2 (1 0 r o ws ) rank と違って, 順位番号の抜けがない 2009/05/30 Copyright(c)2009 Tatsuo Ishii 20

Window 関数 : percent_rank te s t = # SEL ECT d e p n a me, e mp n o, s a l a r y, percent_rank( ) OVER ( PARTI TI ON BY depname ORDER BY sal ary DESC) F ROM e mp s a l a r y ; d e p n a me e mp n o s a l a r y p e r c e n t _ r a n k -----------+-------+--------+-------------- d e v e l o p 8 6 0 0 0 0 d e v e l o p 1 0 5 2 0 0 0. 2 5 d e v e l o p 1 1 5 2 0 0 0. 2 5 d e v e l o p 9 4 5 0 0 0. 7 5 d e v e l o p 7 4 2 0 0 1 p e r s o n n e l 2 3 9 0 0 0 p e r s o n n e l 5 3 5 0 0 1 s a l e s 1 5 0 0 0 0 s a l e s 4 4 8 0 0 0. 5 s a l e s 3 4 8 0 0 0. 5 (1 0 r o ws ) 順位を割合 ( パーセント ) で表します 2009/05/30 Copyright(c)2009 Tatsuo Ishii 21

Window 関数 : ntile t e s t = # SEL ECT d e p n a me, e mp n o, s a l a r y, nti l e( 3) OVER ( PARTI TI ON BY depname ORDER BY sal ary DESC) F ROM e mp s a l a r y ; d e p n a me e mp n o s a l a r y n t i l e -----------+-------+--------+------- d e v e l o p 8 6 0 0 0 1 d e v e l o p 1 0 5 2 0 0 1 d e v e l o p 1 1 5 2 0 0 2 d e v e l o p 9 4 5 0 0 2 d e v e l o p 7 4 2 0 0 3 p e r s o n n e l 2 3 9 0 0 1 p e r s o n n e l 5 3 5 0 0 2 s a l e s 1 5 0 0 0 1 s a l e s 4 4 8 0 0 2 s a l e s 3 4 8 0 0 3 (1 0 r o ws ) 部門毎に給与をできるだけ 3 分割します 2009/05/30 Copyright(c)2009 Tatsuo Ishii 22

Window 関数 : cume_dist te s t =# SEL ECT d e p n a me, e mp n o, s a l a r y F ROM (SEL ECT *, cume_di st( ) OVER ( ORDER BY sal ary DESC) AS r a n k F ROM e mp s a l a r y ) AS f o o WHERE r a n k <= 0. 3 ; d e p n a me e mp n o s a l a r y ---------+-------+-------- d e v e l o p 8 6 0 0 0 d e v e l o p 1 0 5 2 0 0 d e v e l o p 1 1 5 2 0 0 (3 r o ws ) cume_dist は 累積分散 ( パーセンタイル ) を表します. 上の問合わせは, 給与の上位 3 割を示します. 2009/05/30 Copyright(c)2009 Tatsuo Ishii 23

Window 関数 : 集約関数との組み合わせ SEL ECT d e p n a me, e mp n o, s a l a r y, sum( sal ary) OVER w FROM empsal ary WI NDOW w AS ( PARTI TI ON BY depname) ; d e p n a me e mp n o s a l a r y s u m -----------+-------+--------+------- d e v e l o p 1 1 5 2 0 0 2 5 1 0 0 d e v e l o p 7 4 2 0 0 2 5 1 0 0 d e v e l o p 9 4 5 0 0 2 5 1 0 0 d e v e l o p 8 6 0 0 0 2 5 1 0 0 d e v e l o p 1 0 5 2 0 0 2 5 1 0 0 p e r s o n n e l 5 3 5 0 0 7 4 0 0 p e r s o n n e l 2 3 9 0 0 7 4 0 0 s a l e s 3 4 8 0 0 1 4 6 0 0 s a l e s 1 5 0 0 0 1 4 6 0 0 s a l e s 4 4 8 0 0 1 4 6 0 0 (1 0 r o ws ) sum は部門内の給料の合計を示します 2009/05/30 Copyright(c)2009 Tatsuo Ishii 24

PostgreSQL 8.4: その他の改良 VACUUM の高速化 Visibility Map にテーブルの不用領域の位置を記録し, 無駄なテーブルのスキャンを防ぐ Free Space Map(FSM) のオンディスク化 ディスク上に FSM を持つことにより,FSM の溢れが発生しない - > 追跡不能な再利用可能領域が発生しなくなる ディスク先読みの並列実行 effective_io_concurrency で並列度を指定 (= ドライブの物理 台数 ) 一部プランのみ.Linux/UNIX で利用可能 並列リストア DBのリストア処理を並列に実行できるようになった 2009/05/30 Copyright(c)2009 Tatsuo Ishii 25

VACUUM の効率化 (Visibility Map) 8.3 以前では, テーブルをすべて読まないと, 不用領域を見つけることができなかった Visibility Map 8.4 では,Visibility Map を使って必要なところだけを読んで不要領域を発見できる 2009/05/30 Copyright(c)2009 Tatsuo Ishii 26

PostgreSQL 8.4: その他の改良 列単位でのアクセス権限設定 可変引数関数, デフォルト引数関数 前方一致による全文検索 ハッシュインデックスの高速化 SELECT DISTINCT の高速化 (GROUP BY への書き換え必要なし ) EXISTS, NOT EXISTS の高速化 統計情報ファイルの指定が可能 ( メモリファイル利用による高速化も 可能 ) デッドロックの際に原因となった SQL を表示 関数単位の実行回数, 実行時間のログ 2009/05/30 Copyright(c)2009 Tatsuo Ishii 27

パラレルリストアの効果 PostgreSQL 8.4(4/10 版 ) DBサイズ2.7GB チューニングあり チューニング内容 shared_buffers = 256MB 遅い ( 秒 ) 1600 1400 1200 1000 800 600 400 wal_buffers = 256 check_point_segments = 16 速い 200 0 PostgreSQL 8.3 チューニング無し PostgreSQL 8.3 PostgreSQL 8.4 PostgreSQL 8.4+ パラレルリストア 2009/05/30 Copyright(c)2009 Tatsuo Ishii 28

pgpool-ii 2.2 リリース! pgpool-iiとは PostgreSQL 専用のオープンソースクラスタソフト PostgreSQL 7.4から8.3まで対応 レプリケーション, 負荷分散, パラレルクエリなどの機能 管理用 GUIツールあり 20 万のダウンロード実績 他のレプリケーションソフトとの連携も可能 Slony-I, warm standbye pgpool-ii 2.2 SERIALIZABLEトランザクションへの対応 オンラインリカバリの改善 信頼性の向上 2009/05/30 Copyright(c)2009 Tatsuo Ishii 29

pgpool-ii を導入するメリット レプリケーションによりデータのリアルタイムバックアップ 故障 DB の自動切り放し HAよりも短いフェイルオーバ時間 同期型レプリケーションなので, 複数サーバ間でデータの一時的なずれが起きない 負荷分散機能により, 検索系の性能アップが可能 PostgreSQLアプリケーションの修正は最小限 運用を止めずに DB の切り離し, 復帰, 追加が可能 PostgreSQL の可用性, 性能を向上可能 2009/05/30 Copyright(c)2009 Tatsuo Ishii 30

pgpool-ii のアーキテクチャ Shared Nothing 型の分散クラスタ構成 PostgreSQL 問合わせ PostgreSQL 問合わせ 問合わせ DB クライアント pgpool-ii 問合わせ PostgreSQL 2009/05/30 Copyright(c)2009 Tatsuo Ishii 31

コネクションプールの効果 DBクライアントとpgpool- IIの間の接続が切れても, pgpool-iiとdbの間のコネクションを維持 次回 DBクライアントからの接続があったときに再利用するので性能が向上 コネクションプールをしない場合に比べ, 数倍の性能向上が見られるケースも 性能 (TPS) 800 700 600 500 400 300 200 100 0 コネクションプールなし コネクションプールあり pgbench を使い, 検索問合わせを 10000 回実行した結果データ件数 : 10 万件ハードウェア : Centrino 1.1GHz ソフトウェア : Linux 2.6/PostgreSQL 8.3/pgpool-II 2.1 2009/05/30 Copyright(c)2009 Tatsuo Ishii 32

PostgreSQL pgpool-ii の構成例 (1) アプリケーションサーバそれぞれに pgpool-ii を配置 pgpool-ii 自体の可用性を向上 PostgreSQL DB クライアント PostgreSQL Tomcat+ pgpool-ii 2009/05/30 Copyright(c)2009 Tatsuo Ishii 33

pgpool-ii の構成例 (2) pgpool-ii で負荷分散とフェイルオーバ Slony-I でレプリケーション更新問合わせと検索問合わせの切り分けを pgpool-ii が担当 問合わせ 更新問合わせ 検索問合わせ Slony-I マスタ Slony-I スレーブ DB クライアント pgpool-ii 検索問合わせ Slony-I スレーブ 2009/05/30 Copyright(c)2009 Tatsuo Ishii 34

オープンドア様事例 国内最大級規模の携帯電話向け SNS/ ゲームサイト 月間 4 億 PV, トランザクションの 2 割が更新系 pgpool-ii + Slony-Iで 20 台以上のPostgreSQL を管理. スケールアウトする大規模システムを構築 pgpool-ii 事例 http://members.techtarget.itmedia.co.jp/tt/members/0802/28/news01.html ITMedia techtarget 記事より引用 2009/05/30 Copyright(c)2009 Tatsuo Ishii 35

pgpool-ii 開発サイト pgpool-ii の関連情報 http://pgfoundry.org/projects/pgpool/ pgpool-ii 日本語メーリングリスト http://www.sraoss.jp/mailman/listinfo/pgpoolgeneral-jp PostgreSQL には絶対 pgpool-ii (Think IT) http://www.thinkit.co.jp/article/98/1/ 2009/05/30 Copyright(c)2009 Tatsuo Ishii 36

ご清聴ありがとうございました 2009/05/30 Copyright(c)2009 Tatsuo Ishii 37