PostgreSQL 11 検証レポートレポート

1.1 版
2018 年 10 月 18 日
SRA OSS, Inc. 日本支社
〒170-0022 東京都豊島区南池袋 2-32-8
Tel. 03-5979-2701 Fax. 03-5979-2702
http://www.sraoss.co.jp/

PostgreSQL 11 検証レポートレポート

目次
1. はじめに...................................................................................................................................................... 2
2. 概要.............................................................................................................................................................. 2
3. 検証のためのセットアップのためのセットアップ.......................................................................................................................... 2
3.1. ソフトウェア入手................................................................................................................................ 2
3.2. 検証のためのセットアップ環境.............................................................................................................................................. 2
3.3. インストール....................................................................................................................................... 3
3.3.1. JIT コンパイルを使うためのビルド使うためのビルドうためのビルド............................................................................................. 44. 主要な追加機能追加機能............................................................................................................................................ 5
4.1. JIT コンパイル機能の追加................................................................................................................... 5
4.2. パーティショニングの改善の改善.................................................................................................................. 8
4.2.1. パーティション全体に対するインデックス作成に対するインデックス作成するインデックス作成インデックス作成..........................................................................8
4.2.2. パーティションテーブルに対するインデックス作成するインデックス作成外部キーキー...............................................................................10
4.2.3. パーティション間の透過的データ移動の透過的データ移動データ移動移動......................................................................................124.2.4. ハッシュパーティショニングの改善.................................................................................................... 13
4.2.5. 問い合わせ実行時のパーティション除外処理い合わせ実行時のパーティション除外処理合わせ実行時のパーティション除外処理わせ実行時のパーティション除外処理実行時のパーティション除外処理のパーティション除外処理............................................................................15
4.2.6. パーティション指向の結合・集約の結合わせ実行時のパーティション除外処理・集約............................................................................................. 174.3. パラレル実行の改善........................................................................................................................... 20
4.3.1. 並列ハッシュ結合ハッシュ結合わせ実行時のパーティション除外処理...................................................................................................................... 20
4.3.2. 並列ハッシュ結合インデックス作成............................................................................................................... 21
4.3.3. 並列ハッシュ結合 CREATE TABLE AS........................................................................................................... 22
4.3.4. 並列ハッシュ結合 Append............................................................................................................................... 23
4.3.5. parallel_leader_participation...................................................................................................... 24
4.4. プロシージャ内でのトランザクション制御内でのトランザクション制御でのトランザクション制御.......................................................................................27
4.4.1. 各手続き言語でのトランザクション制御対応き言語でのトランザクション制御対応言語でのトランザクション制御対応でのトランザクション制御対するインデックス作成応............................................................................30
4.5. ALTER TABLE .. ADD COLUMN の性能改善.....................................................................................31
4.6. ウィンドウ関数の拡張の拡張....................................................................................................................... 32
4.6.1. GROUPS ウィンドウフレーム................................................................................................... 32
4.6.2. ウィンドウフレーム RANGE モードの距離指定........................................................................33
4.6.3. ウィンドウフレームの EXCLUDE オプション...........................................................................34
4.7. SCRAM チャ内でのトランザクション制御ンネルバインド............................................................................................................. 34
5. 免責事項..................................................................................................................................................... 36

1
Copyright © 2018 SRA OSS, Inc. Japan All rights reserved.

PostgreSQL 11 検証レポートレポート

1. はじめに本文書は は PostgreSQL 11 に含まれる主要な新機能を説明し、実際に動作させた検証結果を報告するものでまれるインデックス作成主要な追加機能新機能を使うためのビルド説明し、実際に動作させた検証結果を報告するものでし、実際に動作させた検証結果を報告するもので実際に動作させた検証結果を報告するものでに動作させ実行時のパーティション除外処理た検証のためのセットアップ結果を報告するものでを使うためのビルド報告するものでするインデックス作成ものです。PostgreSQL 11 につい合わせ実行時のパーティション除外処理て検証しようとしているユーザの助けになることを目的としています。検証のためのセットアップしようとして検証しようとしているユーザの助けになることを目的としています。い合わせ実行時のパーティション除外処理るインデックス作成ユーザの助けになることを目的としています。けにな追加機能るインデックス作成ことを使うためのビルド目的データ移動として検証しようとしているユーザの助けになることを目的としています。い合わせ実行時のパーティション除外処理ます。
2018 年 5 月 24 日ににリリースされた PostgreSQL 11beta1 を使うためのビルド使うためのビルド用して検証を行って、本文書を作成していますして検証しようとしているユーザの助けになることを目的としています。検証のためのセットアップを使うためのビルド行って検証しようとしているユーザの助けになることを目的としています。、実際に動作させた検証結果を報告するもので本文書は を使うためのビルド作成して検証しようとしているユーザの助けになることを目的としています。い合わせ実行時のパーティション除外処理ます。

2. 概要
PostgreSQL 11 の主要な追加機能新機能は以下の通りです。本ドキュメントではこれらの項目を取り上げます。の通りです。本ドキュメントではこれらの項目を取り上げます。りです。本ドキュメントではこれらの項目を使うためのビルド取り上げます。り上げます。げます。
•

JIT コンパイルの追加•

パーティショニングの改善の様々な改善な追加機能改善•

並列ハッシュ結合実行の様々な改善な追加機能改善•

プロシージャ内でのトランザクション制御内でのトランザクション制御でのトランザクション制御を使うためのビルドサポート•

認証のためのセットアップで SCRAM チャ内でのトランザクション制御ンネルバインドを使うためのビルドサポート•

ALTER TABLE .. ADD COLUMN の性能改善•

ウィンドウ関数の拡張の拡張

この他にも細かな機能追加や変更が多数あります。全ての変更点の一覧についてはにも細かな機能追加や変更が多数あります。全ての変更点の一覧についてはかな追加機能機能追加や変更が多数あります。全ての変更点の一覧については変更が多数あります。全ての変更点の一覧についてはが多数あります。全ての変更点の一覧については多数の拡張あります。全て検証しようとしているユーザの助けになることを目的としています。の変更が多数あります。全ての変更点の一覧については点の一覧についてはの一覧についてはについ合わせ実行時のパーティション除外処理て検証しようとしているユーザの助けになることを目的としています。は PostgreSQL 11 ドキュ
メント内でのトランザクション制御のリリースノート（以下以下の通りです。本ドキュメントではこれらの項目を取り上げます。 URL）に記載されています。に記載されています。されて検証しようとしているユーザの助けになることを目的としています。い合わせ実行時のパーティション除外処理ます。
https://www.postgresql.org/docs/devel/static/release-11.html

3. 検証のためのセットアップのためのセットアップ
3.1. ソフトウェア入手入手
PostgreSQL 11 （以下ベータ移動版を含む）を使うためのビルド含まれる主要な新機能を説明し、実際に動作させた検証結果を報告するもので む ）に記載されています。は以下の通りです。本ドキュメントではこれらの項目を取り上げます。 URL のページからダウンロード可能です。ソースコード
Windows むけバイナリのインストーラ、実際に動作させた検証結果を報告するものでRPM yum リポジトリが多数あります。全ての変更点の一覧については用して検証を行って、本文書を作成しています意されています。されて検証しようとしているユーザの助けになることを目的としています。い合わせ実行時のパーティション除外処理ます。
https://www.postgresql.org/download/snapshots/

3.2. 検証環境
検証のためのセットアップ環境として検証しようとしているユーザの助けになることを目的としています。、実際に動作させた検証結果を報告するものでHP ProLiant MicroServer 上げます。の CentOS 7.x / x86_64 を使うためのビルド使うためのビルド用して検証を行って、本文書を作成していますしました。これは小型サーバサーバ

2
Copyright © 2018 SRA OSS, Inc. Japan All rights reserved.

PostgreSQL 11 検証レポートレポート

マシンであり、実際に動作させた検証結果を報告するもので本検証のためのセットアップは、実際に動作させた検証結果を報告するもので具体に対するインデックス作成的データ移動な追加機能特定マシン上げます。の性能の提示や大規模サーバにおける性能の検証は意図してや変更が多数あります。全ての変更点の一覧については大規模サーバにおける性能の検証は意図してサーバにおけるインデックス作成性能の検証のためのセットアップは意されています。図してして検証しようとしているユーザの助けになることを目的としています。
い合わせ実行時のパーティション除外処理ませ実行時のパーティション除外処理ん。

3.3. インストール
zlib、実際に動作させた検証結果を報告するものでzlib-devel、実際に動作させた検証結果を報告するものでreadline、実際に動作させた検証結果を報告するものでreadline-devel の各パッケージが多数あります。全ての変更点の一覧についてはあらかじめインストールされて検証しようとしているユーザの助けになることを目的としています。い合わせ実行時のパーティション除外処理るインデックス作成状態で、で、実際に動作させた検証結果を報告するもので以下の通りです。本ドキュメントではこれらの項目を取り上げます。のオプションにて検証しようとしているユーザの助けになることを目的としています。ソースコードのビルドを使うためのビルド行い合わせ実行時のパーティション除外処理ました。/usr/local/pgsql ディレクトリを使うためのビルド postgres ユーザ
で読み書き可能なディレクトリとして用意したうえで、み書き可能なディレクトリとして用意したうえで、書は き言語でのトランザクション制御対応可能な追加機能ディレクトリとして検証しようとしているユーザの助けになることを目的としています。用して検証を行って、本文書を作成しています意されています。したうえで、実際に動作させた検証結果を報告するものでpostgres ユーザにて検証しようとしているユーザの助けになることを目的としています。実行しました。
$ cd postgresql-11beta1$ ./configure --prefix=/usr/local/pgsql/11.0 --enable-cassert \--enable-debug --with-libxml --with-openssl --with-perl --with-python$ make world$ make install-world
環境変数の拡張を使うためのビルド設定するインデックス作成ファイルを使うためのビルド書は き言語でのトランザクション制御対応出して、適用します。して検証しようとしているユーザの助けになることを目的としています。、実際に動作させた検証結果を報告するもので適用して検証を行って、本文書を作成していますします。
$ cat > 11.0.env <<'EOF'
PGHOME=/usr/local/pgsql/11.0
export PATH=$PGHOME/bin:$PATH
export LD_LIBRARY_PATH=$PGHOME/lib:$LD_LIBRARY_PATH
export PGDATA=/usr/local/pgsql/data11.0
export PGPORT=5432
EOF$ . 11.0.env
データ移動ベースクラスタ移動を使うためのビルド作成します。ロケール無し（し（以下C ロケール）に記載されています。、実際に動作させた検証結果を報告するものでUTF8 を使うためのビルドデフォルトとします。
$ initdb --no-locale --encoding=UTF8
設定ファイルに最小限の設定を与えます。の設定を使うためのビルド与えます。えます。
$ cat >> $PGDATA/postgresql.conf << EOF
logging_collector = on
EOF
PostgreSQL を使うためのビルド起動します。
$ pg_ctl start3
Copyright © 2018 SRA OSS, Inc. Japan All rights reserved.

PostgreSQL 11 検証レポートレポート

3.3.1. JIT コンパイルを使うためのビルドを使うためのビルド使うためのビルドうためのビルを使うためのビルドド
新たに追加された JIT コンパイル機能を使うためのビルド使うためのビルドうためには以下の通りです。本ドキュメントではこれらの項目を取り上げます。のビルド手順が必要です。が多数あります。全ての変更点の一覧については必要です。
まず、実際に動作させた検証結果を報告するものでLLVM コンパイラ基盤が必要です。が多数あります。全ての変更点の一覧については必要です。RHEL/CentOS 7.x の LLVM はバージョン 3.4.x とが多数あります。全ての変更点の一覧については古いためい合わせ実行時のパーティション除外処理ため 、実際に動作させた検証結果を報告するものでSoftware Collections から llvm 4.0.x を使うためのビルド導入しました。
# yum install centos-release-scl# yum install llvm-toolset-7 llvm-toolset-7-llvm-devel
configure オプションに--with-llvm を使うためのビルド、実際に動作させた検証結果を報告するものでまた、実際に動作させた検証結果を報告するものでLLVM_CONFIG 変数の拡張に llvm-config コマンドのパスを使うためのビルド指定
します。さらに C++や変更が多数あります。全ての変更点の一覧については CLANG も使うためのビルドい合わせ実行時のパーティション除外処理ますので、実際に動作させた検証結果を報告するものでこれらについ合わせ実行時のパーティション除外処理て検証しようとしているユーザの助けになることを目的としています。導入した llvm ツールセットに含まれる主要な新機能を説明し、実際に動作させた検証結果を報告するものでまれるインデックス作成ものを使うためのビルド使うためのビルドうように、実際に動作させた検証結果を報告するものでCXX、実際に動作させた検証結果を報告するものでCLANG を使うためのビルド指定します。本例ではでは C コンパイラにも llvm ツールセットに含まれる主要な新機能を説明し、実際に動作させた検証結果を報告するものでまれるインデックス作成 gcc 7.xを使うためのビルド使うためのビルドうように CC も指定して検証しようとしているユーザの助けになることを目的としています。い合わせ実行時のパーティション除外処理ます。
$ cd postgresql-11beta1/$ CC=/opt/rh/devtoolset-7/root/usr/bin/cc \CXX=/opt/rh/devtoolset-7/root/usr/bin/g++ \CLANG=/opt/rh/llvm-toolset-7/root/usr/bin/clang \LLVM_CONFIG=/opt/rh/llvm-toolset-7/root/usr/bin/llvm-config \./configure --prefix=/usr/local/pgsql/11.0 --enable-debug --with-llvm$ make world$ make install-world
このコンパイルは--with-llvm オプション無し（しの場合わせ実行時のパーティション除外処理とくらべて検証しようとしているユーザの助けになることを目的としています。時のパーティション除外処理間の透過的データ移動を使うためのビルド要します。検証のためのセットアップ環境では 20 分ほほ
ど要しました。要しました。
このビルドを使うためのビルド使うためのビルドう場合わせ実行時のパーティション除外処理には環境変数の拡張設定で LD_LIBRARY_PATH に llvm のライブラリのパスを使うためのビルド加えて検証しようとしているユーザの助けになることを目的としています。おき言語でのトランザクション制御対応ます。
$ cat >> 11.0.env <<EOF
LLVM7LIB=/opt/rh/llvm-toolset-7/root/usr/lib64
export LD_LIBRARY_PATH=$LLVM7LIB:$LD_LIBRARY_PATH
EOF$ LLVM7LIB=/opt/rh/llvm-toolset-7/root/usr/lib64$ export LD_LIBRARY_PATH=$LLVM7LIB:$LD_LIBRARY_PATH
4.1 節「JIT コンパイル機能の追加」に限り本手順でビルドしたに限の設定を与えます。り本手順が必要です。でビルドした PostgreSQL を使うためのビルド使うためのビルド用して検証を行って、本文書を作成していますして検証しようとしているユーザの助けになることを目的としています。い合わせ実行時のパーティション除外処理ます。

4
Copyright © 2018 SRA OSS, Inc. Japan All rights reserved.

PostgreSQL 11 検証レポートレポート

4. 主要な追加機能追加機能
主要な追加機能追加機能、実際に動作させた検証結果を報告するもので性能向の結合・集約上げます。につい合わせ実行時のパーティション除外処理て検証しようとしているユーザの助けになることを目的としています。動作確認を使うためのビルドして検証しようとしているユーザの助けになることを目的としています。い合わせ実行時のパーティション除外処理き言語でのトランザクション制御対応ます。また、実際に動作させた検証結果を報告するもので合わせ実行時のパーティション除外処理わせ実行時のパーティション除外処理て検証しようとしているユーザの助けになることを目的としています。機能の簡単な説明もします。な追加機能説明し、実際に動作させた検証結果を報告するものでもします。
各追加機能の詳細かな機能追加や変更が多数あります。全ての変更点の一覧についてはな追加機能説明し、実際に動作させた検証結果を報告するものではベータ移動版を含む）に同梱されるマニュアルに記載されています。本インストール手順をされるインデックス作成マニュアルに記載されています。されて検証しようとしているユーザの助けになることを目的としています。い合わせ実行時のパーティション除外処理ます。本インストール手順が必要です。を使うためのビルド行った場合わせ実行時のパーティション除外処理、実際に動作させた検証結果を報告するもので以下の通りです。本ドキュメントではこれらの項目を取り上げます。の場所（以下インストール先の の share/doc/html）に記載されています。に HTML のマニュアルが多数あります。全ての変更点の一覧については生成されます。
/usr/local/pgsql/11.0/share/doc/html/
また、実際に動作させた検証結果を報告するもので以下の通りです。本ドキュメントではこれらの項目を取り上げます。 URL にて検証しようとしているユーザの助けになることを目的としています。 PostgreSQL 11 のマニュアルが多数あります。全ての変更点の一覧については公開されています。いずれも英語となります。されて検証しようとしているユーザの助けになることを目的としています。い合わせ実行時のパーティション除外処理ます。い合わせ実行時のパーティション除外処理ずれも英語でのトランザクション制御対応とな追加機能ります。
http://www.postgresql.org/docs/11/static/

4.1. JIT コンパイル機能の追加の追加追加
JIT が多数あります。全ての変更点の一覧については組み入れられたみ書き可能なディレクトリとして用意したうえで、入れられた PostgreSQL では、実際に動作させた検証結果を報告するものでSQL 実行プランで JIT を使うためのビルド使うためのビルドうとい合わせ実行時のパーティション除外処理う選択肢が生じます。が多数あります。全ての変更点の一覧については生じます。JIT を使うためのビルド使うためのビルド
う場合わせ実行時のパーティション除外処理には、実際に動作させた検証結果を報告するものでSQL 実行時のパーティション除外処理の行データ移動の取り上げます。り出して、適用します。し処理や変更が多数あります。全ての変更点の一覧については SELECT リストの式、実際に動作させた検証結果を報告するもので条件句の式の計算が最初にコンの式の計算が最初にコンが多数あります。全ての変更点の一覧については最初にコンにコンパイルされて検証しようとしているユーザの助けになることを目的としています。から実行されます。最初にコンにコンパイルするインデックス作成処理が多数あります。全ての変更点の一覧については増えますが１回あたりの実行は速くなりますえますが多数あります。全ての変更点の一覧については１回あたりの実行は速くなります回あたりの実行は速くなりますあたりの実行は速くなりますくな追加機能ります
ので、実際に動作させた検証結果を報告するもので件数の拡張が多数あります。全ての変更点の一覧については多い合わせ実行時のパーティション除外処理処理での性能向の結合・集約上げます。が多数あります。全ての変更点の一覧については期待できます。でき言語でのトランザクション制御対応ます。
以下の通りです。本ドキュメントではこれらの項目を取り上げます。で JIT が多数あります。全ての変更点の一覧については使うためのビルドわれるインデックス作成動作を使うためのビルド見てみます。て検証しようとしているユーザの助けになることを目的としています。み書き可能なディレクトリとして用意したうえで、ます。JIT 用して検証を行って、本文書を作成していますにい合わせ実行時のパーティション除外処理くつか設定変数の拡張が多数あります。全ての変更点の一覧については追加されて検証しようとしているユーザの助けになることを目的としています。い合わせ実行時のパーティション除外処理て検証しようとしているユーザの助けになることを目的としています。、実際に動作させた検証結果を報告するものでJIT を使うためのビルド使うためのビルドうか、実際に動作させた検証結果を報告するものでJITを使うためのビルド使うためのビルドう場合わせ実行時のパーティション除外処理のコスト値の閾値を設定できます。件数が多くて十分にコストが大きくなる場合に使用する価値の閾値の閾値を設定できます。件数が多くて十分にコストが大きくなる場合に使用する価値を使うためのビルド設定でき言語でのトランザクション制御対応ます。件数の拡張が多数あります。全ての変更点の一覧については多くて検証しようとしているユーザの助けになることを目的としています。十分ほにコストが多数あります。全ての変更点の一覧については大き言語でのトランザクション制御対応くな追加機能るインデックス作成場合わせ実行時のパーティション除外処理に使うためのビルド用して検証を行って、本文書を作成していますするインデックス作成価値の閾値を設定できます。件数が多くて十分にコストが大きくなる場合に使用する価値が多数あります。全ての変更点の一覧については生じますので、実際に動作させた検証結果を報告するもので指定コストを使うためのビルド下の通りです。本ドキュメントではこれらの項目を取り上げます。回あたりの実行は速くなりまするインデックス作成ような追加機能ら利用して検証を行って、本文書を作成していますされな追加機能い合わせ実行時のパーティション除外処理とい合わせ実行時のパーティション除外処理うことです。
（確認用に小コストでもに小コストでも小コストでもコストでも JIT が動作するように設定する）動作するように設定する）するように小コストでも設定する）する）
db1=# SET jit TO on;-- デフォルトも on

db1=# SET jit_above_cost TO 10;-- デフォルト 100000、JIT コンパイル適用に小コストでもdb1=# SET jit_optimize_above_cost TO 10; -- デフォルト 500000、最適化も行うも行うう
db1=# SET jit_inline_above_cost TO 10;-- デフォルト 500000、インライン化も行うも行うう（適当なテーブルを作る）なテーブルを作る）テーブルを作る）作するように設定する）る）
db1=# CREATE TABLE t1 (id int PRIMARY KEY, v text);
db1=# INSERT INTO t1
SELECT g, md5(g::text) FROM generate_series(1, 1000) as g;（適当なテーブルを作る）なテーブルを作る）問い合わせをい合わせを合わせをわせを作る） JIT が動作するように設定する）有効になるように設定して実行する）に小コストでもなテーブルを作る）るように小コストでも設定する）して実行する）実行うする）
db1=# explain analyze SELECT id, translate(v,'abcdef','')::numeric
FROM t1 WHERE id % 2 = 1;

5
Copyright © 2018 SRA OSS, Inc. Japan All rights reserved.

PostgreSQL 11 検証レポートレポート

QUERY PLAN---------------------------------------------------------------------------Seq Scan on t1(cost=0.00..24.04 rows=5 width=36)(actual time=85.110..87.215 rows=500 loops=1)

Filter: ((id % 2) = 1)
Rows Removed by Filter: 500
Planning Time: 0.187 ms
JIT:
Functions: 4《JIT 処理された箇所の数》された箇所の数》箇所の数》の数》数》》

Generation Time: 2.939 ms《JIT コンパイル所の数》要時間》》

Inlining: true

《JIT での数》インライン化も行うも行うった箇所の数》か？》》Inlining Time: 6.707 ms《JIT での数》インライン化も行うの数》所の数》要時間》》

Optimization: true

《JIT での数》最適化も行うも行うった箇所の数》か？》》

Optimization Time: 54.819 ms《JIT での数》最適化も行うの数》所の数》要時間》》

Emission Time: 23.230 ms《JIT コード出力の所要時間》出力の所要時間》の数》所の数》要時間》》

Execution Time: 90.337 ms(13 rows)上げます。記は小さい合わせ実行時のパーティション除外処理テーブルへの問い合わせ実行時のパーティション除外処理い合わせ実行時のパーティション除外処理合わせ実行時のパーティション除外処理わせ実行時のパーティション除外処理ですので JIT 実行したほうが多数あります。全ての変更点の一覧については遅くなるケースです。今度はくな追加機能るインデックス作成ケースです。今度はは JIT が多数あります。全ての変更点の一覧については効果を報告するもので的データ移動に働く例を見てみましょう。く例ではを使うためのビルド見てみます。て検証しようとしているユーザの助けになることを目的としています。み書き可能なディレクトリとして用意したうえで、ましょう。CPU 高負荷であって件数が多いケースを作ってみます。であって検証しようとしているユーザの助けになることを目的としています。件数の拡張が多数あります。全ての変更点の一覧については多い合わせ実行時のパーティション除外処理ケースを使うためのビルド作って検証しようとしているユーザの助けになることを目的としています。み書き可能なディレクトリとして用意したうえで、ます。
１回あたりの実行は速くなります億件を使うためのビルド処理させ実行時のパーティション除外処理るインデックス作成ことにします。1 億件のテーブルを使うためのビルド作るインデックス作成とストレージ I/O 時のパーティション除外処理間の透過的データ移動の寄与えます。が多数あります。全ての変更点の一覧については大き言語でのトランザクション制御対応くな追加機能って検証しようとしているユーザの助けになることを目的としています。
しまうので、実際に動作させた検証結果を報告するもので1 億件の行を使うためのビルド返す関数を作ります。す関数の拡張を使うためのビルド作ります。ROWS オプションも指定して検証しようとしているユーザの助けになることを目的としています。おけば、実際に動作させた検証結果を報告するものでプランナにも件数の拡張が多数あります。全ての変更点の一覧については伝わります。また、実際に動作させた検証結果を報告するもので出して、適用します。力はたくさんの関数や演算子を組み合わせた式にします。はたくさんの関数の拡張や変更が多数あります。全ての変更点の一覧については演算が最初にコン子を組み合わせた式にします。を使うためのビルド組み入れられたみ書き可能なディレクトリとして用意したうえで、合わせ実行時のパーティション除外処理わせ実行時のパーティション除外処理た式にします。
db1=# CREATE FUNCTION f100000000() RETURNS SETOF bigint ROWS 100000000
LANGUAGE sql AS $$SELECT g FROM generate_series(1::bigint, 100000000::bigint) AS g;$$;
db1=# SET jit TO off;
db1=# explain analyze
SELECT g, 'X is "' || random() * pi() * substr((g *ln(g::float8 + g / 2))::text, 1, 5)::float8 || '"'FROM f100000000() AS g;
QUERY PLAN

6
Copyright © 2018 SRA OSS, Inc. Japan All rights reserved.

PostgreSQL 11 検証レポートレポート---------------------------------------------------------------------------Function Scan on f100000000 g(cost=0.25..5750000.25 rows=100000000 width=40)(actual time=34739.347..333405.234 rows=100000000 loops=1)
Planning Time: 0.121 ms
Execution Time: 341003.279 ms(3 rows)
db1=# SET jit TO on;
db1=# explain analyze
SELECT g, 'X is "' || random() * pi() * substr((g *ln(g::float8 + g / 2))::text, 1, 5)::float8 || '"'FROM f100000000() AS g;
QUERY PLAN---------------------------------------------------------------------------Function Scan on f100000000 g(cost=0.25..5750000.25 rows=100000000 width=40)(actual time=56401.345..334782.504 rows=100000000 loops=1)
Planning Time: 0.049 ms
JIT:
Functions: 2Generation Time: 0.446 ms
Inlining: true
Inlining Time: 9.058 ms
Optimization: true
Optimization Time: 42.945 ms
Emission Time: 32.385 ms
Execution Time: 280045.147 ms(11 rows)
コスト値の閾値を設定できます。件数が多くて十分にコストが大きくなる場合に使用する価値が多数あります。全ての変更点の一覧については 5750000.25 ですのでデフォルト設定でも JIT が多数あります。全ての変更点の一覧については適用して検証を行って、本文書を作成していますされます。JIT 有りの方が所要時間が短りの方が所要時間が短が多数あります。全ての変更点の一覧については所要時のパーティション除外処理間の透過的データ移動が多数あります。全ての変更点の一覧については短
くな追加機能って検証しようとしているユーザの助けになることを目的としています。い合わせ実行時のパーティション除外処理ます。
下の通りです。本ドキュメントではこれらの項目を取り上げます。記グの改善ラフはこの SQL を使うためのビルド JIT 有りの方が所要時間が短り無し（しで各 5 回あたりの実行は速くなりますずつ実行した結果を報告するものでの平均値の閾値を設定できます。件数が多くて十分にコストが大きくなる場合に使用する価値とばらつき言語でのトランザクション制御対応（以下標準偏差）に記載されています。です。
平均 20％程度はの所要時のパーティション除外処理間の透過的データ移動が多数あります。全ての変更点の一覧については短縮されています。されて検証しようとしているユーザの助けになることを目的としています。い合わせ実行時のパーティション除外処理ます。

7
Copyright © 2018 SRA OSS, Inc. Japan All rights reserved.

PostgreSQL 11 検証レポートレポート

Execution Time [ms]45000040000035000030000025000020000015000010000050000
0JIT未適用

JIT適用

図 4.1-1: JITJIT で性能アップするケース性能アップするインデックス作成ケース作成

4.2. パーティショニングの改善の追加改善
PostgreSQL 10 から CREATE TABLE 文に PARTITION オプションが多数あります。全ての変更点の一覧については追加されて検証しようとしているユーザの助けになることを目的としています。、実際に動作させた検証結果を報告するもので明し、実際に動作させた検証結果を報告するもので示や大規模サーバにおける性能の検証は意図して的データ移動な追加機能構文上げます。の指示や大規模サーバにおける性能の検証は意図してでテーブルのパーティショニングの改善を使うためのビルド実現できるようになりました。でき言語でのトランザクション制御対応るインデックス作成ようにな追加機能りました。PostgreSQL 11 では、実際に動作させた検証結果を報告するものでこのパーティショニン
グの改善機能につい合わせ実行時のパーティション除外処理て検証しようとしているユーザの助けになることを目的としています。い合わせ実行時のパーティション除外処理くつか改善が多数あります。全ての変更点の一覧については行われて検証しようとしているユーザの助けになることを目的としています。い合わせ実行時のパーティション除外処理ます。
本機能ではい合わせ実行時のパーティション除外処理くらか紛らわしい用語が登場しますので、改めて整理しておきます。一つのテーブルを複数らわしい合わせ実行時のパーティション除外処理用して検証を行って、本文書を作成しています語でのトランザクション制御対応が多数あります。全ての変更点の一覧については登場しますので、実際に動作させた検証結果を報告するもので改めて検証しようとしているユーザの助けになることを目的としています。整理して検証しようとしているユーザの助けになることを目的としています。おき言語でのトランザクション制御対応ます。一つのテーブルを使うためのビルド複数の拡張の子を組み合わせた式にします。テーブルに分ほ割するのがパーティショニングです。このとき、子テーブルを含む全体を代表するテーブルするインデックス作成のが多数あります。全ての変更点の一覧についてはパーティショニングの改善です。このとき言語でのトランザクション制御対応、実際に動作させた検証結果を報告するもので子を組み合わせた式にします。テーブルを使うためのビルド含まれる主要な新機能を説明し、実際に動作させた検証結果を報告するものでむ全体に対するインデックス作成を使うためのビルド代表するテーブルするインデックス作成テーブルを使うためのビルドパーティションテーブルと呼びます。子テーブルのことをびます。子を組み合わせた式にします。テーブルのことを使うためのビルドパーティションと呼びます。子テーブルのことをびます。

4.2.1. パーティション全体に対するインデックス作成に対するインデックス作成するインデックス作成インデックス作成作成
PostgreSQL 10 までは、実際に動作させた検証結果を報告するものでインデックスは個々な改善のパーティションにしか付与えます。でき言語でのトランザクション制御対応ず、実際に動作させた検証結果を報告するものでパーティションテーブ
ル全体に対するインデックス作成にプライマリキー制約や変更が多数あります。全ての変更点の一覧についてはユニーク制約を使うためのビルド設けるインデックス作成ことが多数あります。全ての変更点の一覧についてはでき言語でのトランザクション制御対応ませ実行時のパーティション除外処理んでした。これらが多数あります。全ての変更点の一覧については PostgreSQL 11 から条件付き言語でのトランザクション制御対応な追加機能が多数あります。全ての変更点の一覧についてはら可能とな追加機能ります。その条件は、実際に動作させた検証結果を報告するものでインデックス対するインデックス作成象にパーティションキーの列（すなわちパーにパーティションキーの列ハッシュ結合（以下すな追加機能わちパーパー
ティション分ほ割するのがパーティショニングです。このとき、子テーブルを含む全体を代表するテーブルの基準とな追加機能るインデックス作成列ハッシュ結合）に記載されています。を使うためのビルド含まれる主要な新機能を説明し、実際に動作させた検証結果を報告するものでむことです。
例ではを使うためのビルド示や大規模サーバにおける性能の検証は意図してします。以下の通りです。本ドキュメントではこれらの項目を取り上げます。のように PRIMARY KEY 指定を使うためのビルドつけて検証しようとしているユーザの助けになることを目的としています。パーティションテーブルを使うためのビルド作るインデックス作成ことが多数あります。全ての変更点の一覧についてはでき言語でのトランザクション制御対応ます（パーティション定する）義）
db1=# CREATE TABLE t_log (id int PRIMARY KEY, ts timestamp,mes text, typ int) PARTITION BY RANGE (id);8
Copyright © 2018 SRA OSS, Inc. Japan All rights reserved.

PostgreSQL 11 検証レポートレポート

CREATE TABLE
db1=# CREATE TABLE t_log_0 PARTITION OF t_log FOR VALUESFROM (0) TO (100000);
CREATE TABLE
db1=# CREATE TABLE t_log_1 PARTITION OF t_log FOR VALUESFROM (100000) TO (200000);
CREATE TABLE
db1=# CREATE TABLE t_log_2 PARTITION OF t_log FOR VALUESFROM (200000) TO (300000);
CREATE TABLE（データ挿入）挿入）
db1=# INSERT INTO t_log SELECT g, '2018-05-24 22:00'::timestamp +(g || 's')::interval, md5(g::text), g % 5
FROM generate_series(0, 250000) AS g;
INSERT 0 250001
また、実際に動作させた検証結果を報告するもので含まれる主要な新機能を説明し、実際に動作させた検証結果を報告するものでみ書き可能なディレクトリとして用意したうえで、さえすれば良いので、以下のように主としてい合わせ実行時のパーティション除外処理ので、実際に動作させた検証結果を報告するもので以下の通りです。本ドキュメントではこれらの項目を取り上げます。のように主として検証しようとしているユーザの助けになることを目的としています。 ts 列ハッシュ結合を使うためのビルド対するインデックス作成象にパーティションキーの列（すなわちパーにして検証しようとしているユーザの助けになることを目的としています。い合わせ実行時のパーティション除外処理るインデックス作成インデックスも追加でき言語でのトランザクション制御対応ます。また、実際に動作させた検証結果を報告するものでBtree インデックス以外のインデックスでも作成でき言語でのトランザクション制御対応ます。
db1=# CREATE INDEX ON t_log (ts, id);
CREATE INDEX
db1=# CREATE INDEX ON t_log USING brin (ts, id);-- brin インデックス

CREATE INDEX
パーティションテーブルに付与えます。したインデックスは、実際に動作させた検証結果を報告するもので実体に対するインデックス作成として検証しようとしているユーザの助けになることを目的としています。は個々な改善のパーティションに対するインデックス作成するインデックス作成インデックスとして検証しようとしているユーザの助けになることを目的としています。実現できるようになりました。されて検証しようとしているユーザの助けになることを目的としています。い合わせ実行時のパーティション除外処理ます。パーティションの一つを使うためのビルド \d d で調べると固有のインデックスを持っているこべるインデックス作成と固有りの方が所要時間が短のインデックスを使うためのビルド持っているこって検証しようとしているユーザの助けになることを目的としています。い合わせ実行時のパーティション除外処理るインデックス作成ことが多数あります。全ての変更点の一覧についてはわかります。
db1=# \d t_log_2
Table "public.t_log_2"
Column |Type| Collation | Nullable | Default--------+-----------------------------+-----------+----------+--------id| integer|| not null |ts| timestamp without time zone |

|

|

mes

| text

|

|

|

typ

| integer

|

|

|

9
Copyright © 2018 SRA OSS, Inc. Japan All rights reserved.

PostgreSQL 11 検証レポートレポート

Partition of: t_log FOR VALUES FROM (200000) TO (300000)
Indexes:"t_log_2_pkey" PRIMARY KEY, btree (id)"t_log_2_ts_id_idx" btree (ts, id)"t_log_2_ts_id_idx1" brin (ts, id)
また、実際に動作させた検証結果を報告するものでプライマリ制約違反のデータを投入すると、エラー内容は以下のようになります。のデータ移動を使うためのビルド投入するインデックス作成と、実際に動作させた検証結果を報告するものでエラー内でのトランザクション制御容は以下のようになります。は以下の通りです。本ドキュメントではこれらの項目を取り上げます。のようにな追加機能ります。
（パーティションテーブルへの数》誤った挿入）った箇所の数》挿入）
db1=# INSERT INTO t_log VALUES (1, CURRENT_TIMESTAMP, 'mes', 1);
ERROR:

duplicate key value violates unique constraint "t_log_0_pkey"

DETAIL:Key (id)=(1) already exists.

（個別パーティションへの誤った挿入）パーティションへの数》誤った挿入）った箇所の数》挿入）
db1=# INSERT INTO t_log_2 VALUES (1, CURRENT_TIMESTAMP, 'mes', 1);
ERROR:

new row for relation "t_log_2" violates partition constraint

DETAIL:

Failing row contains (1, 2018-05-31 13:53:18.746874, mes, 1).

つまり、実際に動作させた検証結果を報告するものでパーティションテーブルに対するインデックス作成するインデックス作成プライマリキー制約や変更が多数あります。全ての変更点の一覧についてはユニーク制約は、実際に動作させた検証結果を報告するもので振り分け規則に基づくり分ほけ規則に基づくに基づく制約と、実際に動作させた検証結果を報告するもので個々な改善パーティション上げます。のインデックスによるインデックス作成制約によって検証しようとしているユーザの助けになることを目的としています。実現できるようになりました。されて検証しようとしているユーザの助けになることを目的としています。い合わせ実行時のパーティション除外処理るインデックス作成ことが多数あります。全ての変更点の一覧についてはわかります。

4.2.2. パーティションテーブルを使うためのビルドに対するインデックス作成するインデックス作成外部キーキー
PostgreSQL 11 からパーティションテーブルに対するインデックス作成して検証しようとしているユーザの助けになることを目的としています。外部キーキーが多数あります。全ての変更点の一覧については定義できるようになります。でき言語でのトランザクション制御対応るインデックス作成ようにな追加機能ります。
以下の通りです。本ドキュメントではこれらの項目を取り上げます。のように、実際に動作させた検証結果を報告するものでt_log テーブルの typ 列ハッシュ結合のマスタ移動とな追加機能るインデックス作成 t_log_typ_master テーブルを使うためのビルド作って検証しようとしているユーザの助けになることを目的としています。、実際に動作させた検証結果を報告するものでパーティショ
ンテーブル t_log に外部キーキー制約を使うためのビルド設けるインデックス作成ことが多数あります。全ての変更点の一覧についてはでき言語でのトランザクション制御対応ました。
db1=# CREATE TABLE t_log_typ_master (typ int primary key, txt text);
db1=# INSERT INTO t_log_typ_master VALUES (0, 'type 0'), (1, 'type 1'),
(2, 'type 2'), (3, 'type 3'), (4, 'type 4');
db1=# ALTER TABLE t_log
ADD FOREIGN KEY (typ) REFERENCES t_log_typ_master (typ);
以下の通りです。本ドキュメントではこれらの項目を取り上げます。のように、実際に動作させた検証結果を報告するものでパーティションテーブル全体に対するインデックス作成に対するインデックス作成して検証しようとしているユーザの助けになることを目的としています。も、実際に動作させた検証結果を報告するもので個々な改善のパーティションに対するインデックス作成して検証しようとしているユーザの助けになることを目的としています。も、実際に動作させた検証結果を報告するもので制約が多数あります。全ての変更点の一覧については機能して検証しようとしているユーザの助けになることを目的としています。い合わせ実行時のパーティション除外処理るインデックス作成ことが多数あります。全ての変更点の一覧については確認でき言語でのトランザクション制御対応ます。
（パーティションテーブルに小コストでも対して制約違反するデータ挿入）して実行する）制約違反するデータ挿入）するデータ挿入）挿入）10
Copyright © 2018 SRA OSS, Inc. Japan All rights reserved.

PostgreSQL 11 検証レポートレポート

db1=# INSERT INTO t_log VALUES (250001, '2018-05-29 00:00', 'message', 9);
ERROR:

insert or update on table "t_log_2" violates foreign key constraint"t_log_typ_fkey"
DETAIL:Key (typ)=(9) is not present in table "t_log_typ_master".

（パーティションテーブルに小コストでも対して制約違反するデータ挿入）して実行する）制約違反するデータ挿入）するデータ挿入）挿入）
db1=# INSERT INTO t_log_2 VALUES (250001, '2018-05-29 00:00', 'message', 9);
ERROR:

insert or update on table "t_log_2" violates foreign key constraint"t_log_typ_fkey"
DETAIL:Key (typ)=(9) is not present in table "t_log_typ_master".

ただし、実際に動作させた検証結果を報告するもので被参照側としてパーティションテーブルを使うことはできません。として検証しようとしているユーザの助けになることを目的としています。パーティションテーブルを使うためのビルド使うためのビルドうことはでき言語でのトランザクション制御対応ませ実行時のパーティション除外処理ん。
以下の通りです。本ドキュメントではこれらの項目を取り上げます。のように t_log と 1 対するインデックス作成１回あたりの実行は速くなります対するインデックス作成応するインデックス作成パーティションテーブルを使うためのビルド作って検証しようとしているユーザの助けになることを目的としています。、実際に動作させた検証結果を報告するもので
db1=# CREATE TABLE t_log_detail (id int primary key, detail text)
PARTITION BY RANGE (id);db1=# CREATE TABLE t_log_detail_0 PARTITION OF t_log_detail
FOR VALUES FROM (0) TO (100000);
db1=# CREATE TABLE t_log_detail_1 PARTITION OF t_log_detail
FOR VALUES FROM (100000) TO (200000);
db1=# CREATE TABLE t_log_detail_2 PARTITION OF t_log_detail
FOR VALUES FROM (200000) TO (300000);
db1=# INSERT INTO t_log_detail SELECT g, md5(g::text)
FROM generate_series(0, 250000) AS g;
そこに外部キーキー制約を使うためのビルド指定しようとするインデックス作成と、実際に動作させた検証結果を報告するものでエラーにな追加機能ります。
db1=# ALTER TABLE t_log_detail ADD FOREIGN KEY (id) REFERENCES t_log (id);ERROR:

cannot reference partitioned table "t_log"

11
Copyright © 2018 SRA OSS, Inc. Japan All rights reserved.

PostgreSQL 11 検証レポートレポート

4.2.3. パーティション間の透過的データ移動の透過的データ移動データ移動移動
パーティションキーとな追加機能るインデックス作成列ハッシュ結合の値の閾値を設定できます。件数が多くて十分にコストが大きくなる場合に使用する価値を使うためのビルド UPDATE したとき言語でのトランザクション制御対応に、実際に動作させた検証結果を報告するもので自動的データ移動に行が多数あります。全ての変更点の一覧については新しい合わせ実行時のパーティション除外処理値の閾値を設定できます。件数が多くて十分にコストが大きくなる場合に使用する価値にふさわしい合わせ実行時のパーティション除外処理別パーティパーティ
ションに移動するインデックス作成ようにな追加機能りました。
この動作を使うためのビルド確認して検証しようとしているユーザの助けになることを目的としています。み書き可能なディレクトリとして用意したうえで、ます。
（テスト対して制約違反するデータ挿入）象の行です。の数》行うです。id = 0 なテーブルを作る）の数》で t_log_0 に小コストでも属しているはずです。）して実行する）い合わせをるはずです。）
db1=# SELECT * FROM t_log WHERE id = 0;
id |

ts

|

mes

| typ

----+---------------------+----------------------------------+----0 | 2018-05-24 22:00:00 | cfcd208495d565ef66e7dff9f98764da |0(1 row)（id を作る）変えます。）えます。）
db1=# UPDATE t_log SET id = 250001 WHERE id = 0;
db1=# SELECT * FROM t_log WHERE id = 250001;
id

|

ts

|

mes

| typ

--------+---------------------+----------------------------------+----250001 | 2018-05-24 22:00:00 | cfcd208495d565ef66e7dff9f98764da |0(1 row)（t_log_0 から t_log_2 に小コストでも移動して実行する）い合わせをることが動作するように設定する）わかります。）
db1=# explain SELECT * FROM t_log WHERE id = 250001;
QUERY PLAN---------------------------------------------------------------------------Append->(cost=0.29..8.31 rows=1 width=49)

Index Scan using t_log_2_pkey on t_log_2(cost=0.29..8.31 rows=1 width=49)
Index Cond: (id = 250001)(3 rows)
上げます。記の UPDATE につい合わせ実行時のパーティション除外処理て検証しようとしているユーザの助けになることを目的としています。 EXPLAIN ANALYZE を使うためのビルド付けて検証しようとしているユーザの助けになることを目的としています。実行するインデックス作成と、実際に動作させた検証結果を報告するもので実行プランにおい合わせ実行時のパーティション除外処理て検証しようとしているユーザの助けになることを目的としています。もパーティションを使うためのビルド変えるインデックス作成動作を使うためのビルドして検証しようとしているユーザの助けになることを目的としています。い合わせ実行時のパーティション除外処理るインデックス作成ことが多数あります。全ての変更点の一覧については確認でき言語でのトランザクション制御対応ます。
db1=# EXPLAIN ANALYZE UPDATE t_log SET id = 250002 WHERE id = 0;12
Copyright © 2018 SRA OSS, Inc. Japan All rights reserved.

PostgreSQL 11 検証レポートレポート

QUERY PLAN---------------------------------------------------------------------------Update on t_log(cost=0.29..8.31 rows=1 width=55) (actual

time=0.059..0.059 rows=0 loops=1)
Update on t_log_0->

Index Scan using t_log_0_pkey on t_log_0(cost=0.29..8.31 rows=1 width=55)(actual time=0.008..0.009 rows=1 loops=1)
Index Cond: (id = 0)

Planning Time: 0.138 ms
Trigger for constraint t_log_typ_fkey on t_log_2: time=0.026 calls=1
Execution Time: 0.114 ms(7 rows)

4.2.4. ハッシュパーティショニング
PostgreSQL 10 でのテーブルパーティショニングの改善ではパーティショニングの改善戦略として、リスト（として検証しようとしているユーザの助けになることを目的としています。、実際に動作させた検証結果を報告するものでリスト（以下LIST）に記載されています。と範囲（以下RANGE）に記載されています。が多数あります。全ての変更点の一覧については使うためのビルド用して検証を行って、本文書を作成していますでき言語でのトランザクション制御対応ました。PostgreSQL 11 ではこれに加えて検証しようとしているユーザの助けになることを目的としています。ハッシュ（以下HASH）に記載されています。を使うためのビルド使うためのビルド用して検証を行って、本文書を作成していますでき言語でのトランザクション制御対応るインデックス作成ようにな追加機能ります。これを使うためのビルド使うためのビルドう方が所要時間が短式を使うためのビルドハッシュパーティショニングの改善と呼びます。子テーブルのことをびます。ハッシュパーティショニングの改善では、実際に動作させた検証結果を報告するものでパーティションキー列ハッシュ結合の値の閾値を設定できます。件数が多くて十分にコストが大きくなる場合に使用する価値に対するインデックス作成して検証しようとしているユーザの助けになることを目的としています。正整数の拡張のハッシュ値の閾値を設定できます。件数が多くて十分にコストが大きくなる場合に使用する価値を使うためのビルド生成して検証しようとしているユーザの助けになることを目的としています。、実際に動作させた検証結果を報告するものでその値の閾値を設定できます。件数が多くて十分にコストが大きくなる場合に使用する価値を使うためのビルド割するのがパーティショニングです。このとき、子テーブルを含む全体を代表するテーブルった余りがいくつになるかりが多数あります。全ての変更点の一覧についてはい合わせ実行時のパーティション除外処理くつにな追加機能るインデックス作成かに基づい合わせ実行時のパーティション除外処理て検証しようとしているユーザの助けになることを目的としています。振り分け規則に基づくり分ほけを使うためのビルド行い合わせ実行時のパーティション除外処理ます。
以下の通りです。本ドキュメントではこれらの項目を取り上げます。に、実際に動作させた検証結果を報告するもので実際に動作させた検証結果を報告するものでにハッシュパーティショニングの改善を使うためのビルド使うためのビルドったパーティションテーブルを使うためのビルド作って検証しようとしているユーザの助けになることを目的としています。み書き可能なディレクトリとして用意したうえで、ます。

（パーティションテーブルを作る）作するように設定する）成する）する）
db1=# CREATE TABLE t_message (mid bigint, mes text, ts timestamp, flag int)
PARTITION BY HASH (mes); -- メッセージ文字列文字列(mes)mes)を作る）キーに小コストでもする
db1=# CREATE TABLE t_message_3_0 PARTITION OF t_message
FOR VALUES WITH (MODULUS 3, REMAINDER 0 ); -- 3 で割って余りって実行する）余りり 0
db1=# CREATE TABLE t_message_3_1 PARTITION OF t_message
FOR VALUES WITH (MODULUS 3, REMAINDER 1 ); -- 3 で割って余りって実行する）余りり 1
db1=# CREATE TABLE t_message_3_2 PARTITION OF t_message
FOR VALUES WITH (MODULUS 3, REMAINDER 2 ); -- 3 で割って余りって実行する）余りり 2（値を投入するとほぼ均等に振り分けられる）を作る）投入するとほぼ均等に振り分けられる）均等に振り分けられる）に小コストでも振り分けられる）り分けられる）けられる）

13
Copyright © 2018 SRA OSS, Inc. Japan All rights reserved.

PostgreSQL 11 検証レポートレポート

db1=# INSERT INTO t_message
SELECT g, md5(g::text),'2018-05-24 22:00'::timestamp + (g || 's')::interval, g % 5
FROM generate_series(1, 150000) AS g;
INSERT 0 150000
db1=# SELECT count(*) FROM t_message_3_0;
count------49865(1 row)
db1=# SELECT count(*) FROM t_message_3_1;
count------50243(1 row)
db1=# SELECT count(*) FROM t_message_3_2;
count------49892(1 row)
PostgreSQL 11 のハッシュパーティショニングの改善ではパーティションの数の拡張を使うためのビルド後から増やす手段が用意されてから増えますが１回あたりの実行は速くなりますや変更が多数あります。全ての変更点の一覧についてはす手段が用意されてが多数あります。全ての変更点の一覧については用して検証を行って、本文書を作成しています意されています。されて検証しようとしているユーザの助けになることを目的としています。
い合わせ実行時のパーティション除外処理ます。
ポイントは全て検証しようとしているユーザの助けになることを目的としています。のパーティションでハッシュ値の閾値を設定できます。件数が多くて十分にコストが大きくなる場合に使用する価値を使うためのビルド割するのがパーティショニングです。このとき、子テーブルを含む全体を代表するテーブルるインデックス作成数の拡張（以下本例ではでは 3）に記載されています。が多数あります。全ての変更点の一覧については同じでな追加機能くて検証しようとしているユーザの助けになることを目的としています。も良いので、以下のように主としてい合わせ実行時のパーティション除外処理、実際に動作させた検証結果を報告するものでとい合わせ実行時のパーティション除外処理うことです。3 で割するのがパーティショニングです。このとき、子テーブルを含む全体を代表するテーブルって検証しようとしているユーザの助けになることを目的としています。余りがいくつになるかり 0 とな追加機能るインデックス作成数の拡張（以下0、実際に動作させた検証結果を報告するもので3、実際に動作させた検証結果を報告するもので6、実際に動作させた検証結果を報告するもので9、実際に動作させた検証結果を報告するもので12、実際に動作させた検証結果を報告するもので15、実際に動作させた検証結果を報告するもので…）に記載されています。は、実際に動作させた検証結果を報告するもので6 で割するのがパーティショニングです。このとき、子テーブルを含む全体を代表するテーブルって検証しようとしているユーザの助けになることを目的としています。余りがいくつになるかり 0 とな追加機能るインデックス作成数の拡張（以下0、実際に動作させた検証結果を報告するもので6、実際に動作させた検証結果を報告するもので12、実際に動作させた検証結果を報告するもので…）に記載されています。と 、実際に動作させた検証結果を報告するもので6 で割するのがパーティショニングです。このとき、子テーブルを含む全体を代表するテーブルって検証しようとしているユーザの助けになることを目的としています。余りがいくつになるかり 3 とな追加機能るインデックス作成数の拡張（以下3、実際に動作させた検証結果を報告するもので9、実際に動作させた検証結果を報告するもので15、実際に動作させた検証結果を報告するもので…）に記載されています。に分ほ割するのがパーティショニングです。このとき、子テーブルを含む全体を代表するテーブルするインデックス作成ことが多数あります。全ての変更点の一覧についてはでき言語でのトランザクション制御対応ます。
そこで「(MODULUS 3, REMAINDER 0)MODULUS 3, REMAINDER 0)」に限り本手順でビルドしたと定義できるようになります。したパーティションを使うためのビルド取り上げます。り外して検証しようとしているユーザの助けになることを目的としています。、実際に動作させた検証結果を報告するもので代わりに「MODULUS
6, REMAINDER 0」に限り本手順でビルドしたのパーティション、実際に動作させた検証結果を報告するもので「MODULUS 6, REMAINDER 3」に限り本手順でビルドしたのパーティションを使うためのビルド定義できるようになります。するインデックス作成ことで、実際に動作させた検証結果を報告するものでパーティションを使うためのビルド増えますが１回あたりの実行は速くなりますや変更が多数あります。全ての変更点の一覧についてはすことが多数あります。全ての変更点の一覧についてはでき言語でのトランザクション制御対応ます。その後から増やす手段が用意されてに、実際に動作させた検証結果を報告するもので取り上げます。り外したパーティションのデータ移動を使うためのビルド再投入して検証しようとしているユーザの助けになることを目的としています。、実際に動作させた検証結果を報告するものでデー
タ移動を使うためのビルド合わせ実行時のパーティション除外処理流させれば完了です。させ実行時のパーティション除外処理れば完了です。です。SQL コマンドとして検証しようとしているユーザの助けになることを目的としています。は以下の通りです。本ドキュメントではこれらの項目を取り上げます。のようにな追加機能ります。
（１つの数》パーティションを作る）２つの数》パーティションで置き換え）き換え）換え）え）
db1=# BEGIN;
db1=# ALTER TABLE t_message DETACH PARTITION t_message_3_0;

14
Copyright © 2018 SRA OSS, Inc. Japan All rights reserved.

PostgreSQL 11 検証レポートレポート

db1=# CREATE TABLE t_message_6_0 PARTITION OF t_message FOR VALUES WITH
(MODULUS 6, REMAINDER 0);
db1=# CREATE TABLE t_message_6_3 PARTITION OF t_message FOR VALUES WITH
(MODULUS 6, REMAINDER 3);
db1=# COMMIT;（デタ挿入）ッチしたした箇所の数》 3 で割って余りって実行する）余りり 0 の数》パーティションの数》データ挿入）を作る）再投入した箇所の数》後、削除する）する）
db1=# INSERT INTO t_message SELECT * FROM t_message_3_0;
db1=# TRUNCATE t_message_3_0;
この手順が必要です。を使うためのビルド少しずつ実行していけば、パーティションの再編成を長いサービス停止なしに実現できます。しずつ実行して検証しようとしているユーザの助けになることを目的としています。い合わせ実行時のパーティション除外処理けば、実際に動作させた検証結果を報告するものでパーティションの再編成を使うためのビルド長いサービス停止なしに実現できます。い合わせ実行時のパーティション除外処理サービス停止なしに実現できます。な追加機能しに実現できるようになりました。でき言語でのトランザクション制御対応ます。
パーティションを使うためのビルド置き換えるときに１つのトランザクションとしてるのは、データ投入時に振り分け先とき言語でのトランザクション制御対応換えるときに１つのトランザクションとしてるのは、データ投入時に振り分け先とえるインデックス作成とき言語でのトランザクション制御対応に１回あたりの実行は速くなりますつのトランザクションとして検証しようとしているユーザの助けになることを目的としています。るインデックス作成のは、実際に動作させた検証結果を報告するものでデータ移動投入時のパーティション除外処理に振り分け規則に基づくり分ほけ先の とな追加機能るインデックス作成パーティションが多数あります。全ての変更点の一覧については無し（い合わせ実行時のパーティション除外処理状態で、ですとエラーにな追加機能り、実際に動作させた検証結果を報告するものでまた、実際に動作させた検証結果を報告するもので一つのハッシュ値の閾値を設定できます。件数が多くて十分にコストが大きくなる場合に使用する価値に対するインデックス作成して検証しようとしているユーザの助けになることを目的としています。複数の拡張のパーティションが多数あります。全ての変更点の一覧については格納先の 候補となる状態もエラーとなるためです。とな追加機能るインデックス作成状態で、もエラーとな追加機能るインデックス作成ためです。

4.2.5. 問い合わせ実行時のパーティション除外処理い合わせ実行時のパーティション除外処理合わせ実行時のパーティション除外処理わせ実行時のパーティション除外処理実行時のパーティション除外処理のパーティション除外処理
PostgreSQL 10 および、実際に動作させた検証結果を報告するものでそれ以前のテーブル継承を使ったパーティショニングにおいても、検索条件に合のテーブル継承を使ったパーティショニングにおいても、検索条件に合を使うためのビルド使うためのビルドったパーティショニングの改善におい合わせ実行時のパーティション除外処理て検証しようとしているユーザの助けになることを目的としています。も、実際に動作させた検証結果を報告するもので検索条件に合わせ実行時のパーティション除外処理
わな追加機能い合わせ実行時のパーティション除外処理パーティション（以下あるインデックス作成い合わせ実行時のパーティション除外処理は子を組み合わせた式にします。テーブル）に記載されています。に対するインデックス作成するインデックス作成スキャ内でのトランザクション制御ンを使うためのビルド省略として、リスト（するインデックス作成機能が多数あります。全ての変更点の一覧についてはありました。これは制約によるインデックス作成除外（以下constraint exclusion）に記載されています。と呼びます。子テーブルのことをばれ、実際に動作させた検証結果を報告するもので設定 constraint_exclusion によって検証しようとしているユーザの助けになることを目的としています。有りの方が所要時間が短効・無し（効が多数あります。全ての変更点の一覧については制御されます。
この機能は SQL の実行プランを使うためのビルド作成するインデックス作成とき言語でのトランザクション制御対応に発動して検証しようとしているユーザの助けになることを目的としています。い合わせ実行時のパーティション除外処理ました。
これに対するインデックス作成して検証しようとしているユーザの助けになることを目的としています。、実際に動作させた検証結果を報告するものでPostgreSQL 11 では プラン作成時のパーティション除外処理だけではな追加機能く SQL を使うためのビルド実行するインデックス作成段が用意されて階で不要なパーティシで不要な追加機能パーティションの除外が多数あります。全ての変更点の一覧についてはでき言語でのトランザクション制御対応ます。この動作を使うためのビルド partition pruning と呼びます。子テーブルのことをび、実際に動作させた検証結果を報告するもので設定 enable_partition_pruning で有りの方が所要時間が短効・無し（効を使うためのビルド制
御でき言語でのトランザクション制御対応ます（以下デフォルトは on ）に記載されています。。
実行時のパーティション除外処理に行うことで、実際に動作させた検証結果を報告するものでパラメータ移動によって検証しようとしているユーザの助けになることを目的としています。条件が多数あります。全ての変更点の一覧については変わるインデックス作成プリペアドステートメントにおい合わせ実行時のパーティション除外処理て検証しようとしているユーザの助けになることを目的としています。も確実に不要
パーティション除外を使うためのビルドするインデックス作成ことが多数あります。全ての変更点の一覧についてはでき言語でのトランザクション制御対応ます。PostgreSQL 9.2 以降であればプリペアドステートメントの実行であればプリペアドステートメントの実行に際に動作させた検証結果を報告するものでして検証しようとしているユーザの助けになることを目的としています。多くの場合わせ実行時のパーティション除外処理にパラメータ移動も含まれる主要な新機能を説明し、実際に動作させた検証結果を報告するものでめたプラン作成が多数あります。全ての変更点の一覧については行われますが多数あります。全ての変更点の一覧については、実際に動作させた検証結果を報告するものでパラメータ移動を使うためのビルド考慮しないプランが実しな追加機能い合わせ実行時のパーティション除外処理プランが多数あります。全ての変更点の一覧については実行されるインデックス作成動作もありえました。
また、実際に動作させた検証結果を報告するものでパーティション除外では「制約によるインデックス作成除外」に限り本手順でビルドしたでは対するインデックス作成応でき言語でのトランザクション制御対応な追加機能かった形状の SQL におい合わせ実行時のパーティション除外処理て検証しようとしているユーザの助けになることを目的としています。、実際に動作させた検証結果を報告するものでプラン作成
時のパーティション除外処理にスキャ内でのトランザクション制御ン不要パーティションの除外が多数あります。全ての変更点の一覧については可能です。以下の通りです。本ドキュメントではこれらの項目を取り上げます。に例ではを使うためのビルド示や大規模サーバにおける性能の検証は意図してします。
db1=# SET constraint_exclusion TO on;
db1=# SET enable_partition_pruning TO on;
db1=# explain SELECT count(*) FROM t_log WHERE id < 100000;

15
Copyright © 2018 SRA OSS, Inc. Japan All rights reserved.

PostgreSQL 11 検証レポートレポート

QUERY PLAN--------------------------------------------------------------------------Aggregate->(cost=2258.00..2258.01 rows=1 width=8)

Append->(cost=0.00..2008.00 rows=100000 width=0)

Seq Scan on t_log_0(cost=0.00..1508.00 rows=100000 width=0)

Filter: (id < 100000)(4 rows)
db1=# SET enable_partition_pruning TO off;
db1=# explain SELECT count(*) FROM t_log WHERE id < 100000;
QUERY PLAN---------------------------------------------------------------------------Aggregate->(cost=2266.63..2266.64 rows=1 width=8)

Append->(cost=0.00..2016.63 rows=100002 width=0)

Seq Scan on t_log_0(cost=0.00..1508.00 rows=100000 width=0)

Filter: (id < 100000)->

Index Only Scan using t_log_1_pkey on t_log_1(cost=0.29..4.31 rows=1 width=0)
Index Cond: (id < 100000)->

Index Only Scan using t_log_2_pkey on t_log_2(cost=0.29..4.31 rows=1 width=0)
Index Cond: (id < 100000)(8 rows)
この結果を報告するものでから、実際に動作させた検証結果を報告するものでWHERE 句の式の計算が最初にコンで除外が多数あります。全ての変更点の一覧については可能な追加機能集約の問い合わせ実行時のパーティション除外処理い合わせ実行時のパーティション除外処理合わせ実行時のパーティション除外処理わせ実行時のパーティション除外処理が多数あります。全ての変更点の一覧については、実際に動作させた検証結果を報告するものでconstraint_exclusion = on だけではパーティション除外が多数あります。全ての変更点の一覧についてはでき言語でのトランザクション制御対応ず、実際に動作させた検証結果を報告するもので enable_partition_pruning = on でパーティション除外が多数あります。全ての変更点の一覧については可能にな追加機能って検証しようとしているユーザの助けになることを目的としています。い合わせ実行時のパーティション除外処理るインデックス作成ことが多数あります。全ての変更点の一覧については確認でき言語でのトランザクション制御対応ます。

16
Copyright © 2018 SRA OSS, Inc. Japan All rights reserved.

PostgreSQL 11 検証レポートレポート

4.2.6. パーティション指向の結合・集約の結合わせ実行時のパーティション除外処理・集約◆  パーティション指向の結合指向の結合の結合結合
以下の通りです。本ドキュメントではこれらの項目を取り上げます。のような追加機能構造の二つ組のテーブルがあって、それぞれ主キー列の二つ組のテーブルがあって、それぞれ主キー列つ組み入れられたのテーブルが多数あります。全ての変更点の一覧についてはあって検証しようとしているユーザの助けになることを目的としています。、実際に動作させた検証結果を報告するものでそれぞれ主キー列ハッシュ結合 id を使うためのビルド使うためのビルドって検証しようとしているユーザの助けになることを目的としています。同じ条件でパーティショニ
ングの改善を使うためのビルドして検証しようとしているユーザの助けになることを目的としています。い合わせ実行時のパーティション除外処理るインデックス作成とします。これらテーブルを使うためのビルド結合わせ実行時のパーティション除外処理するインデックス作成とき言語でのトランザクション制御対応に期待できます。したい合わせ実行時のパーティション除外処理動作は t_log と t_log_detail のパーティション同士で各々結合することです（ここではこれを「パーティション指向の結合」と呼びます）。そうすで各々な改善結合わせ実行時のパーティション除外処理するインデックス作成ことです（以下ここではこれを使うためのビルド「パーティション指向の結合・集約の結合わせ実行時のパーティション除外処理」に限り本手順でビルドしたと呼びます。子テーブルのことをびます）に記載されています。。そうす
れば並列ハッシュ結合動作の効果を報告するものでも出して、適用します。や変更が多数あります。全ての変更点の一覧についてはすい合わせ実行時のパーティション除外処理ですし、実際に動作させた検証結果を報告するものでスキャ内でのトランザクション制御ンを使うためのビルド一部キーのパーティションに限の設定を与えます。定させ実行時のパーティション除外処理や変更が多数あります。全ての変更点の一覧についてはすくな追加機能ります。
t_log -ログの改善テーブル
id
主キー

ts
タ移動イムスタ移動ンプ

mes
メッセージ

typ
ログの改善タ移動イプ

t_log_detail -ログの改善詳細かな機能追加や変更が多数あります。全ての変更点の一覧についてはテーブル
id
主キー

detail
詳細かな機能追加や変更が多数あります。全ての変更点の一覧についてはメッセージ

severity
深刻度はcomment
コメント

PostgreSQL 11 からこのような追加機能動作が多数あります。全ての変更点の一覧については サ ポートされました。実際に動作させた検証結果を報告するものでに動作を使うためのビルド確認して検証しようとしているユーザの助けになることを目的としています。 み書き可能なディレクトリとして用意したうえで、 ま す。ここでのt_log_detail は上げます。図してよりシンプルな追加機能定義できるようになります。にして検証しようとしているユーザの助けになることを目的としています。あります。
（簡易な定義でなテーブルを作る）定する）義で t_log_detail テーブル作するように設定する）成する） - 4.2.2節で作ったものと同じです）で作するように設定する）った箇所の数》もの数》と同じです）じです）
db1=# CREATE TABLE t_log_detail (id int primary key, detail text)
PARTITION BY RANGE (id);db1=# CREATE TABLE t_log_detail_0 PARTITION OF t_log_detail
FOR VALUES FROM (0) TO (100000);
db1=# CREATE TABLE t_log_detail_1 PARTITION OF t_log_detail
FOR VALUES FROM (100000) TO (200000);
db1=# CREATE TABLE t_log_detail_2 PARTITION OF t_log_detail
FOR VALUES FROM (200000) TO (300000);
db1=# INSERT INTO t_log_detail
SELECT g, md5(g::text) FROM generate_series(0, 250000) AS g;
パーティション指向の結合・集約の結合わせ実行時のパーティション除外処理を使うためのビルドさせ実行時のパーティション除外処理るインデックス作成には設定パラメータ移動 enable_partitionwise_join を使うためのビルド on にします。デフォルトは off です。また、実際に動作させた検証結果を報告するものでパラレル動作と組み入れられたみ書き可能なディレクトリとして用意したうえで、合わせ実行時のパーティション除外処理わせ実行時のパーティション除外処理て検証しようとしているユーザの助けになることを目的としています。効果を報告するものでが多数あります。全ての変更点の一覧についてはでるインデックス作成機能ですが多数あります。全ての変更点の一覧については、実際に動作させた検証結果を報告するもので実行プランにあらわれるインデックス作成効果を報告するものでを使うためのビルド明し、実際に動作させた検証結果を報告するもので確にするインデックス作成ため、実際に動作させた検証結果を報告するものでパラレル動作を使うためのビルド抑止なしに実現できます。するインデックス作成設定を使うためのビルド与えます。えて検証しようとしているユーザの助けになることを目的としています。おき言語でのトランザクション制御対応ます。
17
Copyright © 2018 SRA OSS, Inc. Japan All rights reserved.

PostgreSQL 11 検証レポートレポート

db1=# SET parallel_setup_cost TO 999999999; -- パラレル無しでプランを見るためしでプランを作る）見るためるた箇所の数》め
db1=# SET enable_partitionwise_join TO on;-- パーティション指向結合わせをを作る）有効になるように設定して実行する）に小コストでもdb1=# explain SELECT lo.mes, ld.detail FROM t_log lo
LEFT JOIN t_log_detail ld ON (lo.id = ld.id);
QUERY PLAN---------------------------------------------------------------------------Append->(cost=0.58..22710.76 rows=250001 width=66)

Merge Left Join(cost=0.58..8579.55 rows=100000 width=66)

Merge Cond: (lo.id = ld.id)->

Index Scan using t_log_0_pkey on t_log_0 lo(cost=0.29..3638.29

rows=100000 width=37)->

Index Scan using t_log_detail_0_pkey on t_log_detail_0 ld(cost=0.29..3441.29 rows=100000 width=37)->

Merge Left Join(cost=0.58..8579.58 rows=100000 width=66)

Merge Cond: (lo_1.id = ld_1.id)->

Index Scan using t_log_1_pkey on t_log_1 lo_1

(cost=0.29..3638.29 rows=100000 width=37)->

Index Scan using t_log_detail_1_pkey on t_log_detail_1 ld_1

(cost=0.29..3441.29 rows=100000 width=37)->

Merge Left Join(cost=0.62..4301.63 rows=50001 width=66)

Merge Cond: (lo_2.id = ld_2.id)->

Index Scan using t_log_2_pkey on t_log_2 lo_2

(cost=0.29..1825.31 rows=50001 width=37)->

Index Scan using t_log_detail_2_pkey on t_log_detail_2 ld_2

(cost=0.29..1726.31 rows=50001 width=37)(13 rows)上げます。記のように t_log_0 と t_log_detail_0 、実際に動作させた検証結果を報告するものでt_log_1 と t_log_detail_1 な追加機能ど要しました。、実際に動作させた検証結果を報告するものでパーティション同士で各々結合することです（ここではこれを「パーティション指向の結合」と呼びます）。そうすが多数あります。全ての変更点の一覧についてはまず結合わせ実行時のパーティション除外処理
するインデックス作成プランが多数あります。全ての変更点の一覧については生成されました。

◆  パーティション指向の結合指向の結合の結合集約
集約処理を使うためのビルドするインデックス作成とき言語でのトランザクション制御対応にパーティション毎に集約処理を各々先に行って、最後にその結果を統合するというに集約処理を使うためのビルド各々な改善先の に行って検証しようとしているユーザの助けになることを目的としています。、実際に動作させた検証結果を報告するもので最後から増やす手段が用意されてにその結果を報告するものでを使うためのビルド統合わせ実行時のパーティション除外処理するインデックス作成とい合わせ実行時のパーティション除外処理う
実行プランが多数あります。全ての変更点の一覧については可能にな追加機能りました。
この動作を使うためのビルドさせ実行時のパーティション除外処理るインデックス作成には設定パラメータ移動 enable_partitionwise_aggregate を使うためのビルド on にします。デフォルトは off
18
Copyright © 2018 SRA OSS, Inc. Japan All rights reserved.

PostgreSQL 11 検証レポートレポートです。プランの違い合わせ実行時のパーティション除外処理を使うためのビルド確認して検証しようとしているユーザの助けになることを目的としています。み書き可能なディレクトリとして用意したうえで、ます。今回あたりの実行は速くなりますもプランを使うためのビルド見てみます。や変更が多数あります。全ての変更点の一覧についてはすくするインデックス作成ためパラレル処理は選択されな追加機能い合わせ実行時のパーティション除外処理ようにして検証しようとしているユーザの助けになることを目的としています。い合わせ実行時のパーティション除外処理ます。
db1=# SET parallel_setup_cost TO 999999999; -- パラレル無しでプランを見るためしでプランを作る）見るためるた箇所の数》め（パーティション指向の数》集約を作る）使わない場合）わなテーブルを作る）い合わせを場合わせを）
db1=# SET enable_partitionwise_aggregate TO off;
db1=# explain SELECT avg(length(mes)) FROM t_log;
QUERY PLAN---------------------------------------------------------------------------Aggregate->(cost=7578.02..7578.03 rows=1 width=32)

Append(cost=0.00..6328.02 rows=250001 width=33)->

Seq Scan on t_log_0(cost=0.00..2031.00 rows=100000 width=33)->

Seq Scan on t_log_1(cost=0.00..2031.00 rows=100000 width=33)->

Seq Scan on t_log_2(cost=0.00..1016.01 rows=50001 width=33)(5 rows)（パーティション指向の数》集約を作る）使わない場合）う場合わせを）
db1=# SET enable_partitionwise_aggregate TO on;
db1=# explain SELECT avg(length(mes)) FROM t_log;
QUERY PLAN---------------------------------------------------------------------------Finalize Aggregate->

Append->(cost=6328.07..6328.08 rows=1 width=32)(cost=2531.00..6328.06 rows=3 width=32)

Partial Aggregate->(cost=2531.00..2531.01 rows=1 width=32)

Seq Scan on t_log_0(cost=0.00..2031.00 rows=100000 width=33)->

Partial Aggregate->(cost=2531.00..2531.01 rows=1 width=32)

Seq Scan on t_log_1(cost=0.00..2031.00 rows=100000 width=33)->

Partial Aggregate->(cost=1266.01..1266.02 rows=1 width=32)

Seq Scan on t_log_2(cost=0.00..1016.01 rows=50001 width=33)(8 rows)
上げます。記２番目のプランでは各パーティションごとに Aggregate して検証しようとしているユーザの助けになることを目的としています。い合わせ実行時のパーティション除外処理るインデックス作成ことが多数あります。全ての変更点の一覧については確認でき言語でのトランザクション制御対応ます。

19
Copyright © 2018 SRA OSS, Inc. Japan All rights reserved.

PostgreSQL 11 検証レポートレポート

4.3. パラレル実行の改善の追加改善
パラレル実行は PostgreSQL 9.6、実際に動作させた検証結果を報告するものでPostgreSQL 10 でもサポートされて検証しようとしているユーザの助けになることを目的としています。い合わせ実行時のパーティション除外処理ますが多数あります。全ての変更点の一覧については、実際に動作させた検証結果を報告するものでPostgreSQL 11 では SQL
実行で並列ハッシュ結合処理でき言語でのトランザクション制御対応るインデックス作成項目が多数あります。全ての変更点の一覧については更が多数あります。全ての変更点の一覧についてはにい合わせ実行時のパーティション除外処理くつか追加されて検証しようとしているユーザの助けになることを目的としています。い合わせ実行時のパーティション除外処理ます。

4.3.1. 並列ハッシュ結合ハッシュ結合わせ実行時のパーティション除外処理
ハッシュ結合わせ実行時のパーティション除外処理が多数あります。全ての変更点の一覧については パラレル実行でき言語でのトランザクション制御対応るインデックス作成ようにな追加機能りました。 4.2.1 節で作った t_log と、実際に動作させた検証結果を報告するもので 4.2.2 節（以下あるインデックス作成い合わせ実行時のパーティション除外処理は4.2.6 節）に記載されています。で作った t_log_detail テーブルを使うためのビルド外部キー結合わせ実行時のパーティション除外処理して検証しようとしているユーザの助けになることを目的としています。集約するインデックス作成問い合わせ実行時のパーティション除外処理い合わせ実行時のパーティション除外処理合わせ実行時のパーティション除外処理わせ実行時のパーティション除外処理を使うためのビルド実行するインデックス作成と、実際に動作させた検証結果を報告するもので「 Parallel Hash
Left Join 」に限り本手順でビルドした「Parallel Hash」に限り本手順でビルドしたが多数あります。全ての変更点の一覧については選択されました。ハッシュ作成もパラレルで実行されるインデックス作成ようにな追加機能ります。
db1=# SET enable_parallel_hash TO on; -- これはデフォルトでも on
db1=# explain SELECT max(length(mes || detail)) FROM t_log lo
LEFT JOIN t_log_detail ld ON (lo.id = ld.id);
QUERY PLAN---------------------------------------------------------------------------Finalize Aggregate->

Gather(cost=15810.11..15810.12 rows=1 width=4)(cost=15809.89..15810.10 rows=2 width=4)

Workers Planned: 2->

Partial Aggregate->(cost=14809.89..14809.90 rows=1 width=4)

Parallel Hash Left Join(cost=6192.53..14028.64 rows=104167 width=66)
Hash Cond: (lo.id = ld.id)->

Parallel Append(cost=0.00..4569.43 rows=104168 width=37)->

Parallel Seq Scan on t_log_0 lo(cost=0.00..1619.24 rows=58824 width=37)->

Parallel Seq Scan on t_log_1 lo_1
(cost=0.00..1619.24 rows=58824 width=37)->

Parallel Seq Scan on t_log_2 lo_2
(cost=0.00..810.12 rows=29412 width=37)->

Parallel Hash(cost=4076.43..4076.43 rows=104168 width=37)->

Parallel Append(cost=0.00..4076.43 rows=104168 width=37)

20
Copyright © 2018 SRA OSS, Inc. Japan All rights reserved.

PostgreSQL 11 検証レポートレポート->

Parallel Seq Scan on t_log_detail_0 ld(cost=0.00..1422.24 rows=58824 width=37)->

Parallel Seq Scan on t_log_detail_1 ld_1
(cost=0.00..1422.24 rows=58824 width=37)->

Parallel Seq Scan on t_log_detail_2 ld_2
(cost=0.00..711.12 rows=29412 width=37)(15 rows)

4.3.2. 並列ハッシュ結合インデックス作成作成
Btree インデックスの作成で並列ハッシュ結合処理が多数あります。全ての変更点の一覧については行われるインデックス作成ようにな追加機能りました。
以下の通りです。本ドキュメントではこれらの項目を取り上げます。のように 4.2.1 節で作った t_log のインデックスを使うためのビルド再作成して検証しようとしているユーザの助けになることを目的としています。み書き可能なディレクトリとして用意したうえで、ますと、実際に動作させた検証結果を報告するものでパラレル動作が多数あります。全ての変更点の一覧については確認でき言語でのトランザクション制御対応ます。
確認のため、実際に動作させた検証結果を報告するものでDEBUG1 レベルのメッセージを使うためのビルド出して、適用します。力はたくさんの関数や演算子を組み合わせた式にします。させ実行時のパーティション除外処理て検証しようとしているユーザの助けになることを目的としています。い合わせ実行時のパーティション除外処理ます。
（本設定する）が動作するように設定する） 2 以上だと並列処理が試みられます。デフォルトは だと並列処理された箇所の数》が動作するように設定する）試みられます。デフォルトは みられます。デフォルトは 2 です。）
db1=# SHOW max_parallel_maintenance_workers;
max_parallel_maintenance_workers---------------------------------2(1 row)
db1=# DROP INDEX t_log_ts_id_idx;-- インデックスを作る）削除する）します

db1=# SET client_min_messages TO DEBUG1;-- 動作するように設定する）確認の数》た箇所の数》め DEBUG1 に小コストでもします（インデックスを作る）再作するように設定する）成する）します。パラレル動作するように設定する）が動作するように設定する）確認でき換え）ます。）
db1=# CREATE INDEX ON t_log (ts, id);
DEBUG:

building index "t_log_0_ts_id_idx" on table "t_log_0" with request

for 1 parallel worker
DEBUG:

building index "t_log_1_ts_id_idx" on table "t_log_1" with request

for 1 parallel worker
DEBUG:

building index "t_log_2_ts_id_idx" on table "t_log_2" serially

CREATE INDEX

21
Copyright © 2018 SRA OSS, Inc. Japan All rights reserved.

PostgreSQL 11 検証レポートレポート

4.3.3. 並列ハッシュ結合 CREATE TABLE AS「CREATE TABLE ... AS .... 」に限り本手順でビルドしたな追加機能ど要しました。、実際に動作させた検証結果を報告するものでSELECT した結果を報告するものでを使うためのビルドテーブルに格納するインデックス作成 SQL 命令がいくつかありますが多数あります。全ての変更点の一覧についてはい合わせ実行時のパーティション除外処理くつかあります。
これらの SQL で並列ハッシュ結合処理が多数あります。全ての変更点の一覧については行われるインデックス作成ようにな追加機能りました。PostgreSQL 10 までは、実際に動作させた検証結果を報告するもので対するインデックス作成応が多数あります。全ての変更点の一覧については見てみます。落とされていましとされて検証しようとしているユーザの助けになることを目的としています。い合わせ実行時のパーティション除外処理ました。
対するインデックス作成応が多数あります。全ての変更点の一覧については追加されたのは以下の通りです。本ドキュメントではこれらの項目を取り上げます。の３構文です。構文です。
•

CREATE TABLE ... AS ...

•SELECT ... INTO ...

•CREATE MATERIALIZED VIEW

以下の通りです。本ドキュメントではこれらの項目を取り上げます。に例ではを使うためのビルド示や大規模サーバにおける性能の検証は意図してします。
db1=# SET force_parallel_mode TO on;-- これらの数》設定する）では

db1=# SET parallel_setup_cost TO 0;-- 確認用に小コストでもに小コストでもプランナにパラレル指向をに小コストでもパラレル指向を作る）

db1=# SET parallel_tuple_cost TO 0;-- 強制する設定する）を作る）付与しています。して実行する）い合わせをます。

db1=# explain CREATE TABLE t_create AS SELECT * FROM t_log;
QUERY PLAN---------------------------------------------------------------------------Gather(cost=1000.00..5569.43 rows=250001 width=49)

Workers Planned: 2->

Parallel Append->(cost=0.00..4569.43 rows=104168 width=49)

Parallel Seq Scan on t_log_0(cost=0.00..1619.24 rows=58824 width=49)->

Parallel Seq Scan on t_log_1(cost=0.00..1619.24 rows=58824 width=49)->

Parallel Seq Scan on t_log_2(cost=0.00..810.12 rows=29412 width=49)(6 rows)
db1=# explain CREATE MATERIALIZED VIEW mv_log AS SELECT * FROM t_log;
QUERY PLAN---------------------------------------------------------------------------Gather(cost=1000.00..5569.43 rows=250001 width=49)

Workers Planned: 2->

Parallel Append(cost=0.00..4569.43 rows=104168 width=49)

22
Copyright © 2018 SRA OSS, Inc. Japan All rights reserved.

PostgreSQL 11 検証レポートレポート->

Parallel Seq Scan on t_log_0(cost=0.00..1619.24 rows=58824 width=49)->

Parallel Seq Scan on t_log_1(cost=0.00..1619.24 rows=58824 width=49)->

Parallel Seq Scan on t_log_2(cost=0.00..810.12 rows=29412 width=49)(6 rows)
な追加機能お、実際に動作させた検証結果を報告するものでREFRESH MATERIALIZED VIEW は依然パラレルになりません。パラレルにな追加機能りませ実行時のパーティション除外処理ん。

4.3.4. 並列ハッシュ結合 Append
Append とは検索結果を報告するもので行を使うためのビルドたて検証しようとしているユーザの助けになることを目的としています。につな追加機能げるインデックス作成プラン要素です。パーティションテーブルやです。パーティションテーブルや変更が多数あります。全ての変更点の一覧については UNION ALL を使うためのビルド用して検証を行って、本文書を作成していますい合わせ実行時のパーティション除外処理
た SELECT 文の実行で出して、適用します。現できるようになりました。します。これの並列ハッシュ結合版を含む） Parallel Append が多数あります。全ての変更点の一覧については追加されました。
db1=# SET force_parallel_mode TO on;-- これらの数》設定する）では

db1=# SET parallel_setup_cost TO 0;-- 確認用に小コストでもに小コストでもプランナにパラレル指向をに小コストでもパラレル指向を作る）

db1=# SET parallel_tuple_cost TO 0;-- 強制する設定する）を作る）付与しています。して実行する）い合わせをます。

db1=# explain SELECT * FROM t_log ;QUERY PLAN---------------------------------------------------------------------------Gather(cost=0.00..4569.43 rows=250001 width=49)

Workers Planned: 2->

Parallel Append->(cost=0.00..4569.43 rows=104168 width=49)

Parallel Seq Scan on t_log_0(cost=0.00..1619.24 rows=58824 width=49)->

Parallel Seq Scan on t_log_1(cost=0.00..1619.24 rows=58824 width=49)->

Parallel Seq Scan on t_log_2(cost=0.00..810.12 rows=29412 width=49)(6 rows)
db1=# explain SELECT * FROM (SELECT * FROM t_log_0 UNION ALL
SELECT * FROM t_log_1 UNION ALL SELECT * FROM t_log_2) AS t_log ;23
Copyright © 2018 SRA OSS, Inc. Japan All rights reserved.

PostgreSQL 11 検証レポートレポート

QUERY PLAN---------------------------------------------------------------------------Gather(cost=0.00..4569.43 rows=250001 width=49)

Workers Planned: 2->

Parallel Append->(cost=0.00..4569.43 rows=104168 width=49)

Parallel Seq Scan on t_log_0(cost=0.00..1619.24 rows=58824 width=49)->

Parallel Seq Scan on t_log_1(cost=0.00..1619.24 rows=58824 width=49)->

Parallel Seq Scan on t_log_2(cost=0.00..810.12 rows=29412 width=49)(6 rows)
PostgreSQL 10 の場合わせ実行時のパーティション除外処理、実際に動作させた検証結果を報告するもので各スキャ内でのトランザクション制御ンが多数あります。全ての変更点の一覧についてはパラレルにな追加機能って検証しようとしているユーザの助けになることを目的としています。も Append 部キー分ほは直列ハッシュ結合実行でした。

4.3.5. parallel_leader_participation
PostgreSQL では通りです。本ドキュメントではこれらの項目を取り上げます。常並列ハッシュ結合処理を使うためのビルドするインデックス作成とき言語でのトランザクション制御対応にメインのプロセスも並列ハッシュ結合処理に参加するインデックス作成動作を使うためのビルドします。 3 パ
ラレルで実行しようとするインデックス作成とき言語でのトランザクション制御対応、実際に動作させた検証結果を報告するものでPostgreSQL はワーカ子プロセスを子を組み合わせた式にします。プロセスを使うためのビルド 2 つ立ち上げます。ちパー上げます。げます。
新たな追加機能 postgresql.conf 設定項目 parallel_leader_participation （以下デフォルト on ）に記載されています。を使うためのビルド off にするインデックス作成と、実際に動作させた検証結果を報告するもので主プロ
セスは並列ハッシュ結合処理に参加せ実行時のパーティション除外処理ず結果を報告するものでを使うためのビルド待できます。つようにな追加機能ります。以下の通りです。本ドキュメントではこれらの項目を取り上げます。はパラメータ移動を使うためのビルド変えた際に動作させた検証結果を報告するものでの実行例ではです。
db1=# SET force_parallel_mode TO on;-- これらの数》設定する）では

db1=# SET parallel_setup_cost TO 0;-- 確認用に小コストでもに小コストでもプランナにパラレル指向をに小コストでもパラレル指向を作る）

db1=# SET parallel_tuple_cost TO 0;-- 強制する設定する）を作る）付与しています。して実行する）い合わせをます。

db1=# SET parallel_leader_participation TO on;
db1=# explain (analyze, verbose) SELECT * FROM t_log;
QUERY PLAN---------------------------------------------------------------------------Gather(cost=0.00..2636.43 rows=250001 width=49) (actual

time=1.354..196.368 rows=250001 loops=1)
Output: t_log_0.id, t_log_0.ts, t_log_0.mes, t_log_0.typ
Workers Planned: 2Workers Launched: 2->

Parallel Append(cost=0.00..2636.43 rows=104168 width=49) (actual

time=0.048..93.421 rows=83334 loops=3)

24
Copyright © 2018 SRA OSS, Inc. Japan All rights reserved.

PostgreSQL 11 検証レポートレポート

Worker 0: actual time=0.050..100.496 rows=81690 loops=1
Worker 1: actual time=0.037..122.092 rows=77465 loops=1->

Parallel Seq Scan on public.t_log_0(cost=0.00..846.24 rows=58824 width=49)(actual time=0.041..16.937 rows=33333 loops=3)
Output: t_log_0.id, t_log_0.ts, t_log_0.mes, t_log_0.typ
Worker 0: actual time=0.047..38.800 rows=81690 loops=1
Worker 1: actual time=0.045..9.331 rows=9752 loops=1->

Parallel Seq Scan on public.t_log_1(cost=0.00..846.24 rows=58824 width=49)(actual time=0.033..32.465 rows=50000 loops=2)
Output: t_log_1.id, t_log_1.ts, t_log_1.mes, t_log_1.typ
Worker 1: actual time=0.035..55.294 rows=67713 loops=1->

Parallel Seq Scan on public.t_log_2(cost=0.00..423.12 rows=29412 width=49)(actual time=0.056..15.637 rows=50001 loops=1)
Output: t_log_2.id, t_log_2.ts, t_log_2.mes, t_log_2.typPlanning Time: 0.433 ms
Execution Time: 236.220 ms(18 rows)-- どの数》 Worker も担当なテーブルを作る）して実行する）い合わせをなテーブルを作る）い合わせをパーティションが動作するように設定する）ある、すなテーブルを作る）わち主プロセスが担当している主プロセスが担当しているプロセスが動作するように設定する）担当なテーブルを作る）して実行する）い合わせをる
db1=# SET parallel_leader_participation TO off;SET
db1=# explain (analyze, verbose) SELECT * FROM t_log;
QUERY PLAN---------------------------------------------------------------------------Gather(cost=0.00..2512.01 rows=250001 width=49) (actual

time=16.532..277.969 rows=250001 loops=1)
Output: t_log_0.id, t_log_0.ts, t_log_0.mes, t_log_0.typ
Workers Planned: 2Workers Launched: 2->

Parallel Append(cost=0.00..2512.01 rows=125000 width=49)(actual time=0.086..84.206 rows=125000 loops=2)
Worker 0: actual time=0.079..66.568 rows=100000 loops=1

25
Copyright © 2018 SRA OSS, Inc. Japan All rights reserved.

PostgreSQL 11 検証レポートレポート

Worker 1: actual time=0.094..101.845 rows=150001 loops=1->

Seq Scan on public.t_log_0(cost=0.00..1258.00 rows=100000 width=49)(actual time=0.076..34.147 rows=100000 loops=1)
Output: t_log_0.id, t_log_0.ts, t_log_0.mes, t_log_0.typ
Worker 0: actual time=0.076..34.147 rows=100000 loops=1->

Seq Scan on public.t_log_1(cost=0.00..1258.00 rows=100000 width=49)(actual time=0.090..34.300 rows=100000 loops=1)
Output: t_log_1.id, t_log_1.ts, t_log_1.mes, t_log_1.typ
Worker 1: actual time=0.090..34.300 rows=100000 loops=1->

Seq Scan on public.t_log_2(cost=0.00..629.01 rows=50001 width=49)(actual time=0.079..18.833 rows=50001 loops=1)
Output: t_log_2.id, t_log_2.ts, t_log_2.mes, t_log_2.typ
Worker 1: actual time=0.079..18.833 rows=50001 loops=1

Planning Time: 0.417 ms
Execution Time: 324.792 ms(18 rows)
parallel_leader_participation が多数あります。全ての変更点の一覧については on か off かの違い合わせ実行時のパーティション除外処理は違い合わせ実行時のパーティション除外処理が多数あります。全ての変更点の一覧については見てみます。えにくい合わせ実行時のパーティション除外処理のですが多数あります。全ての変更点の一覧については、実際に動作させた検証結果を報告するものでon の場合わせ実行時のパーティション除外処理 Worker が多数あります。全ての変更点の一覧については担当
しな追加機能い合わせ実行時のパーティション除外処理処理箇所が多数あります。全ての変更点の一覧については存在することがわかります。その部分はメインプロセスが処理を行っています。するインデックス作成ことが多数あります。全ての変更点の一覧についてはわかります。その部キー分ほはメインプロセスが多数あります。全ての変更点の一覧については処理を使うためのビルド行って検証しようとしているユーザの助けになることを目的としています。い合わせ実行時のパーティション除外処理ます。

26
Copyright © 2018 SRA OSS, Inc. Japan All rights reserved.

PostgreSQL 11 検証レポートレポート

4.4. プロシージャ内でのトランザクション制御内でのトランザクション制御での追加トランザクション制御
PostgerSQL11 から、実際に動作させた検証結果を報告するものでデータ移動ベース内でのトランザクション制御の手続き言語でのトランザクション制御対応き言語でのトランザクション制御対応言語でのトランザクション制御対応オブジェクトとして検証しようとしているユーザの助けになることを目的としています。 FUNCTION（以下関数の拡張）に記載されています。の他にも細かな機能追加や変更が多数あります。全ての変更点の一覧についてはに
PROCEDURE（以下プロシージャ内でのトランザクション制御）に記載されています。が多数あります。全ての変更点の一覧については追加されました。プロシージャ内でのトランザクション制御と関数の拡張の違い合わせ実行時のパーティション除外処理は以下の通りです。本ドキュメントではこれらの項目を取り上げます。の通りです。本ドキュメントではこれらの項目を取り上げます。りです。
CREATE PROCEDURE 文は RETURNS オプションを使うためのビルド持っているこちパーませ実行時のパーティション除外処理ん。

•

ただし、実際に動作させた検証結果を報告するものでINOUT 引数の拡張を使うためのビルド使うためのビルドって検証しようとしているユーザの助けになることを目的としています。戻り値を返すことは可能です。り値の閾値を設定できます。件数が多くて十分にコストが大きくなる場合に使用する価値を使うためのビルド返す関数を作ります。すことは可能です。OUT 引数の拡張は禁止なしに実現できます。です。
•

プロシージャ内でのトランザクション制御は式の中に組み入れることはできません。に組み入れられたみ書き可能なディレクトリとして用意したうえで、入れるインデックス作成ことはでき言語でのトランザクション制御対応ませ実行時のパーティション除外処理ん。CALL 文で呼びます。子テーブルのことをび出して、適用します。します。

•

プロシージャ内でのトランザクション制御内でのトランザクション制御でトランザクション制御が多数あります。全ての変更点の一覧については可能です。

•

DO 構文はプロシージャ内でのトランザクション制御と同様の扱いとなります。い合わせ実行時のパーティション除外処理とな追加機能ります。

以下の通りです。本ドキュメントではこれらの項目を取り上げます。は PostgreSQL 11 ドキュメント（以下43.8.Transaction Management）に記載されています。に記載されています。のプロシージャ内でのトランザクション制御実行例ではです。
db1=# CREATE TABLE test1 (a int);
db1=# CREATE OR REPLACE PROCEDURE p_tx5() LANGUAGE plpgsql AS $$BEGIN
FOR i IN 0..9 LOOP
INSERT INTO test1 (a) VALUES (i);IF i % 2 = 0 THEN COMMIT;-- 偶数》なテーブルを作る）らコミット

ELSE ROLLBACK;-- 奇数》なテーブルを作る）らロールバック

END IF;
END LOOP;
END; $$;
db1=# CALL p_tx5();-- CALL 文で実行うします

db1=# SELECT * FROM test1;
a
--0
2
4
6
8
(5 rows)
プロシージャ内でのトランザクション制御内でのトランザクション制御で COMMIT、実際に動作させた検証結果を報告するものでROLLBACK が多数あります。全ての変更点の一覧については機能して検証しようとしているユーザの助けになることを目的としています。い合わせ実行時のパーティション除外処理るインデックス作成ことが多数あります。全ての変更点の一覧についてはわかります。対するインデックス作成応して検証しようとしているユーザの助けになることを目的としています。い合わせ実行時のパーティション除外処理るインデックス作成のは COMMIT、実際に動作させた検証結果を報告するもので
ROLLBACK だけで、実際に動作させた検証結果を報告するものでSAVEPOINT と ROLLBACK TO には対するインデックス作成応して検証しようとしているユーザの助けになることを目的としています。い合わせ実行時のパーティション除外処理ませ実行時のパーティション除外処理ん。プロシージャ内でのトランザクション制御を使うためのビルド実行したトラン
27
Copyright © 2018 SRA OSS, Inc. Japan All rights reserved.

PostgreSQL 11 検証レポートレポート

ザクションに対するインデックス作成して検証しようとしているユーザの助けになることを目的としています。 COMMIT や変更が多数あります。全ての変更点の一覧については ROLLBACK が多数あります。全ての変更点の一覧については実行され、実際に動作させた検証結果を報告するもので次のトランザクションは暗黙に開始されます。のトランザクションは暗黙に開始されます。に開されています。いずれも英語となります。始されます。されます。
上げます。記の CALL 文は明し、実際に動作させた検証結果を報告するもので示や大規模サーバにおける性能の検証は意図して的データ移動な追加機能トランザクション内でのトランザクション制御では実行でき言語でのトランザクション制御対応ませ実行時のパーティション除外処理ん。
以下の通りです。本ドキュメントではこれらの項目を取り上げます。のようにエラーにな追加機能ります。
db1=# BEGIN;
BEGIN
db1=# CALL p_tx5();
ERROR:CONTEXT:

invalid transaction termination
PL/pgSQL function p_tx5() line 5 at COMMIT

プロシージャ内でのトランザクション制御の CALL は入れ子を組み合わせた式にします。で実行可能です。ただし、実際に動作させた検証結果を報告するもので関数の拡張内でのトランザクション制御からの入れ子を組み合わせた式にします。 CALL はでき言語でのトランザクション制御対応ませ実行時のパーティション除外処理ん。
また、実際に動作させた検証結果を報告するもので各プロシージャ内でのトランザクション制御が多数あります。全ての変更点の一覧についてはサブトランザクションを使うためのビルド構成するインデックス作成わけではありませ実行時のパーティション除外処理ん。以下の通りです。本ドキュメントではこれらの項目を取り上げます。の例ではを使うためのビルド参照ください合わせ実行時のパーティション除外処理。
db1=# CREATE PROCEDURE p_tx8() LANGUAGE plpgsql AS $$BEGIN
INSERT INTO test1 VALUES (0);-- この数》行う挿入が動作するように設定する）、CALL p_tx7();-- この数》呼び出し先にて、び出し先にて、出し先にて、に小コストでもて実行する）、COMMIT;
END; $$;
db1=# CREATE PROCEDURE p_tx7() LANGUAGE plpgsql AS $$BEGIN
INSERT INTO test1 VALUES (1);ROLLBACK;-- ロールバックされて実行する）しまい合わせをます。

END; $$;
db1=# DELETE FROM test1;-- 検証レポート用に小コストでもに小コストでも最初にテーブルを空にしますに小コストでもテーブルを作る）空にしますに小コストでもしますdb1=# CALL p_tx8();
CALL
db1=# SELECT * FROM test1;-- 入れ子 CALL 先にて、の数》 ROLLBACK が動作するように設定する）効になるように設定して実行する）い合わせをて実行する） 0 行うに小コストでもなテーブルを作る）りました箇所の数》。

a--(0 rows)
呼びます。子テーブルのことを び 出して、適用します。 し 先の  の ト ラ ン ザ ク シ ョ ン 制 御 を使うためのビルド サ ブ ト ラ ン ザ ク シ ョ ン に し た い合わせ実行時のパーティション除外処理 場 合わせ実行時のパーティション除外処理 に は 、実際に動作させた検証結果を報告するもので 従 来からある か ら あ るインデックス作成
BEGIN...END ブロックによるインデックス作成サブトランザクションと併用して検証を行って、本文書を作成していますします。以下の通りです。本ドキュメントではこれらの項目を取り上げます。のようにすれば、実際に動作させた検証結果を報告するものでプロシージャ内でのトランザクション制御中に組み入れることはできません。で呼びます。子テーブルのことをばれた ROLLBACK を使うためのビルドそのプロシージャ内でのトランザクション制御内でのトランザクション制御（以下この例ではでは p_tx7）に記載されています。の処理だけに限の設定を与えます。定でき言語でのトランザクション制御対応ます。
db1=# CREATE OR REPLACE PROCEDURE p_tx11() LANGUAGE plpgsql AS $$28
Copyright © 2018 SRA OSS, Inc. Japan All rights reserved.

PostgreSQL 11 検証レポートレポート

BEGIN
INSERT INTO test1 VALUES (0);-- 0 の数》行うを作る）挿入

BEGIN
CALL p_tx7();-- ROLLBACK を作る）含むプロシージャむプロシージャプロシージ文字列ャ

EXCEPTION WHEN others THEN NULL;END;
COMMIT;
END; $$;
db1=# DELETE FROM test1;
db1=# CALL p_tx11();
db1=# SELECT * FROM test1;-- 0 の数》行うを作る）挿入した箇所の数》結果が残るが動作するように設定する）残るる

a--0(1 row)
しかし、実際に動作させた検証結果を報告するもので以下の通りです。本ドキュメントではこれらの項目を取り上げます。のような追加機能直感に反する動作もします。に反のデータを投入すると、エラー内容は以下のようになります。するインデックス作成動作もします。
db1=# CREATE OR REPLACE PROCEDURE p_tx12() LANGUAGE plpgsql AS $$BEGIN
INSERT INTO test1 VALUES (41);
ROLLBACK;INSERT INTO test1 VALUES (42);COMMIT;
END; $$;
db1=# CREATE OR REPLACE PROCEDURE p_tx13() LANGUAGE plpgsql AS $$BEGIN
INSERT INTO test1 VALUES (0);BEGIN
CALL p_tx12();EXCEPTION WHEN others THEN NULL;END;
COMMIT;
END; $$;

29
Copyright © 2018 SRA OSS, Inc. Japan All rights reserved.

PostgreSQL 11 検証レポートレポート

db1=# DELETE FROM test1;
db1=# CALL p_tx13();
db1=# SELECT * FROM test1;-- p_tx12 で挿入された箇所の数》行うは含むプロシージャまれなテーブルを作る）い合わせをa--0(1 row)p_tx12 の中に組み入れることはできません。でロールバック後から増やす手段が用意されてにコミット処理が多数あります。全ての変更点の一覧についてはあって検証しようとしているユーザの助けになることを目的としています。も、実際に動作させた検証結果を報告するもので呼びます。子テーブルのことをび出して、適用します。し元 p_tx13 では p_tx12 内でのトランザクション制御でエラーが多数あります。全ての変更点の一覧については生
じたあつかい合わせ実行時のパーティション除外処理とな追加機能って検証しようとしているユーザの助けになることを目的としています。結局ロールバックされてしまいます。ロールバックされて検証しようとしているユーザの助けになることを目的としています。しまい合わせ実行時のパーティション除外処理ます。
見てみます。て検証しようとしているユーザの助けになることを目的としています。き言語でのトランザクション制御対応たようにトランザクション制御を使うためのビルド伴うプロシージャを入れ子で呼び出すには、様々な注意が必要とうプロシージャ内でのトランザクション制御を使うためのビルド入れ子を組み合わせた式にします。で呼びます。子テーブルのことをび出して、適用します。すには、実際に動作させた検証結果を報告するもので様々な改善な追加機能注意されています。が多数あります。全ての変更点の一覧については必要とな追加機能ります。

4.4.1. 各手続き言語でのトランザクション制御対応き言語でのトランザクション制御対応言語でのトランザクション制御対応で性能アップするケースのトランザクション制御対するインデックス作成応PL/pgSQL のみ書き可能なディレクトリとして用意したうえで、な追加機能らず、実際に動作させた検証結果を報告するものでPL/Perl、実際に動作させた検証結果を報告するものでPL/Python、実際に動作させた検証結果を報告するものでPL/Tcl でもプロシージャ内でのトランザクション制御定義できるようになります。とプロシージャ内でのトランザクション制御内でのトランザクション制御でのトランザ
クション制御に対するインデックス作成応して検証しようとしているユーザの助けになることを目的としています。い合わせ実行時のパーティション除外処理ます。各言語でのトランザクション制御対応それぞれにトランザクション制御を使うためのビルドするインデックス作成命令がいくつかありますが多数あります。全ての変更点の一覧については追加されました。
例ではえば、実際に動作させた検証結果を報告するもので PL/Perl であれば『spi_commit(MODULUS 3, REMAINDER 0))』『spi_rollback(MODULUS 3, REMAINDER 0))』とい合わせ実行時のパーティション除外処理う関数の拡張が多数あります。全ての変更点の一覧については追加されて検証しようとしているユーザの助けになることを目的としています。い合わせ実行時のパーティション除外処理ます。以下の通りです。本ドキュメントではこれらの項目を取り上げます。のように使うためのビルド用して検証を行って、本文書を作成していますします。
（PL/Perl での数》トランザクション制御の例）の数》例）
DO LANGUAGE plperl $$my $sth = spi_query("SELECT x FROM generate_series(1, 10) AS x");my $row;while (defined($row = spi_fetchrow($sth))) {spi_exec_query("INSERT INTO test1 (a) VALUES (" . $row->{x} . ")");
if ($row->{x} % 2 == 0) {spi_commit();} else {spi_rollback();
}
}
$$;

30
Copyright © 2018 SRA OSS, Inc. Japan All rights reserved.

PostgreSQL 11 検証レポートレポート

4.5. ALTER TABLE .. ADD COLUMN の追加性能の追加改善
テーブルに列ハッシュ結合を使うためのビルド追加するインデックス作成とき言語でのトランザクション制御対応に追加列ハッシュ結合に値の閾値を設定できます。件数が多くて十分にコストが大きくなる場合に使用する価値 を使うためのビルド 設定して検証しようとしているユーザの助けになることを目的としています。 い合わせ実行時のパーティション除外処理 るインデックス作成場合わせ実行時のパーティション除外処理には従来からある実行に時のパーティション除外処理間の透過的データ移動を使うためのビルド要しましたが多数あります。全ての変更点の一覧については 、実際に動作させた検証結果を報告するものでPostgreSQL 11 で高速くなります化されました。されました。
以下の通りです。本ドキュメントではこれらの項目を取り上げます。に実行例ではを使うためのビルド示や大規模サーバにおける性能の検証は意図してします。
（PostgreSQL 11 での数》列追加）
db1=# CREATE TABLE t_alt (id int primary key, c1 int);
db1=# INSERT INTO t_alt SELECT g, g FROM generate_series(1, 100000) AS g;
db1=# \timing
Timing is on.
db1=# ALTER TABLE t_alt ADD c2 int;
ALTER TABLE
Time: 16.918 ms-- 値を投入するとほぼ均等に振り分けられる）の数》無しでプランを見るためい合わせを列追加は高速

db1=# ALTER TABLE t_alt ADD c3 int DEFAULT 100;
ALTER TABLE
Time: 25.824 ms-- 値を投入するとほぼ均等に振り分けられる）の数》ある列追加も高速（PostgreSQL 10 で同じです）等に振り分けられる）テーブルに小コストでも列追加）
db1=# ALTER TABLE t_alt ADD c2 int DEFAULT NULL;ALTER TABLE
Time: 14.717 ms-- 値を投入するとほぼ均等に振り分けられる）の数》無しでプランを見るためい合わせを列追加は 10.x でも高速

db1=# ALTER TABLE t_alt ADD c3 int DEFAULT 100;
ALTER TABLE
Time: 718.629 ms-- 10.x では値を投入するとほぼ均等に振り分けられる）の数》ある列追加は遅いい合わせをな追加機能お、実際に動作させた検証結果を報告するもので値の閾値を設定できます。件数が多くて十分にコストが大きくなる場合に使用する価値の入った列ハッシュ結合の型サーバ変更が多数あります。全ての変更点の一覧についてはについ合わせ実行時のパーティション除外処理て検証しようとしているユーザの助けになることを目的としています。は PostgreSQL 11 でも依然パラレルになりません。として検証しようとしているユーザの助けになることを目的としています。時のパーティション除外処理間の透過的データ移動を使うためのビルド要します。
db1=# ALTER TABLE t_alt ALTER c3 TYPE bigint;
ALTER TABLE
Time: 640.206 ms-- PostgreSQL 11 でもデータ挿入）型変えます。）換え）は高速に小コストでもなテーブルを作る）って実行する）い合わせをなテーブルを作る）い合わせを

31
Copyright © 2018 SRA OSS, Inc. Japan All rights reserved.

PostgreSQL 11 検証レポートレポート

4.6. ウィンドウ関数の拡張の追加拡張
PostgreSQL 11 でウィンドウ関数の拡張で指定可能な追加機能オプションが多数あります。全ての変更点の一覧については拡充されました。されました。
まずは、実際に動作させた検証結果を報告するもので機能確認のためにウィンドウ関数の拡張を使うためのビルド使うためのビルドった SQL のテスト用して検証を行って、本文書を作成していますのデータ移動を使うためのビルド作ります。以下の通りです。本ドキュメントではこれらの項目を取り上げます。のテーブル
t_temperature1 は 5000 件の日に時のパーティション除外処理と高度はごとの気温のデータを模したものです。のデータ移動を使うためのビルド模サーバにおける性能の検証は意図してしたものです。
db1=# CREATE TABLE t_temperature1(id int primary key, dt timestamp, high int, t float4);
db1=# INSERT INTO t_temperature1 SELECT g,'2018-01-01'::timestamp + g * '10min'::interval +(floor(random() * 600) || 'sec')::interval,
trunc((random() + random() + random()) * 5) * 100, NULLFROM generate_series(1, 5000) AS g;
db1=# UPDATE t_temperature1
SET t = 30 - abs(8 - to_char(dt, 'MM')::int) * 0.5- abs(14 - to_char(dt, 'HH24')::int) * 0.5 - 40 * 0.5- high * 0.001 + (random() - 0.5) * 2;
db1=# SELECT * FROM t_temperature1 LIMIT 5;
id |

dt

| high |t----+---------------------+------+----------1 | 2018-01-01 00:19:47 |600 |-1.78712

2 | 2018-01-01 00:23:30 |400 |-1.18362

3 | 2018-01-01 00:34:34 |100 | -0.812903

4 | 2018-01-01 00:43:27 |600 | -0.749416

5 | 2018-01-01 00:53:45 |600 |-1.11721(5 rows)

4.6.1. GROUPS ウィンドウフレーム
ウィンドウフレームの指定で GROUPS モードに対するインデックス作成応しました。これは ROWS モードと似ていますがて検証しようとしているユーザの助けになることを目的としています。い合わせ実行時のパーティション除外処理ますが多数あります。全ての変更点の一覧については 、実際に動作させた検証結果を報告するもので
ORDER BY 指定した列ハッシュ結合の値の閾値を設定できます。件数が多くて十分にコストが大きくなる場合に使用する価値が多数あります。全ての変更点の一覧については同値の閾値を設定できます。件数が多くて十分にコストが大きくなる場合に使用する価値の場合わせ実行時のパーティション除外処理には一つのグの改善ループとして検証しようとしているユーザの助けになることを目的としています。扱いとなります。い合わせ実行時のパーティション除外処理ます。
以下の通りです。本ドキュメントではこれらの項目を取り上げます。の SQL では高度は（以下high）に記載されています。が多数あります。全ての変更点の一覧については 600m より高い合わせ実行時のパーティション除外処理か低いかでい合わせ実行時のパーティション除外処理かで PARTITION BY にて検証しようとしているユーザの助けになることを目的としています。分ほけたうえで、実際に動作させた検証結果を報告するもので何日に何時のパーティション除外処理
台で並び替えたときの前後で並び替えたときの前後えたとき言語でのトランザクション制御対応の前のテーブル継承を使ったパーティショニングにおいても、検索条件に合後から増やす手段が用意されて 1 つの範囲で平均気温のデータを模したものです。を使うためのビルド t_avg として検証しようとしているユーザの助けになることを目的としています。出して、適用します。力はたくさんの関数や演算子を組み合わせた式にします。して検証しようとしているユーザの助けになることを目的としています。い合わせ実行時のパーティション除外処理ます。dt = 2018-01-01 01:24:18（以下2018 年 1 月 1 日に 1 時のパーティション除外処理台で並び替えたときの前後のデータ移動）に記載されています。の行の t_avg 値の閾値を設定できます。件数が多くて十分にコストが大きくなる場合に使用する価値は、実際に動作させた検証結果を報告するもので 2018 年 1 月 1 日に 0 時のパーティション除外処理台で並び替えたときの前後から 2 時のパーティション除外処理台で並び替えたときの前後の平均気温のデータを模したものです。値の閾値を設定できます。件数が多くて十分にコストが大きくなる場合に使用する価値とい合わせ実行時のパーティション除外処理うことです。

32
Copyright © 2018 SRA OSS, Inc. Japan All rights reserved.

PostgreSQL 11 検証レポートレポート

db1=# SELECT dt, (high > 600) high, t, avg(t) OVER (PARTITION BY (high > 600) ORDER BY to_char(dt,'YYYYMMDD-HH24')
GROUPS BETWEEN 1 PRECEDING AND 1 FOLLOWING /**/ ) AS t_avg
FROM t_temperature1 ORDER BY high, dt LIMIT 10;
dt| high |

t

|

t_avg

---------------------+------+-----------+-------------------2018-01-01 00:19:47 | f|-1.78712 | -0.966641413668791

2018-01-01 00:23:30 | f|-1.18362 | -0.966641413668791

2018-01-01 00:34:34 | f| -0.812903 | -0.966641413668791

2018-01-01 00:43:27 | f| -0.749416 | -0.966641413668791

2018-01-01 00:53:45 | f|

2018-01-01 01:24:18 | f| -0.149579 | -0.537378480657935

2018-01-01 02:11:30 | f|

0.873217 |

0.305551156401634

2018-01-01 02:38:01 | f|

0.627603 |0.305551156401634

2018-01-01 03:03:48 | f| -0.129037 |

0.620003839333852

2018-01-01 04:03:42 | f|

0.963712198393685-1.11721 | -0.966641413668791

0.158182 |(10 rows)

4.6.2. ウィンドウフレーム RANGE モードの距離指定
ウィンドウフレームでこれまでは value PRECEDING および value FOLLOWING とい合わせ実行時のパーティション除外処理う 指定が多数あります。全ての変更点の一覧については RANGE
モードでも使うためのビルド用して検証を行って、本文書を作成しています可能にな追加機能りました。ウィンドウフレーム内でのトランザクション制御の ORDER BY で指定して検証しようとしているユーザの助けになることを目的としています。い合わせ実行時のパーティション除外処理るインデックス作成列ハッシュ結合の当該行の値の閾値を設定できます。件数が多くて十分にコストが大きくなる場合に使用する価値からの距離で含まれる主要な新機能を説明し、実際に動作させた検証結果を報告するものでめるインデックス作成かど要しました。うかを使うためのビルド指定でき言語でのトランザクション制御対応るインデックス作成ようにな追加機能ります。
前のテーブル継承を使ったパーティショニングにおいても、検索条件に合項の SQL を使うためのビルド今度はは前のテーブル継承を使ったパーティショニングにおいても、検索条件に合後から増やす手段が用意されて１回あたりの実行は速くなります時のパーティション除外処理間の透過的データ移動以内でのトランザクション制御のデータ移動につい合わせ実行時のパーティション除外処理て検証しようとしているユーザの助けになることを目的としています。平均を使うためのビルド求めるように書き換えると以下のようになめるインデックス作成ように書は き言語でのトランザクション制御対応換えるときに１つのトランザクションとしてるのは、データ投入時に振り分け先とえるインデックス作成と以下の通りです。本ドキュメントではこれらの項目を取り上げます。のようにな追加機能ります。
db1=# SELECT dt, (high > 600) high, t, avg(t) OVER (PARTITION BY (high > 600) ORDER BY dt RANGE BETWEEN'1 hour'::interval PRECEDING AND'1 hour'::interval FOLLOWING /**/ ) AS t_avg
FROM t_temperature1 ORDER BY high, dt LIMIT 10;
dt| high |

t

|

t_avg

---------------------+------+-----------+--------------------2018-01-01 00:19:47 | f| -0.273468 |-0.835916876792908

2018-01-01 00:23:30 | f| -0.270229 |-0.835916876792908

33
Copyright © 2018 SRA OSS, Inc. Japan All rights reserved.

PostgreSQL 11 検証レポートレポート

2018-01-01 00:34:34 | f|-1.23344 |-0.962530215581258

2018-01-01 00:43:27 | f|-1.94818 |-0.962530215581258

2018-01-01 00:53:45 | f| -0.454267 |-0.962530215581258

2018-01-01 01:24:18 | f|-1.5956 |-0.955757999420166

2018-01-01 02:11:30 | f|

0.452694 |-0.441849559545517

2018-01-01 02:38:01 | f| -0.859478 | -0.0572671095530192

2018-01-01 03:03:48 | f|

0.234983 |

0.238512098789215

2018-01-01 04:03:42 | f|

1.12585 |0.843094613403082(10 rows)
今度はは dt = '2018-01-01 01:24:18' の行の t_avg 値の閾値を設定できます。件数が多くて十分にコストが大きくなる場合に使用する価値は、実際に動作させた検証結果を報告するもので 2018-01-01 00:24:18 から 2018-01-01 02:24:18 までの範囲にあるインデックス作成データ移動の平均気温のデータを模したものです。値の閾値を設定できます。件数が多くて十分にコストが大きくなる場合に使用する価値とい合わせ実行時のパーティション除外処理うことです。

4.6.3. ウィンドウフレームの EXCLUDE オプション
ウィンドウフレームに EXCLUDE オプションに対するインデックス作成応しました。RANGE、実際に動作させた検証結果を報告するものでROWS、実際に動作させた検証結果を報告するものでGROUPS の指定の末尾に以下の通りです。本ドキュメントではこれらの項目を取り上げます。の EXCLUDE のい合わせ実行時のパーティション除外処理ずれかを使うためのビルド指定して検証しようとしているユーザの助けになることを目的としています。、実際に動作させた検証結果を報告するものでフレームから除外するインデックス作成ものを使うためのビルド指定でき言語でのトランザクション制御対応ます。
EXCLUDE CURRENT ROW

当なテーブルを作る）該行うを作る）除する）外します。します。

EXCLUDE GROUP

当なテーブルを作る）該行うが動作するように設定する）含むプロシージャまれる整列時の数》同じです）値を投入するとほぼ均等に振り分けられる）グループを作る）除する）外します。します。

EXCLUDE TIES

当なテーブルを作る）該行うが動作するように設定する）含むプロシージャまれる整列時の数》同じです）値を投入するとほぼ均等に振り分けられる）グループの数》当なテーブルを作る）該行う以外します。を作る）除する）外します。します。

EXCLUDE NO OTHERS

除する）外します。を作る）しません。EXCLUDE を作る）指定する）しなテーブルを作る）い合わせを場合わせをと同じです）じです。

4.6.1 節、実際に動作させた検証結果を報告するもので4.6.2 節のサンプル SQL のコメント記号部キー分ほ（以下/**/）に記載されています。にこれらオプション指定を使うためのビルド与えます。えて検証しようとしているユーザの助けになることを目的としています。、実際に動作させた検証結果を報告するもので動作を使うためのビルド確認するインデックス作成ことが多数あります。全ての変更点の一覧についてはでき言語でのトランザクション制御対応ます。

4.7. SCRAM チャ内でのトランザクション制御ンネルバインド
PostgreSQL 10 から接続き言語でのトランザクション制御対応時のパーティション除外処理の認証のためのセットアップ方が所要時間が短式に scram-sha-256 が多数あります。全ての変更点の一覧については追加されました。PostgreSQL 11 では、実際に動作させた検証結果を報告するものでこのscram-sha-256 を使うためのビルド使うためのビルドう際に動作させた検証結果を報告するものでにチャ内でのトランザクション制御ンネルバインド動作を使うためのビルドさせ実行時のパーティション除外処理るインデックス作成ことが多数あります。全ての変更点の一覧についてはでき言語でのトランザクション制御対応るインデックス作成ようにな追加機能りました。チャ内でのトランザクション制御ンネルバ
インドとは SSL（以下TLS）に記載されています。接続き言語でのトランザクション制御対応の場合わせ実行時のパーティション除外処理の 専用して検証を行って、本文書を作成しています機能です。認証のためのセットアップのためのメッセージ取り上げます。り交わしにおいて当該のわしにおい合わせ実行時のパーティション除外処理て検証しようとしているユーザの助けになることを目的としています。当該のSSL 接続き言語でのトランザクション制御対応固有りの方が所要時間が短の情報を使うためのビルド含まれる主要な新機能を説明し、実際に動作させた検証結果を報告するものでめるインデックス作成ことで、実際に動作させた検証結果を報告するものでその内でのトランザクション制御容は以下のようになります。を使うためのビルド他にも細かな機能追加や変更が多数あります。全ての変更点の一覧についてはの接続き言語でのトランザクション制御対応に使うためのビルドい合わせ実行時のパーティション除外処理まわせ実行時のパーティション除外処理な追加機能い合わせ実行時のパーティション除外処理ようにして検証しようとしているユーザの助けになることを目的としています。、実際に動作させた検証結果を報告するものでい合わせ実行時のパーティション除外処理わゆるインデックス作成 Man-inthe-middle （以下中に組み入れることはできません。間の透過的データ移動者）に記載されています。攻撃を防ぐものです。を使うためのビルド防ぐものです。ぐものです。SCRAM チャ内でのトランザクション制御ンネルバインドは ssl 接続き言語でのトランザクション制御対応で scram-sha-256 認証のためのセットアップを使うためのビルド使うためのビルドう場合わせ実行時のパーティション除外処理にデフォルトで使うためのビルドわれます。
以下の通りです。本ドキュメントではこれらの項目を取り上げます。の手順が必要です。で実際に動作させた検証結果を報告するものでに使うためのビルド用して検証を行って、本文書を作成していますして検証しようとしているユーザの助けになることを目的としています。み書き可能なディレクトリとして用意したうえで、ます。

34
Copyright © 2018 SRA OSS, Inc. Japan All rights reserved.

PostgreSQL 11 検証レポートレポート（postgresql.conf を作る）編集して実行する）以下設定する）を作る）付与しています。します）
listen_addresses = '*'ssl = onpassword_encryption = scram-sha-256（pg_hba.conf の数》先にて、頭の方に以下設定を付与します）の数》方に以下設定を付与します）に小コストでも以下設定する）を作る）付与しています。します）# TYPEDATABASE

hostssl db1

USER

ADDRESSMETHODtest

test1.example.com

scram-sha-256（SSL 接続を受け付けられるように鍵と証明書のファイルを配置します）を作る）受け付けられるように鍵と証明書のファイルを配置します）け付けられるように小コストでも鍵と証明書のファイルを配置します）と証レポート明書のファイルを配置します）の数》ファイルを作る）配置き換え）します）# su - postgres$ cd /usr/local/pgsql/data11.0$ openssl req -new -x509 -days 365 -nodes -text -out server.crt \-keyout server.key -subj "/CN=test1.exsample.com"
Generating a 2048 bit RSA private key......................................................................+++............................+++
writing new private key to 'server.key'----$ chmod 600 server.key（PostgreSQL を作る）再起動します）$ pg_ctl restart（テスト用に小コストでもの数》適当なテーブルを作る）なテーブルを作る）ユーザを作る）作するように設定する）ります）
db1=# CREATE ROLE test LOGIN PASSWORD 'password';
CREATE ROLE

（テスト用に小コストでもユーザで SSL 接続を受け付けられるように鍵と証明書のファイルを配置します）します）$ psql "host=test1.example.com dbname=db1 user=test sslmode=require
scram_channel_binding=tls-unique"# 実際は１行は１行う

Password for user test:# パスワード出力の所要時間》入力の所要時間》

Pager usage is off.
psql (11beta1)

35
Copyright © 2018 SRA OSS, Inc. Japan All rights reserved.

PostgreSQL 11 検証レポートレポート

SSL connection (protocol: TLSv1.2, cipher: ECDHE-RSA-AES256-GCM-SHA384,
bits: 256, compression: off)
Type "help" for help.
# 無しでプランを見るため事接続を受け付けられるように鍵と証明書のファイルを配置します）でき換え）ました箇所の数》

db1=># ~/.postgresql/以下に小コストでも鍵と証明書のファイルを配置します）や証明書のファイルを置いていない前提の手順です証レポート明書のファイルを配置します）の数》ファイルを作る）置き換え）い合わせをて実行する）い合わせをなテーブルを作る）い合わせを前提の手順ですの数》手順ですです
上げます。 記 例では で は psql に て検証しようとしているユーザの助けになることを目的としています。 接 続き言語でのトランザクション制御対応 文 字 列ハッシュ結合 を使うためのビルド 与えます。 え るインデックス作成 形 式 で デ ー タ移動 ベ ー ス に 接 続き言語でのトランザクション制御対応 し て検証しようとしているユーザの助けになることを目的としています。 い合わせ実行時のパーティション除外処理 ま す 。 こ こ でscram_channel_binding とい合わせ実行時のパーティション除外処理うオプションを使うためのビルド指定して検証しようとしているユーザの助けになることを目的としています。い合わせ実行時のパーティション除外処理ます。デフォルトは tls-unique で、実際に動作させた検証結果を報告するもので他にも細かな機能追加や変更が多数あります。全ての変更点の一覧についてはに空欄ととtls-server-end-point が多数あります。全ての変更点の一覧については指定でき言語でのトランザクション制御対応ます。通りです。本ドキュメントではこれらの項目を取り上げます。常はデフォルト指定で問い合わせ実行時のパーティション除外処理題ありません。空欄はチャンネルバありませ実行時のパーティション除外処理ん。空欄とはチャ内でのトランザクション制御ンネルバ
インディングの改善を使うためのビルド使うためのビルドわな追加機能い合わせ実行時のパーティション除外処理とい合わせ実行時のパーティション除外処理う意されています。味です。です。
さて検証しようとしているユーザの助けになることを目的としています。、実際に動作させた検証結果を報告するものでSSL 接続き言語でのトランザクション制御対応を使うためのビルド有りの方が所要時間が短効にした PostgreSQL 11 に対するインデックス作成して検証しようとしているユーザの助けになることを目的としています。 scram-sha-256 で接続き言語でのトランザクション制御対応でき言語でのトランザクション制御対応たわけですが多数あります。全ての変更点の一覧については、実際に動作させた検証結果を報告するものでこのとき言語でのトランザクション制御対応
SCRAM チャ内でのトランザクション制御ンネルバインディングの改善が多数あります。全ての変更点の一覧については使うためのビルドわれて検証しようとしているユーザの助けになることを目的としています。い合わせ実行時のパーティション除外処理るインデックス作成か確認するインデックス作成ことは難しいです。しい合わせ実行時のパーティション除外処理です。DEBUG レベルを使うためのビルド含まれる主要な新機能を説明し、実際に動作させた検証結果を報告するものでめて検証しようとしているユーザの助けになることを目的としています。特にログの改善メッセージが多数あります。全ての変更点の一覧についてはは出して、適用します。ませ実行時のパーティション除外処理んし、実際に動作させた検証結果を報告するものでパケットを使うためのビルド見てみます。て検証しようとしているユーザの助けになることを目的としています。も SSL 上げます。な追加機能ので解析困難しいです。です。
注記
PostgreSQL 11 beta3 バージョン以降であればプリペアドステートメントの実行で scram_channel_binding オプションは無し（くな追加機能り、実際に動作させた検証結果を報告するもので tls-serverend-point 方が所要時間が短式のみ書き可能なディレクトリとして用意したうえで、固定とな追加機能りました。

5. 免責事項
本ドキュメントは SRA OSS, Inc. 日に本支社により作成されました。しかし、により作成されました。しかし、実際に動作させた検証結果を報告するものでSRA OSS, Inc. 日に本支社により作成されました。しかし、は本ドキュメントにおい合わせ実行時のパーティション除外処理て検証しようとしているユーザの助けになることを目的としています。正確性、実際に動作させた検証結果を報告するもので有りの方が所要時間が短用して検証を行って、本文書を作成しています性、実際に動作させた検証結果を報告するものでその他にも細かな機能追加や変更が多数あります。全ての変更点の一覧についてはい合わせ実行時のパーティション除外処理かな追加機能るインデックス作成保証のためのセットアップを使うためのビルドするインデックス作成ものではありませ実行時のパーティション除外処理ん。本ドキュメントを使うためのビルド利用して検証を行って、本文書を作成していますするインデックス作成場合わせ実行時のパーティション除外処理、実際に動作させた検証結果を報告するもので利用して検証を行って、本文書を作成しています者の責任において行なって頂くものとなります。におい合わせ実行時のパーティション除外処理て検証しようとしているユーザの助けになることを目的としています。行な追加機能って検証しようとしているユーザの助けになることを目的としています。頂くものとなります。くものとな追加機能ります。

36
Copyright © 2018 SRA OSS, Inc. Japan All rights reserved.