PostgreSQL 11 検証レポート

Size: px
Start display at page:

Download "PostgreSQL 11 検証レポート"

Transcription

1 1.0 版 2018 年 7 月 4 日 SRA OSS, Inc. 日本支社 東京都豊島区南池袋 Tel Fax

2 目次 1. はじめに 概要 検証のためのセットのためのセットアップ ソフトウェア入手 検証のためのセット環境 インストール JIT コンパイルを使うためのビル使うためのビルドうためのビルド 主要な追加機能追加機能 JIT コンパイル機能の追加 パーティショニングの改善の改善 パーティション全体に対するインデに対するインデックするインデックス作インデックス作成 パーティションテーブルに対するインデックするインデックス作外部キーキー パーティション間の透過的データの透過的データ移動データ移動移動 ハッシュパーティショニングの改善 問い合わせ実行時い合わせ実行時の合わせ実行時のパわせ実行時のパーテ実行時のパーティショのパーティション除外処理 パーティション指向の結合 集約の結合わせ実行時のパ 集約 パラレル実行の改善 並列ハッシュ結合ハッシュ結合わせ実行時のパ 並列ハッシュ結合インデックス作成 並列ハッシュ結合 CREATE TABLE AS 並列ハッシュ結合 Append parallel_leader_participation プロシージャ内でのトランザ内でのトランザクでのトランザクション制御 各手続き言語でのトラき言語でのトラン言語でのトランザクでのトランザクション制御対するインデック応 ALTER TABLE.. ADD COLUMN の性能改善 ウィンドウ関数の拡張の拡張 GROUPS ウィンドウフレーム ウィンドウフレーム RANGE モードの距離指定 ウィンドウフレームの EXCLUDE オプション SCRAM チャ内でのトランザンネルバインド 免責事項

3 1. はじめに 本文書はは PostgreSQL 11 に含まれる主要な新まれるインデックス作主要な追加機能新機能を使うためのビル説明し 実際に動作し 実際に動作させ実際に動作させた検に動作させ実行時のパーテた検証のためのセット結果を報告するものを使うためのビル報告するものでするインデックス作ものです PostgreSQL 11 につい合わせ実行時のて検証しようとし検証のためのセットしようとして検証しようとしい合わせ実行時のるインデックス作ユーザの助けになることをけにな追加機能るインデックス作ことを使うためのビル目的データ移動として検証しようとしい合わせ実行時のます 2018 年 5 月 24 日ににリリースされた PostgreSQL 11beta1 を使うためのビル使うためのビルド用して検証を行っして検証しようとし検証のためのセットを使うためのビル行って検証しようとし 実際に動作させ本文書はを使うためのビル作成して検証しようとしい合わせ実行時のます 2. 概要 PostgreSQL 11 の主要な追加機能新機能は以下の通りです 本の通りです 本ドキりです 本ドキュメントではこれらの項目を使うためのビル取り上げます り上げます げます JIT コンパイルの追加 パーティショニングの改善の様々な改善な追加機能改善 並列ハッシュ結合実行の様々な改善な追加機能改善 プロシージャ内でのトランザ内でのトランザクでのトランザクション制御を使うためのビルサポート 認証のためのセットで SCRAM チャ内でのトランザンネルバインドを使うためのビルサポート ALTER TABLE.. ADD COLUMN の性能改善 ウィンドウ関数の拡張の拡張 この他にも細かな機能にも細かな機能追加やかな追加機能機能追加や変更が多数あり変更が多数ありますが多数あります 多数の拡張あります 全て検証しようとしの変更が多数あります点の一覧についての一覧についてはについ合わせ実行時のて検証しようとしは PostgreSQL 11 ドキュ メント内でのトランザクのリリースノート (以下 以下の通りです 本 URL)に記載されてい に記載されています されて検証しようとしい合わせ実行時のます 3. 検証のためのセットのためのセットアップ 3.1. ソフトウェア入手入手 PostgreSQL 11 (以下 ベータ移動版を含む)を使うためのビル含まれる主要な新む )に記載されてい は以下の通りです 本 URL のページからダウンロード可能です ソースコード Windows むけバイナリのインストーラ 実際に動作させ RPM yum リポジトリが多数あります 用して検証を行っ意されています されて検証しようとしい合わせ実行時のます 検証環境 検証のためのセット環境として検証しようとし 実際に動作させ HP ProLiant MicroServer 上げます の CentOS 7.x / x86_64 を使うためのビル使うためのビルド用して検証を行っしました これは小型サーバサーバ 2

4 マシンであり 実際に動作させ本検証のためのセットは 実際に動作させ具体に対するインデ的データ移動な追加機能特定マシン上げます の性能の提示や大規模サーバや変更が多数あり大規模サーバにおけるサーバにおけるインデックス作性能の検証のためのセットは意されています 図してして検証しようとし い合わせ実行時のませ実行時のパーテん 3.3. インストール zlib 実際に動作させ zlib-devel 実際に動作させ readline 実際に動作させ readline-devel の各パッケージが多数あります あらかじめインストールされて検証しようとしい合わせ実行時のるインデックス作状態で で 実際に動作させ以下の通りです 本のオプションにて検証しようとしソースコードのビルドを使うためのビル行い合わせ実行時のました /usr/local/pgsql ディレクトリを使うためのビル postgres ユーザで読み書き可能なデみ書き可能なディ書はき言語でのトラン可能な追加機能ディレクトリとして検証しようとし用して検証を行っ意されています したうえで 実際に動作させ postgres ユーザにて検証しようとし実行しました $ cd postgresql-11beta1 $./configure --prefix=/usr/local/pgsql/ 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 $ env データ移動ベースクラスタ移動を使うためのビル作成します ロケール無し(し (以下C ロケール )に記載されてい 実際に動作させ UTF8 を使うためのビルデフォルトとします $ initdb --no-locale --encoding=utf8 設定ファイルに最小限の設定を与えまの設定を使うためのビル与えます えます $ cat >> $PGDATA/postgresql.conf << EOF logging_collector = on EOF PostgreSQL を使うためのビル起動します $ pg_ctl start 3

5 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/ 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

6 4. 主要な追加機能追加機能 主要な追加機能追加機能 実際に動作させ性能向の結合 集約上げます につい合わせ実行時のて検証しようとし動作確認を使うためのビルして検証しようとしい合わせ実行時のき言語でのトランます また 実際に動作させ合わせ実行時のパわせ実行時のパーテて検証しようとし機能の簡単な説明もしますな追加機能説明し 実際に動作もします 各追加機能の詳細かな機能追加やな追加機能説明し 実際に動作はベータ移動版を含む)に同梱されるマニュアされるインデックス作マニュアルに記載されています されて検証しようとしい合わせ実行時のます 本インストール手順が必要です を使うためのビル行った場合わせ実行時のパ 実際に動作させ以下の通りです 本の場所 (以下 インストール先のの share/doc/html)に記載されてい に HTML のマニュアルが多数あります 生成されます /usr/local/pgsql/11.0/share/doc/html/ また 実際に動作させ以下の通りです 本 URL にて検証しようとし PostgreSQL 11 のマニュアルが多数あります 公開されています されて検証しようとしい合わせ実行時のます い合わせ実行時のずれも英語でのトランザクとな追加機能ります JIT コンパイル機能の追加の追加追加 JIT が多数あります 組み入れられたみ書き可能なディ入れられた PostgreSQL では 実際に動作させ SQL 実行プランで JIT を使うためのビル使うためのビルドうとい合わせ実行時のう選択肢が生じます が多数あります 生じます JIT を使うためのビル使うためのビルドう場合わせ実行時のパには 実際に動作させ SQL 実行時のパーティショの行データ移動の取り上げます り出して 適用しまし処理や変更が多数あり SELECT リストの式 実際に動作させ条件句の式の計算が最の式の計算が最初にコンが多数あります 最初にコンにコンパイルされて検証しようとしから実行されます 最初にコンにコンパイルするインデックス作処理が多数あります 増えますが1回あえますが多数あります 1回あたりの実行 回あたりの実行はあたりの実行は速くなりますくな追加機能りますので 実際に動作させ件数の拡張が多数あります 多い合わせ実行時の処理での性能向の結合 集約上げます が多数あります 期待できます でき言語でのトランます 以下の通りです 本で JIT が多数あります 使うためのビルドわれるインデックス作動作を使うためのビル見てみます て検証しようとしみ書き可能なディます JIT 用して検証を行っにい合わせ実行時のくつか設定変数の拡張が多数あります 追加されて検証しようとしい合わせ実行時のて検証しようとし 実際に動作させ JIT を使うためのビル使うためのビルドうか 実際に動作させ JIT を使うためのビル使うためのビルドう場合わせ実行時のパのコスト値の閾値を設定での閾値の閾値を設定でを使うためのビル設定でき言語でのトランます 件数の拡張が多数あります 多くて検証しようとし十分ほにコストが多数あります 大き言語でのトランくな追加機能るインデックス作場合わせ実行時のパに使うためのビルド用して検証を行っするインデックス作価値の閾値を設定でが多数あります 生じますので 実際に動作させ指定コストを使うためのビル下の通りです 本回あたりの実行はるインデックス作ような追加機能ら利用して検証を行っされな追加機能い合わせ実行時のとい合わせ実行時のうことです ( 確認用に小コストでもに小コストでも小コストでもコストでも JIT が動作するように動作するように設定するように小コストでも設定する)する ) db1=# SET jit TO on; -- デフォルトも on db1=# SET jit_above_cost TO 10; -- デフォルト JIT コンパイル適用に小コストでも db1=# SET jit_optimize_above_cost TO 10; -- デフォルト 最適化も行うも行うう db1=# SET jit_inline_above_cost TO 10; -- デフォルト インライン化も行うも行うう ( 適当なテーブルを作なテーブルを作るテーブルを作る)作するように設定る ) 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

7 QUERY PLAN Seq Scan on t1 (cost= rows=5 width=36) (actual time= rows=500 loops=1) Filter: ((id % 2) = 1) Rows Removed by Filter: 500 Planning Time: ms JIT: Functions: 4 JIT 処理された箇所の数された箇所の数 箇所の数 の数 数 Generation Time: ms JIT コンパイル所の数 要時間 Inlining: true JIT での数 インライン化も行うも行うった箇所の数 か? Inlining Time: ms JIT での数 インライン化も行うの数 所の数 要時間 Optimization: true JIT での数 最適化も行うも行うった箇所の数 か? Optimization Time: ms JIT での数 最適化も行うの数 所の数 要時間 Emission Time: ms JIT コード出力の所要時間出力の所要時間 の数 所の数 要時間 Execution Time: ms (13 rows) 上げます 記は小さい合わせ実行時のテーブルへの問い合わせ実行時い合わせ実行時の合わせ実行時のパわせ実行時のパーテですので JIT 実行したほうが多数あります 遅くなるケースでくな追加機能るインデックス作ケースです 今度はは JIT が多数あります 効果を報告するもの的データ移動に働く例を見てみまく例ではを使うためのビル見てみます て検証しようとしみ書き可能なディましょう CPU 高負荷であって件数がであって検証しようとし件数の拡張が多数あります 多い合わせ実行時のケースを使うためのビル作って検証しようとしみ書き可能なディます 1回あたりの実行 億件を使うためのビル処理させ実行時のパーテるインデックス作ことにします 1 億件のテーブルを使うためのビル作るインデックス作とストレージ I/O 時のパーティショ間の透過的データの寄与えます が多数あります 大き言語でのトランくな追加機能って検証しようとししまうので 実際に動作させ 1 億件の行を使うためのビル返す関数を作ります関数の拡張を使うためのビル作ります ROWS オプションも指定して検証しようとしおけば 実際に動作させプランナにも件数の拡張が多数あります 伝わります また 実際に動作させ出して 適用しま力はたくさんの関はたくさんの関数の拡張や変更が多数あり演算が最初にコン子を組み合わせたを使うためのビル組み入れられたみ書き可能なディ合わせ実行時のパわせ実行時のパーテた式にします db1=# CREATE FUNCTION f () RETURNS SETOF bigint ROWS LANGUAGE sql AS $$ SELECT g FROM generate_series(1::bigint, ::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 f () AS g; QUERY PLAN 6

8 Function Scan on f g (cost= rows= width=40) (actual time= rows= loops=1) Planning Time: ms Execution Time: 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 f () AS g; QUERY PLAN Function Scan on f g (cost= rows= width=40) (actual time= rows= loops=1) Planning Time: ms JIT: Functions: 2 Generation Time: ms Inlining: true Inlining Time: ms Optimization: true Optimization Time: ms Emission Time: ms Execution Time: ms (11 rows) コスト値の閾値を設定でが多数あります ですのでデフォルト設定でも JIT が多数あります 適用して検証を行っされます JIT 有りの方が所要時りの方が所要時間が短が多数あります 所要時のパーティショ間の透過的データが多数あります 短 くな追加機能って検証しようとしい合わせ実行時のます 下の通りです 本記グの改善ラフはこの SQL を使うためのビル JIT 有りの方が所要時り無し(しで各 5 回あたりの実行はずつ実行した結果を報告するものの平均値の閾値を設定でとばらつき言語でのトラン (以下 標準偏差 )に記載されてい です 平均 20% 程度はの所要時のパーティショ間の透過的データが多数あります 短縮されています されて検証しようとしい合わせ実行時のます 7

9 Execution Time [ms] JIT 未適用 JIT 適用 図 4.1-1:JITJIT で性能アップする性能アップするインデックス作ケース作成 4.2. パーティショニングの改善の追加改善 PostgreSQL 10 から CREATE TABLE 文に PARTITION オプションが多数あります 追加されて検証しようとし 実際に動作させ明し 実際に動作示や大規模サーバ的データ移動な追加機能構文上げます の指示や大規模サーバでテーブルのパーティショニングの改善を使うためのビル実現できるようになでき言語でのトランるインデックス作ようにな追加機能りました PostgreSQL 11 では 実際に動作させこのパーティショニングの改善機能につい合わせ実行時のて検証しようとしい合わせ実行時のくつか改善が多数あります 行われて検証しようとしい合わせ実行時のます 本機能ではい合わせ実行時のくらか紛らわしい用語がらわしい合わせ実行時の用して検証を行っ語でのトランザクが多数あります 登場しますので 実際に動作させ改めて検証しようとし整理して検証しようとしおき言語でのトランます 一つのテーブルを使うためのビル複数の拡張の子を組み合わせたテーブルに分ほ割するのがパーテするインデックス作のが多数あります パーティショニングの改善です このとき言語でのトラン 実際に動作させ子を組み合わせたテーブルを使うためのビル含まれる主要な新む全体に対するインデを使うためのビル代表するテーブルするインデックス作テーブルを使うためのビルパーティションテーブルと呼びます 子テーびます 子を組み合わせたテーブルのことを使うためのビルパーティションと呼びます 子テーびます パーティション全体に対するインデに対するインデックするインデックス作インデックス作成作成 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

10 CREATE TABLE db1=# CREATE TABLE t_log_0 PARTITION OF t_log FOR VALUES FROM (0) TO (100000); CREATE TABLE db1=# CREATE TABLE t_log_1 PARTITION OF t_log FOR VALUES FROM (100000) TO (200000); CREATE TABLE db1=# CREATE TABLE t_log_2 PARTITION OF t_log FOR VALUES FROM (200000) TO (300000); CREATE TABLE ( データ挿入)挿入 ) db1=# INSERT INTO t_log SELECT g, ' :00'::timestamp + (g 's')::interval, md5(g::text), g % 5 FROM generate_series(0, ) AS g; INSERT また 実際に動作させ含まれる主要な新み書き可能なディさえすれば良いので 以下のい合わせ実行時のので 実際に動作させ以下の通りです 本のように主として検証しようとし 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

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, :53: , mes, 1). つまり 実際に動作させパーティションテーブルに対するインデックするインデックス作プライマリキー制約や変更が多数ありユニーク制約は 実際に動作させ振り分け規則に基り分ほけ規則に基づくに基づく 制約と 実際に動作させ個々な改善パーティション上げます のインデックスによるインデックス作制約によって検証しようとし実現できるようになされて検証しようとしい合わせ実行時のるインデックス作ことが多数あります わかります パーティションテーブルを使うためのビに対するインデックするインデックス作外部キーキー 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

12 db1=# INSERT INTO t_log VALUES (250001, ' :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, ' :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 対するインデック 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, ) AS g; そこに外部キーキー制約を使うためのビル指定しようとするインデックス作と 実際に動作させエラーにな追加機能ります db1=# ALTER TABLE t_log_detail ADD FOREIGN KEY (id) REFERENCES t_log (id); ERROR: cannot reference partitioned table "t_log" 11

13 パーティション間の透過的データの透過的データ移動データ移動移動 パーティションキーとな追加機能るインデックス作列ハッシュ結合の値の閾値を設定でを使うためのビル UPDATE したとき言語でのトランに 実際に動作させ自動的データ移動に行が多数あります 新しい合わせ実行時の値の閾値を設定でにふさわしい合わせ実行時の別パーティパーティションに移動するインデックス作ようにな追加機能りました この動作を使うためのビル確認して検証しようとしみ書き可能なディます ( テスト対して制約違反す象の行です の数 行うです id = 0 なテーブルを作るの数 で t_log_0 に小コストでも属しているはずでして実行する)い合わせをるはずです ) db1=# SELECT * FROM t_log WHERE id = 0; id ts mes typ :00:00 cfcd208495d565ef66e7dff9f98764da 0 (1 row) (id を作る)変えます )えます ) db1=# UPDATE t_log SET id = WHERE id = 0; db1=# SELECT * FROM t_log WHERE id = ; id ts mes typ :00:00 cfcd208495d565ef66e7dff9f98764da 0 (1 row) (t_log_0 から t_log_2 に小コストでも移動して実行する)い合わせをることが動作するようにわかります ) db1=# explain SELECT * FROM t_log WHERE id = ; QUERY PLAN Append (cost= rows=1 width=49) -> Index Scan using t_log_2_pkey on t_log_2 (cost= rows=1 width=49) Index Cond: (id = ) (3 rows) 上げます 記の UPDATE につい合わせ実行時のて検証しようとし EXPLAIN ANALYZE を使うためのビル付けて検証しようとし実行するインデックス作と 実際に動作させ実行プランにおい合わせ実行時のて検証しようとしもパーティショ ンを使うためのビル変えるインデックス作動作を使うためのビルして検証しようとしい合わせ実行時のるインデックス作ことが多数あります 確認でき言語でのトランます db1=# EXPLAIN ANALYZE UPDATE t_log SET id = WHERE id = 0; 12

14 QUERY PLAN Update on t_log (cost= rows=1 width=55) (actual time= rows=0 loops=1) Update on t_log_0 -> Index Scan using t_log_0_pkey on t_log_0 (cost= rows=1 width=55) (actual time= rows=1 loops=1) Index Cond: (id = 0) Planning Time: ms Trigger for constraint t_log_typ_fkey on t_log_2: time=0.026 calls=1 Execution Time: ms (7 rows) ハッシュパーティショニング 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

15 db1=# INSERT INTO t_message SELECT g, md5(g::text), ' :00'::timestamp + (g 's')::interval, g % 5 FROM generate_series(1, ) AS g; INSERT db1=# SELECT count(*) FROM t_message_3_0; count (1 row) db1=# SELECT count(*) FROM t_message_3_1; count (1 row) db1=# SELECT count(*) FROM t_message_3_2; count (1 row) PostgreSQL 11 のハッシュパーティショニングの改善ではパーティションの数の拡張を使うためのビル後から増やす手段から増えますが1回あや変更が多数ありす手段が用意されてが多数あります 用して検証を行っ意されています されて検証しようとしい合わせ実行時のます ポイントは全て検証しようとしのパーティションでハッシュ値の閾値を設定でを使うためのビル割するのがパーテるインデックス作数の拡張 (以下 本例ではでは 3)に記載されてい が多数あります 同じでな追加機能くて検証しようとしも良いので 以下のい合わせ実行時の 実際に動作させとい合わせ実行時のうことです 3 で割するのがパーテって検証しようとし余りがいくつになり 0 とな追加機能るインデックス作数の拡張 (以下0 実際に動作させ 3 実際に動作させ 6 実際に動作させ 9 実際に動作させ 12 実際に動作させ 15 実際に動作させ )に記載されてい は 実際に動作させ 6 で割するのがパーテって検証しようとし余りがいくつになり 0 とな追加機能るインデックス作数の拡張 (以下0 実際に動作させ 6 実際に動作させ 12 実際に動作させ )に記載されてい と 実際に動作させ 6 で割するのがパーテって検証しようとし余りがいくつになり 3 とな追加機能るインデックス作数の拡張 (以下3 実際に動作させ 9 実際に動作させ 15 実際に動作させ )に記載されてい に分ほ割するのがパーテするインデックス作ことが多数あります でき言語でのトランます そこで (MODULUSMODULUS 3, REMAINDER 0) に限り本手順でと定義できるようになしたパーティションを使うためのビル取り上げます り外して検証しようとし 実際に動作させ代わりに MODULUS 6, REMAINDER 0 に限り本手順でのパーティション 実際に動作させ MODULUS 6, REMAINDER 3 に限り本手順でのパーティションを使うためのビル定義できるようになするインデックス作ことで 実際に動作させパーティションを使うためのビル増えますが1回あや変更が多数ありすことが多数あります でき言語でのトランます その後から増やす手段に 実際に動作させ取り上げます り外したパーティションのデータ移動を使うためのビル再投入して検証しようとし 実際に動作させデータ移動を使うためのビル合わせ実行時のパ流させれば完了でさせ実行時のパーテれば完了です です SQL コマンドとして検証しようとしは以下の通りです 本のようにな追加機能ります (1つの数 パーティションを作る)2つの数 パーティションで置き換え)き換え)換え)え) db1=# BEGIN; db1=# ALTER TABLE t_message DETACH PARTITION t_message_3_0; 14

16 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; この手順が必要です を使うためのビル少しずつ実行してしずつ実行して検証しようとしい合わせ実行時のけば 実際に動作させパーティションの再編成を使うためのビル長いサービス停止い合わせ実行時のサービス停止なしに実現できな追加機能しに実現できるようになでき言語でのトランます パーティションを使うためのビル置き換えるときにき言語でのトラン換えるときに1つえるインデックス作とき言語でのトランに1回あたりの実行つのトランザクションとして検証しようとしるインデックス作のは 実際に動作させデータ移動投入時のパーティショに振り分け規則に基り分ほけ先のとな追加機能るインデックス作パーティションが多数あります 無し(い合わせ実行時の状態で ですとエラーにな追加機能り 実際に動作させまた 実際に動作させ一つのハッシュ値の閾値を設定でに対するインデックして検証しようとし複数の拡張のパーティションが多数あります 格納先の候補となる状態もエとな追加機能るインデックス作状態で もエラーとな追加機能るインデックス作ためです 問い合わせ実行時い合わせ実行時の合わせ実行時のパわせ実行時のパーテ実行時のパーティショのパーティション除外処理 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 < ; 15

17 QUERY PLAN Aggregate (cost= rows=1 width=8) -> Append (cost= rows= width=0) -> Seq Scan on t_log_0 (cost= rows= width=0) Filter: (id < ) (4 rows) db1=# SET enable_partition_pruning TO off; db1=# explain SELECT count(*) FROM t_log WHERE id < ; QUERY PLAN Aggregate (cost= rows=1 width=8) -> Append (cost= rows= width=0) -> Seq Scan on t_log_0 (cost= rows= width=0) Filter: (id < ) -> Index Only Scan using t_log_1_pkey on t_log_1 (cost= rows=1 width=0) Index Cond: (id < ) -> Index Only Scan using t_log_2_pkey on t_log_2 (cost= rows=1 width=0) Index Cond: (id < ) (8 rows) この結果を報告するものから 実際に動作させ WHERE 句の式の計算が最で除外が多数あります 可能な追加機能集約の問い合わせ実行時い合わせ実行時の合わせ実行時のパわせ実行時のパーテが多数あります 実際に動作させ constraint_exclusion = on だけではパーテ ィション除外が多数あります でき言語でのトランず 実際に動作させ enable_partition_pruning = on でパーティション除外が多数あります 可能にな追加機能って検証しようとしい合わせ実行時のるインデックス作ことが多数あります 確 認でき言語でのトランます 16

18 パーティション指向の結合 集約の結合わせ実行時のパ 集約 パーティション指向の結合指向の結合の結合結合 以下の通りです 本のような追加機能構造の二つ組のテーの二つ組のテーブルつ組み入れられたのテーブルが多数あります あって検証しようとし 実際に動作させそれぞれ主キー列ハッシュ結合 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 テーブル作するように設定成する) 節で作ったものとで作するように設定った箇所の数 もの数 と同じです)じです ) 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, ) AS g; パーティション指向の結合 集約の結合わせ実行時のパを使うためのビルさせ実行時のパーテるインデックス作には設定パラメータ移動 enable_partitionwise_join を使うためのビル on にします デフ ォルトは off です また 実際に動作させパラレル動作と組み入れられたみ書き可能なディ合わせ実行時のパわせ実行時のパーテて検証しようとし効果を報告するものが多数あります でるインデックス作機能ですが多数あります 実際に動作させ実行プランにあらわれるインデックス作効果を報告するもの を使うためのビル明し 実際に動作確にするインデックス作ため 実際に動作させパラレル動作を使うためのビル抑止なしに実現できするインデックス作設定を使うためのビル与えます えて検証しようとしおき言語でのトランます 17

19 db1=# SET parallel_setup_cost TO ; -- パラレル無しでプランを見しでプランを作る)見るためるた箇所の数 め 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= rows= width=66) -> Merge Left Join (cost= rows= width=66) Merge Cond: (lo.id = ld.id) -> Index Scan using t_log_0_pkey on t_log_0 lo (cost= rows= width=37) -> Index Scan using t_log_detail_0_pkey on t_log_detail_0 ld (cost= rows= width=37) -> Merge Left Join (cost= rows= width=66) Merge Cond: (lo_1.id = ld_1.id) -> Index Scan using t_log_1_pkey on t_log_1 lo_1 (cost= rows= width=37) -> Index Scan using t_log_detail_1_pkey on t_log_detail_1 ld_1 (cost= rows= width=37) -> Merge Left Join (cost= 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= rows=50001 width=37) -> Index Scan using t_log_detail_2_pkey on t_log_detail_2 ld_2 (cost= 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

20 です プランの違い合わせ実行時のを使うためのビル確認して検証しようとしみ書き可能なディます 今回あたりの実行はもプランを使うためのビル見てみます や変更が多数ありすくするインデックス作ためパラレル処理は選択されな追加機能い合わせ実行時のように して検証しようとしい合わせ実行時のます db1=# SET parallel_setup_cost TO ; -- パラレル無しでプランを見しでプランを作る)見るためるた箇所の数 め ( パーティション指向の数 集約を作る)使わない場合)わなテーブルを作るい合わせを場合わせを ) db1=# SET enable_partitionwise_aggregate TO off; db1=# explain SELECT avg(length(mes)) FROM t_log; QUERY PLAN Aggregate (cost= rows=1 width=32) -> Append (cost= rows= width=33) -> Seq Scan on t_log_0 (cost= rows= width=33) -> Seq Scan on t_log_1 (cost= rows= width=33) -> Seq Scan on t_log_2 (cost= 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 (cost= rows=1 width=32) -> Append (cost= rows=3 width=32) -> Partial Aggregate (cost= rows=1 width=32) -> Seq Scan on t_log_0 (cost= rows= width=33) -> Partial Aggregate (cost= rows=1 width=32) -> Seq Scan on t_log_1 (cost= rows= width=33) -> Partial Aggregate (cost= rows=1 width=32) -> Seq Scan on t_log_2 (cost= rows=50001 width=33) (8 rows) 上げます 記 2 番目のプランでは各パーティションごとに Aggregate して検証しようとしい合わせ実行時のるインデックス作ことが多数あります 確認でき言語でのトランます 19

21 4.3. パラレル実行の改善の追加改善 パラレル実行は PostgreSQL 9.6 実際に動作させ PostgreSQL 10 でもサポートされて検証しようとしい合わせ実行時のますが多数あります 実際に動作させ PostgreSQL 11 では SQL 実行で並列ハッシュ結合処理でき言語でのトランるインデックス作項目が多数あります 更が多数ありますにい合わせ実行時のくつか追加されて検証しようとしい合わせ実行時のます 並列ハッシュ結合ハッシュ結合わせ実行時のパ ハッシュ結合わせ実行時のパが多数あります パラレル実行でき言語でのトランるインデックス作ようにな追加機能りました 節で作った t_log と 実際に動作させ 節 (以下 あるインデックス作い合わせ実行時のは 節 )に記載されてい で作った 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 (cost= rows=1 width=4) -> Gather (cost= rows=2 width=4) Workers Planned: 2 -> Partial Aggregate (cost= rows=1 width=4) -> Parallel Hash Left Join (cost= rows= width=66) Hash Cond: (lo.id = ld.id) -> Parallel Append (cost= rows= width=37) -> Parallel Seq Scan on t_log_0 lo (cost= rows=58824 width=37) -> Parallel Seq Scan on t_log_1 lo_1 (cost= rows=58824 width=37) -> Parallel Seq Scan on t_log_2 lo_2 (cost= rows=29412 width=37) -> Parallel Hash (cost= rows= width=37) -> Parallel Append (cost= rows= width=37) 20

22 (15 rows) -> Parallel Seq Scan on t_log_detail_0 ld (cost= rows=58824 width=37) -> Parallel Seq Scan on t_log_detail_1 ld_1 (cost= rows=58824 width=37) -> Parallel Seq Scan on t_log_detail_2 ld_2 (cost= rows=29412 width=37) 並列ハッシュ結合インデックス作成作成 Btree インデックスの作成で並列ハッシュ結合処理が多数あります 行われるインデックス作ようにな追加機能りました 以下の通りです 本のように 節で作った t_log のインデックスを使うためのビル再作成して検証しようとしみ書き可能なディますと 実際に動作させパラレル動作が多数あります 確認でき言語でのトランます 確認のため 実際に動作させ DEBUG1 レベルのメッセージを使うためのビル出して 適用しま力はたくさんの関させ実行時のパーテて検証しようとしい合わせ実行時のます ( 本設定する)が動作するように 2 以上だと並列処理がだと並列処理された箇所の数が動作するように試みられます デみられます デフォルトは 2 です ) db1=# SHOW max_parallel_maintenance_workers; max_parallel_maintenance_workers (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

23 並列ハッシュ結合 CREATE TABLE AS CREATE TABLE... AS... に限り本手順でな追加機能ど要しました 実際に動作させ SELECT した結果を報告するものを使うためのビルテーブルに格納するインデックス作 SQL 命令がいくつかありが多数あります い合わせ実行時のくつかあります これらの SQL で並列ハッシュ結合処理が多数あります 行われるインデックス作ようにな追加機能りました PostgreSQL 10 までは 実際に動作させ対するインデック応が多数あります 見てみます 落とされていましとされて検証しようとしい合わせ実行時のました 対するインデック応が多数あります 追加されたのは以下の通りです 本の3構文です 構文です 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= rows= width=49) Workers Planned: 2 -> Parallel Append (cost= rows= width=49) -> Parallel Seq Scan on t_log_0 (cost= rows=58824 width=49) -> Parallel Seq Scan on t_log_1 (cost= rows=58824 width=49) -> Parallel Seq Scan on t_log_2 (cost= rows=29412 width=49) (6 rows) db1=# explain CREATE MATERIALIZED VIEW mv_log AS SELECT * FROM t_log; QUERY PLAN Gather (cost= rows= width=49) Workers Planned: 2 -> Parallel Append (cost= rows= width=49) 22

24 -> Parallel Seq Scan on t_log_0 (cost= rows=58824 width=49) -> Parallel Seq Scan on t_log_1 (cost= rows=58824 width=49) -> Parallel Seq Scan on t_log_2 (cost= rows=29412 width=49) (6 rows) な追加機能お 実際に動作させ REFRESH MATERIALIZED VIEW は依然パラレルになりパラレルにな追加機能りませ実行時のパーテん 並列ハッシュ結合 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= rows= width=49) Workers Planned: 2 -> Parallel Append (cost= rows= width=49) -> Parallel Seq Scan on t_log_0 (cost= rows=58824 width=49) -> Parallel Seq Scan on t_log_1 (cost= rows=58824 width=49) -> Parallel Seq Scan on t_log_2 (cost= 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

25 QUERY PLAN Gather (cost= rows= width=49) Workers Planned: 2 -> Parallel Append (cost= rows= width=49) -> Parallel Seq Scan on t_log_0 (cost= rows=58824 width=49) -> Parallel Seq Scan on t_log_1 (cost= rows=58824 width=49) -> Parallel Seq Scan on t_log_2 (cost= rows=29412 width=49) (6 rows) PostgreSQL 10 の場合わせ実行時のパ 実際に動作させ各スキャ内でのトランザンが多数あります パラレルにな追加機能って検証しようとしも Append 部キー分ほは直列ハッシュ結合実行でした 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= rows= width=49) (actual time= rows= loops=1) Output: t_log_0.id, t_log_0.ts, t_log_0.mes, t_log_0.typ Workers Planned: 2 Workers Launched: 2 -> Parallel Append (cost= rows= width=49) (actual time= rows=83334 loops=3) 24

26 Worker 0: actual time= rows=81690 loops=1 Worker 1: actual time= rows=77465 loops=1 -> Parallel Seq Scan on public.t_log_0 (cost= rows=58824 width=49) (actual time= 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= rows=81690 loops=1 Worker 1: actual time= rows=9752 loops=1 -> Parallel Seq Scan on public.t_log_1 (cost= rows=58824 width=49) (actual time= 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= rows=67713 loops=1 -> Parallel Seq Scan on public.t_log_2 (cost= rows=29412 width=49) (actual time= rows=50001 loops=1) Output: t_log_2.id, t_log_2.ts, t_log_2.mes, t_log_2.typ Planning Time: ms Execution Time: ms (18 rows) -- どの数 Worker も担当なテーブルを作して実行する)い合わせをなテーブルを作るい合わせをパーティションが動作するようにある すなテーブルを作るわち主プロセスが担主プロセスが担当プロセスが動作するように担当なテーブルを作して実行する)い合わせをる db1=# SET parallel_leader_participation TO off; SET db1=# explain (analyze, verbose) SELECT * FROM t_log; QUERY PLAN Gather (cost= rows= width=49) (actual time= rows= loops=1) Output: t_log_0.id, t_log_0.ts, t_log_0.mes, t_log_0.typ Workers Planned: 2 Workers Launched: 2 -> Parallel Append (cost= rows= width=49) (actual time= rows= loops=2) Worker 0: actual time= rows= loops=1 25

27 Worker 1: actual time= rows= loops=1 -> Seq Scan on public.t_log_0 (cost= rows= width=49) (actual time= rows= loops=1) Output: t_log_0.id, t_log_0.ts, t_log_0.mes, t_log_0.typ Worker 0: actual time= rows= loops=1 -> Seq Scan on public.t_log_1 (cost= rows= width=49) (actual time= rows= loops=1) Output: t_log_1.id, t_log_1.ts, t_log_1.mes, t_log_1.typ Worker 1: actual time= rows= loops=1 -> Seq Scan on public.t_log_2 (cost= rows=50001 width=49) (actual time= 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= rows=50001 loops=1 Planning Time: ms Execution Time: ms (18 rows) parallel_leader_participation が多数あります on か off かの違い合わせ実行時のは違い合わせ実行時のが多数あります 見てみます えにくい合わせ実行時ののですが多数あります 実際に動作させ on の場合わせ実行時のパ Worker が多数あります 担当 しな追加機能い合わせ実行時の処理箇所が多数あります 存在することがわかするインデックス作ことが多数あります わかります その部キー分ほはメインプロセスが多数あります 処理を使うためのビル行って検証しようとしい合わせ実行時のます 26

28 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 (5 rows) プロシージャ内でのトランザ内でのトランザクで COMMIT 実際に動作させ ROLLBACK が多数あります 機能して検証しようとしい合わせ実行時のるインデックス作ことが多数あります わかります 対するインデック応して検証しようとしい合わせ実行時のるインデックス作のは COMMIT 実際に動作させ ROLLBACK だけで 実際に動作させ SAVEPOINT と ROLLBACK TO には対するインデック応して検証しようとしい合わせ実行時のませ実行時のパーテん プロシージャ内でのトランザを使うためのビル実行したトラン 27

29 ザクションに対するインデックして検証しようとし COMMIT や変更が多数あり ROLLBACK が多数あります 実行され 実際に動作させ次のトランザクシのトランザクションは暗黙に開始されますに開されています 始されます されます 上げます 記の CALL 文は明し 実際に動作示や大規模サーバ的データ移動な追加機能トランザクション内でのトランザクでは実行でき言語でのトランませ実行時のパーテん 以下の通りです 本のようにエラーにな追加機能ります db1=# BEGIN; BEGIN db1=# CALL p_tx5(); ERROR: invalid transaction termination CONTEXT: 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

30 BEGIN INSERT INTO test1 VALUES (0); BEGIN CALL p_tx7(); EXCEPTION WHEN others THEN NULL; END; COMMIT; END; $$; -- 0 の数 行うを作る)挿入 -- ROLLBACK を作る)含むプロシージャむプロシージャプロシージ文字列ャ db1=# DELETE FROM test1; db1=# CALL p_tx11(); db1=# SELECT * FROM test1; a (1 row) -- 0 の数 行うを作る)挿入した箇所の数 結果が残るが動作するように残るる しかし 実際に動作させ以下の通りです 本のような追加機能直感に反する動作もに反のデータを投入するインデックス作動作もします 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

31 db1=# DELETE FROM test1; db1=# CALL p_tx13(); db1=# SELECT * FROM test1; a (1 row) -- p_tx12 で挿入された箇所の数 行うは含むプロシージャまれなテーブルを作るい合わせを p_tx12 の中に組み入れるこでロールバック後から増やす手段にコミット処理が多数あります あって検証しようとしも 実際に動作させ呼びます 子テーび出して 適用しまし元 p_tx13 では p_tx12 内でのトランザクでエラーが多数あります 生じたあつかい合わせ実行時のとな追加機能って検証しようとし結局ロールバックさロールバックされて検証しようとししまい合わせ実行時のます 見てみます て検証しようとしき言語でのトランたようにトランザクション制御を使うためのビル伴うプロシージャうプロシージャ内でのトランザを使うためのビル入れ子を組み合わせたで呼びます 子テーび出して 適用しますには 実際に動作させ様々な改善な追加機能注意されています が多数あります 必要とな追加機能ります 各手続き言語でのトラき言語でのトラン言語でのトランザクで性能アップするのトランザクション制御対するインデック応 PL/pgSQL のみ書き可能なディな追加機能らず 実際に動作させ PL/Perl 実際に動作させ PL/Python 実際に動作させ PL/Tcl でもプロシージャ内でのトランザ定義できるようになとプロシージャ内でのトランザ内でのトランザクでのトランザクション制御に対するインデック応して検証しようとしい合わせ実行時のます 各言語でのトランザクそれぞれにトランザクション制御を使うためのビルするインデックス作命令がいくつかありが多数あります 追加されました 例ではえば 実際に動作させ PL/Perl であれば spi_commit(modulus) spi_rollback(modulus) とい合わせ実行時のう関数の拡張が多数あります 追加されて検証しようとしい合わせ実行時のます 以下の通りです 本のように使うためのビルド用して検証を行っします (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

32 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, ) AS g; db1=# \timing Timing is on. db1=# ALTER TABLE t_alt ADD c2 int; ALTER TABLE Time: ms -- 値を投入するとほの数 無しでプランを見い合わせを列追加は高速 db1=# ALTER TABLE t_alt ADD c3 int DEFAULT 100; ALTER TABLE Time: ms -- 値を投入するとほの数 ある列追加も高速 (PostgreSQL 10 で同じです)等に振り分けられテーブルに小コストでも列追加 ) db1=# ALTER TABLE t_alt ADD c2 int DEFAULT NULL; ALTER TABLE Time: ms -- 値を投入するとほの数 無しでプランを見い合わせを列追加は 10.x でも高速 db1=# ALTER TABLE t_alt ADD c3 int DEFAULT 100; ALTER TABLE Time: ms x では値を投入するとほの数 ある列追加は遅いい合わせを な追加機能お 実際に動作させ値の閾値を設定での入った列ハッシュ結合の型サーバ変更が多数ありますについ合わせ実行時のて検証しようとしは PostgreSQL 11 でも依然パラレルになりとして検証しようとし時のパーティショ間の透過的データを使うためのビル要します db1=# ALTER TABLE t_alt ALTER c3 TYPE bigint; ALTER TABLE Time: ms -- PostgreSQL 11 でもデータ挿入)型変えます )換え)は高速に小コストでもなテーブルを作るって実行する)い合わせをなテーブルを作るい合わせを 31

33 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, ' '::timestamp + g * '10min'::interval + (floor(random() * 600) 'sec')::interval, trunc((random() + random() + random()) * 5) * 100, NULL FROM generate_series(1, 5000) AS g; db1=# UPDATE t_temperature1 SET t = 30 - abs(8 - to_char(dt, 'MM')::int) * abs(14 - to_char(dt, 'HH24')::int) * * high * (random() - 0.5) * 2; db1=# SELECT * FROM t_temperature1 LIMIT 5; id dt high t :19: :23: :34: :43: :53: (5 rows) GROUPS ウィンドウフレーム ウィンドウフレームの指定で GROUPS モードに対するインデック応しました これは ROWS モードと似ていますがて検証しようとしい合わせ実行時のますが多数あります 実際に動作させ ORDER BY 指定した列ハッシュ結合の値の閾値を設定でが多数あります 同値の閾値を設定での場合わせ実行時のパには一つのグの改善ループとして検証しようとし扱いとなります い合わせ実行時のます 以下の通りです 本の SQL では高度は (以下high)に記載されてい が多数あります 600m より高い合わせ実行時のか低いかでい合わせ実行時のかで PARTITION BY にて検証しようとし分ほけたうえで 実際に動作させ何日に何時のパーティショ台で並び替えたとで並び替えたときの前後えたとき言語でのトランの前のテーブル継承後から増やす手段 1 つの範囲で平均気温のデータを模しを使うためのビル t_avg として検証しようとし出して 適用しま力はたくさんの関して検証しようとしい合わせ実行時のます dt = :24:18 (以下2018 年 1 月 1 日に 1 時のパーティショ台で並び替えたとのデータ移動 )に記載されてい の行の t_avg 値の閾値を設定では 実際に動作させ 2018 年 1 月 1 日に 0 時のパーティショ台で並び替えたとから 2 時のパーティショ台で並び替えたとの平均気温のデータを模し値の閾値を設定でとい合わせ実行時のうことです 32

34 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 :19:47 f :23:30 f :34:34 f :43:27 f :53:45 f :24:18 f :11:30 f :38:01 f :03:48 f :03:42 f (10 rows) ウィンドウフレーム RANGE モードの距離指定 ウィンドウフレームでこれまでは value PRECEDING および value FOLLOWING とい合わせ実行時のう指定が多数あります RANGE モードでも使うためのビルド用して検証を行っ可能にな追加機能りました ウィンドウフレーム内でのトランザクの ORDER BY で指定して検証しようとしい合わせ実行時のるインデックス作列ハッシュ結合の当該行の値の閾値を設定でからの距離で含まれる主要な新めるインデックス作かど要しました うかを使うためのビル指定でき言語でのトランるインデックス作ようにな追加機能ります 前のテーブル継承項の SQL を使うためのビル今度はは前のテーブル継承後から増やす手段 1回あたりの実行 時のパーティショ間の透過的データ以内でのトランザクのデータ移動につい合わせ実行時のて検証しようとし平均を使うためのビル求めるように書きめるインデックス作ように書はき言語でのトラン換えるときに1つえるインデックス作と以下の通りです 本のようにな追加機能ります 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 :19:47 f :23:30 f

35 :34:34 f :43:27 f :53:45 f :24:18 f :11:30 f :38:01 f :03:48 f :03:42 f (10 rows) 今度はは dt = ' :24:18' の行の t_avg 値の閾値を設定では 実際に動作させ :24:18 から :24:18 ま での範囲にあるインデックス作データ移動の平均気温のデータを模し値の閾値を設定でとい合わせ実行時のうことです ウィンドウフレームの EXCLUDE オプション ウィンドウフレームに EXCLUDE オプションに対するインデック応しました RANGE 実際に動作させ ROWS 実際に動作させ GROUPS の指定の末尾 に以下の通りです 本の EXCLUDE のい合わせ実行時のずれかを使うためのビル指定して検証しようとし 実際に動作させフレームから除外するインデックス作ものを使うためのビル指定でき言語でのトランます EXCLUDE CURRENT ROW EXCLUDE GROUP EXCLUDE TIES EXCLUDE NO OTHERS 当なテーブルを作該行うを作る)除する)外します します 当なテーブルを作該行うが動作するように含むプロシージャまれる整列時の数 同じです)値を投入するとほグループを作る)除する)外します します 当なテーブルを作該行うが動作するように含むプロシージャまれる整列時の数 同じです)値を投入するとほグループの数 当なテーブルを作該行う以外します を作る)除する)外します します 除する)外します を作る)しません EXCLUDE を作る)指定する)しなテーブルを作るい合わせを場合わせをと同じです)じです 節 実際に動作させ 節のサンプル 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

PostgreSQL 11 新機能解説 オープンソースカンファレンス 2018 Tokyo/Fall SRA OSS, Inc. 日本支社近藤雄太 Copyright 2018 SRA OSS, Inc. Japan All rights reserved. 1

PostgreSQL 11 新機能解説 オープンソースカンファレンス 2018 Tokyo/Fall SRA OSS, Inc. 日本支社近藤雄太 Copyright 2018 SRA OSS, Inc. Japan All rights reserved. 1 PostgreSQL 11 新機能解説 2018-10-27 オープンソースカンファレンス 2018 Tokyo/Fall SRA OSS, Inc. 日本支社近藤雄太 Copyright 2018 SRA OSS, Inc. Japan All rights reserved. 1 リリース間近! PostgreSQL 11 新機能解説 Copyright 2018 SRA OSS, Inc. Japan

More information

PostgreSQL 10 技術解説 SRA OSS, Inc. 日本支社 マーケティング部 PostgreSQL 技術グループ 高塚遙 PostgreSQL 最新動向紹介セミナー

PostgreSQL 10 技術解説 SRA OSS, Inc. 日本支社 マーケティング部 PostgreSQL 技術グループ 高塚遙 PostgreSQL 最新動向紹介セミナー PostgreSQL 10 技術解説 SRA OSS, Inc. 日本支社 マーケティング部 PostgreSQL 技術グループ 高塚遙 2017-09-14 PostgreSQL 最新動向紹介セミナー 自己紹介 高塚遙 ( たかつかはるか ) 所属 SRA OSS, Inc. 日本支社マーケティング部 PostgreSQL 技術グループ 業務 PostgreSQL の技術サポート 技術支援コンサルタント

More information

PGECons技術ドキュメントテンプレート Ver.3

PGECons技術ドキュメントテンプレート Ver.3 付録. パーティションツール 1. pg_part 1.1. 環境構築検証環境は下記で実施しました CPU RAM 表 1.1: 環境 Intel(R) Xeon(R) CPU L5520 @ 2.27GHz 8GB OS Red Hat Enterprise Linux Server release 6.6 PostgreSQL サーバ PostgreSQL 9.4.0 環境構築は以下の手順で実施しています

More information

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

PostgreSQL 9.4 評価検証報告 SRA OSS, Inc. 日本支社高塚遙 :55 ~ 16:30 PostgreSQL 9.4 最新情報セミナー Copyright 2014 SRA OSS, Inc. Japan All rights reserved. 1 PostgreSQL 9.4 評価検証報告 SRA OSS, Inc. 日本支社高塚遙 2014-09-11 15:55 ~ 16:30 PostgreSQL 9.4 最新情報セミナー Copyright 2014 SRA OSS, Inc. Japan All rights reserved. 1 はじめに 本講演の構成 Part 1 性能アップって どのくらいですか Part 2 この新機能は何ですか

More information

PostgreSQL SQL チューニング入門 ~ Explaining Explain より ~ 2012 年 11 月 30 日 株式会社アシスト 田中健一朗

PostgreSQL SQL チューニング入門 ~ Explaining Explain より ~ 2012 年 11 月 30 日 株式会社アシスト 田中健一朗 PostgreSQL SQL チューニング入門 ~ Explaining Explain より ~ 2012 年 11 月 30 日 株式会社アシスト 田中健一朗 アジェンダ 1.EXPLAIN とは 2. 表アクセスの基本 3. 結合の基本 4. 統計情報とは 5.EXPLAIN コマンド 6. 問題解決例 7. まとめ 2 1.EXPLAIN とは 実行計画とは - 目的地は 1 つでもアクセス方法は複数

More information

PostgreSQL 9.3パーティションの効果検証

PostgreSQL 9.3パーティションの効果検証 PostgreSQL 9.3 パーティションの効果検証テクノロジーコンサルティング事業統括オープンソース部高橋智雄 2014 年 7 月 変更履歴 版 日付 作成 修正者 説明 1.0 2013/12/16 日本 HP 高橋智雄 初版作成 1.1 2014/7/8 日本 HP 高橋智雄 テンプレート等を修正 2 はじめに 本書は PostgreSQL9.3 のパーティション表の検索に関する性能を評価したレポートです

More information

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

メール全文検索アプリケーション Sylph-Searcher のご紹介 SRA OSS, Inc. 日本支社技術部チーフエンジニア Sylpheed 開発者 山本博之 Copyright 2007 SRA OSS, Inc. Japan All right メール全文検索アプリケーション Sylph-Searcher のご紹介 SRA OSS, Inc. 日本支社技術部チーフエンジニア Sylpheed 開発者 山本博之 yamamoto@sraoss.co.jp Sylph-Searcher とは Sylpheed 向け電子メール全文検索アプリケーション PostgreSQL 8.2の全文検索機能を利用 Linux/Unix Windows 2000

More information

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

Postgres Plus Advanced Server 9.3パーティションテーブルの特徴と性能検証レポート Postgres Plus Advanced Server 9.3 パーティションテーブルの特徴と性能検証レポート ~ データロード編 ~ v1.1 テクノロジーコンサルティング事業統括オープンソース部高橋智雄 2014 年 7 月 変更履歴 版 日付 作成 修正者 説明 1.0 2014/5/19 日本 HP 高橋智雄 初版作成 1.1 2014/7/8 日本 HP 高橋智雄 表現を微修正 2 はじめに

More information

次期バージョン PostgreSQL 10 の 新機能とその後の方向性 SRA OSS, Inc. 日本支社 マーケティング部 PostgreSQL 技術グループ 長田 悠吾 db tech showcase OSS

次期バージョン PostgreSQL 10 の 新機能とその後の方向性 SRA OSS, Inc. 日本支社 マーケティング部 PostgreSQL 技術グループ 長田 悠吾 db tech showcase OSS 次期バージョン PostgreSQL 10 の 新機能とその後の方向性 SRA OSS, Inc. 日本支社 マーケティング部 PostgreSQL 技術グループ 長田 悠吾 db tech showcase OSS 2017 2017-06-16 自己紹介 長田 悠吾 ながた ゆうご 所属 SRA OSS, Inc. 日本支社 マーケティング部 PostgreSQL 技術グループ 業務 PostgreSQL

More information

Microsoft Word - Android_SQLite講座_画面800×1280

Microsoft Word - Android_SQLite講座_画面800×1280 Page 24 11 SQLite の概要 Android にはリレーショナルデータベースである SQLite が標準で掲載されています リレーショナルデータベースは データを表の形で扱うことができるデータベースです リレーショナルデータベースには SQL と呼ばれる言語によって簡単にデータの操作や問い合わせができようになっています SQLite は クライアントサーバ形式ではなく端末の中で処理が完結します

More information

自己紹介 長田悠吾 (Yugo Nagata) SRA OSS, Inc. 日本支社 PostgreSQL 技術支援 コンサルティング PostgreSQL インターナル講座講師 研究開発 Copyright 2018 SRA OSS, Inc. Japan All right

自己紹介 長田悠吾 (Yugo Nagata) SRA OSS, Inc. 日本支社 PostgreSQL 技術支援 コンサルティング PostgreSQL インターナル講座講師 研究開発 Copyright 2018 SRA OSS, Inc. Japan All right PostgreSQL 11 で登場した JIT コンパイルって 結局何者? (What is JIT Compilation Introduced in PostgreSQL 11? ) 長田悠吾 (Yugo Nagata)/ SRA OSS, Inc. 日本支社 PGConf.ASIA 2018 2018.12.12 自己紹介 長田悠吾 (Yugo Nagata) チーフエンジニア @ SRA OSS,

More information

結合演算 ( 復習 ) データベース論 (9) R 社員番号 氏名麻生太郎安部晋三与謝野馨森喜朗 部門経理課営業課総務課営業課 S 部門経理課営業課総務課 電話 問合せ言語と SQL(2) R S 社員番号

結合演算 ( 復習 ) データベース論 (9) R 社員番号 氏名麻生太郎安部晋三与謝野馨森喜朗 部門経理課営業課総務課営業課 S 部門経理課営業課総務課 電話 問合せ言語と SQL(2) R S 社員番号 結合演算 ( 復習 ) データベース論 (9) R 社員番号 046 064 011 011 氏名麻生太郎安部晋三与謝野馨森喜朗 部門総務課 S 部門総務課 電話 45 4567 問合せ言語と SQL(2) R S 社員番号 046 064 011 011 氏名麻生太郎安部晋三与謝野馨森喜朗 部門総務課 電話 45 4567 DB-9 4 結合演算 結合演算 ( 例題演習 ) R 社員番号 046

More information

1,.,,,., RDBM, SQL. OSS,, SQL,,.

1,.,,,., RDBM, SQL. OSS,, SQL,,. 1,.,,,., RDBM, SQL. OSS,, SQL,,. 3 10 10 OSS RDBMS SQL 11 10.1 OSS RDBMS............................ 11 10.1.1 PostgreSQL................................. 11 10.1.2 MySQL...................................

More information

Microsoft PowerPoint - db03-5.ppt

Microsoft PowerPoint - db03-5.ppt データベース言語 SQL リレーショナルデータモデルにおけるデータ操作言語 : リレーショナル代数 少なくともリレーショナル代数と同等のデータ検索能力をもつときリレーショナル完備という. リレーショナル代数はユーザフレンドリではない. 自然な英文による質問の表現が必要になる. リレーショナルデータベース言語 SQL 英文による簡単な構文 リレーショナル代数でできない, 合計, 平均, 最大などの計算機能の組み込み.

More information

標準化 補足資料

標準化 補足資料 高度専門データベース技術 SQL99 補足資料 ( 株 ) アイテック情報技術教育研究部 2012 年 2 月 14 日 ( はじめに ) この補足資料は,SQL99(ISO/IEC9075-2,JIS X3005-2) の必須機能 (Core SQL) のうち, SQL92に対し機能拡張が行われた部分で, 高度専門データベース技術 ( 以下, DB 技術 という ) に記載のないものについて記述する

More information

PostgreSQL10 を導入! 大規模データ分析事例からみる DWH としての PostgreSQL 活用のポイント 2017/12/5 株式会社 NTT データ 2017 NTT DATA

PostgreSQL10 を導入! 大規模データ分析事例からみる DWH としての PostgreSQL 活用のポイント 2017/12/5 株式会社 NTT データ 2017 NTT DATA PostgreSQL10 を導入! 大規模データ分析事例からみる DWH としての PostgreSQL 活用のポイント 2017/12/5 株式会社 NTT データ 2017 NTT DATA はじめに 近年の PostgreSQL は パラレルクエリをはじめとして 大量データに対して分析クエリを流すような DWH としての用途で活用できる機能が強化されています 本講演では DWH として PostgreSQL

More information

eラーニング資料 e ラーニングの制作目標 データベース編 41 ページデータベースの基本となる概要を以下に示す この内容のコースで eラーニングコンテンツを作成予定 データベース管理 コンピュータで行われる基本的なデータに対する処理は 次の 4 種類です 新しいデータを追加する 既存のデータを探索

eラーニング資料 e ラーニングの制作目標 データベース編 41 ページデータベースの基本となる概要を以下に示す この内容のコースで eラーニングコンテンツを作成予定 データベース管理 コンピュータで行われる基本的なデータに対する処理は 次の 4 種類です 新しいデータを追加する 既存のデータを探索 eラーニング資料 e ラーニングの制作目標 データベース編 41 ページデータベースの基本となる概要を以下に示す この内容のコースで eラーニングコンテンツを作成予定 データベース管理 コンピュータで行われる基本的なデータに対する処理は 次の 4 種類です 新しいデータを追加する 既存のデータを探索する 違うデータに変更する 要らなくなったデータを削除する 各システムごとに障害対策も含めて 正確にこのようなデータ処理のプログラムを作ることは大変なことです

More information

PostgreSQL 11 New Features

PostgreSQL 11 New Features 2018 年 5 月 25 日 PostgreSQL 11 新機能検証結果 (Beta 1) 日本ヒューレット パッカード株式会社 篠田典良 2017-2018 Hewlett-Packard Enterprise Japan Co, Ltd. 1 目次 目次... 2 1. 本文書について... 5 1.1 本文書の概要... 5 1.2 本文書の対象読者... 5 1.3 本文書の範囲... 5

More information

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

Web 環境におけるレイヤー別負荷の 2 違い DB サーバ AP サーバ 後ろのレイヤーほど負荷が高く ボトルネックになりやすい pgpool-ii 最新情報 開発中のメモリキャッシュ機能 について SRA OSS, Inc. 日本支社石井達夫 Web 環境におけるレイヤー別負荷の 2 違い DB サーバ AP サーバ 後ろのレイヤーほど負荷が高く ボトルネックになりやすい 3 キャッシュを活用して負荷を軽減 AP サーバ DB サーバ AP サーバで結果をキャッシュして返す DB サーバで結果をキャッシュして返す 4 キャッシュの実装例

More information

1 SQL Server SQL Oracle SQL SQL* Plus PL/SQL 2 SQL Server SQL Server SQL Oracle SQL SQL*Plus SQL Server GUI 1-1 osql 1-1 Transact- SQL SELECTFROM 058

1 SQL Server SQL Oracle SQL SQL* Plus PL/SQL 2 SQL Server SQL Server SQL Oracle SQL SQL*Plus SQL Server GUI 1-1 osql 1-1 Transact- SQL SELECTFROM 058 1 SQL Server SQL Oracle SQL SQL* Plus PL/SQL 2 SQL Server SQL Server SQL Oracle SQL SQL*Plus SQL Server GUI 1-1 osql 1-1 Transact- SQL SELECTFROM 058 2 Excel 1 SQL 1 SQL Server sp_executesql Oracle SQL

More information

appli_HPhi_install

appli_HPhi_install 2018/3/7 HΦ version 3.0.0 インストール手順書 (Linux 64 ビット版 ) 目次 1. アプリケーション概要...- 1-2. システム環境...- 1-3. 必要なツール ライブラリのインストール...- 1-1 cmake...- 2-2 numpy...- 3-4. アプリケーションのインストール...- 4-5. 動作確認の実施...- 5 - 本手順書は HΦ

More information

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

リレーショナルデータベース入門 SRA OSS, Inc. 日本支社 Copyright 2008 SRA OSS, Inc. Japan All rights reserved. 1 リレーショナルデータベース入門 SRA OSS, Inc. 日本支社 Copyright 2008 SRA OSS, Inc. Japan All rights reserved. 1 データベース とは? データ (Data) の基地 (Base) 実世界のデータを管理するいれもの 例えば 電話帳辞書メーラー検索エンジン もデータベースである Copyright 2008 SRA OSS, Inc.

More information

1.SqlCtl クラスリファレンス SqlCtl クラスのリファレンスを以下に示します メソッドの実行中にエラーが発生した場合は標準エラー出力にメッセージを出力します (1)Connect() メソッド データベースへ connect 要求を行います boolean Connect(String

1.SqlCtl クラスリファレンス SqlCtl クラスのリファレンスを以下に示します メソッドの実行中にエラーが発生した場合は標準エラー出力にメッセージを出力します (1)Connect() メソッド データベースへ connect 要求を行います boolean Connect(String 目次 1.SqlCtl クラスリファレンス 2 (1)Connect() メソッド 2 (2)DisConnect() メソッド 3 (3)Commit() メソッド 3 (4)Rollback() メソッド 4 2.SqlStm クラスリファレンス 5 (1)Prepare() メソッド 5 (2)Execute() メソッド 6 (3)Release() メソッド 6 (4)Immediate()

More information

PowerPoint Presentation

PowerPoint Presentation Webデザイン特別プログラムデータベース実習編 3 MySQL 演習, phpmyadmin 静岡理工科大学総合情報学部幸谷智紀 http://na-inet.jp/ RDB の基礎の基礎 RDB(Relational DataBase) はデータを集合として扱う データの取り扱いはテーブル (= 集合 ) の演算 ( 和集合, 積集合 ) と同じ データベースには複数のテーブルを作ることができる

More information

スライド 1

スライド 1 PostgreSQL 最新動向と バージョン 9.2 の展望 これからの OSS 活用と技術トレンド最前線 セミナー (6) 2012-03-26 16:15~17:00 SRA OSS, Inc. 日本支社 高塚遥 harukat@sraoss.co.jp Copyright 2012 SRA OSS, Inc. Japan All rights reserved. 1 PostgreSQL のこれまでと現在

More information

橡j_Oracle_whitepaper.PDF

橡j_Oracle_whitepaper.PDF Pervasive-Oracle 1 1 Pervasive Software Pervasive-Oracle / Pervasive Oracle Pervasive-Oracle ISV Pervasive-Oracle Pervasive.SQL Oracle 2 Pervasive-Oracle Pervasive-Oracle Pervasive.SQL Oracle Open Database

More information

Exam : J Title : Querying Microsoft SQL Server 2012 Version : DEMO 1 / 10

Exam : J Title : Querying Microsoft SQL Server 2012 Version : DEMO 1 / 10 PASSEXAM http://www.passexam.jp Exam : 70-461J Title : Querying Microsoft SQL Server 2012 Version : DEMO 1 / 10 1. あなたが ContosoDb 付きの Microsoft SQL Server 2012 のデータベースを管理します 展示に示すように テーブルが定義されています ( 図表ボタンをクリックします

More information

PA4

PA4 SQL チューニングによる 性能改善の効果とポイント 株式会社アクアシステムズ PPA4003J-00-00 株式会社アクアシステムズ Oracle データベースを専門とする技術者集団 Oracle チューニング & 監視ツール Performance Analyzer の開発 / 販売 Oracle 診断及びパフォーマンスチューニング Oracle データベースに関するコンサルティング Oracle

More information

,, create table drop table alter table

,, create table drop table alter table PostgreSQL 1 1 2 1 3,, 2 3.1 - create table........................... 2 3.2 - drop table............................ 3 3.3 - alter table............................ 4 4 - copy 5 4.1..................................

More information

Helix Swarm2018.1アップグレード手順

Helix Swarm2018.1アップグレード手順 2018 Helix Swarm2018.1 アップグレード手順 パッケージインストール編 目次 はじめに. 2 アップグレードの流れ 2 1. アップグレード準備. 3 1.1 リポジトリ設定の追加.. 3 1.2 GPG キー ( 公開鍵 ) インストール. 4 1.3 EPEL パッケージのインストール 4 2. Helix Swarm/ オプショナルパッケージのアップグレード 5 2.1 Helix

More information

インテル(R) Visual Fortran コンパイラ 10.0

インテル(R) Visual Fortran コンパイラ 10.0 インテル (R) Visual Fortran コンパイラー 10.0 日本語版スペシャル エディション 入門ガイド 目次 概要インテル (R) Visual Fortran コンパイラーの設定はじめに検証用ソースファイル適切なインストールの確認コンパイラーの起動 ( コマンドライン ) コンパイル ( 最適化オプションなし ) 実行 / プログラムの検証コンパイル ( 最適化オプションあり ) 実行

More information

Microsoft Word - tutorial3-dbreverse.docx

Microsoft Word - tutorial3-dbreverse.docx 株式会社チェンジビジョン使用バージョン :astah* 6.0, 6.1 [ ] サンプル サポート対象外 目次 DB リバースを使ってみよう ( サンプル サポート対象外 ) 2 ご利用の前に 2 予備知識 2 データベースの環境設定をしてみよう 2 astah* データベースリバースコンポーネントを使用してみよう 5 作成した asta ファイルを astah* professional で開いてみよう

More information

このドキュメントに記載されている情報 (URL 等のインターネット Web サイトに関する情報を含む ) は 将来予告なしに変更することがあります このドキュメントに記載された内容は情報提供のみを目的としており 明示または黙示に関わらず これらの情報についてマイクロソフトはいかなる責任も負わないもの

このドキュメントに記載されている情報 (URL 等のインターネット Web サイトに関する情報を含む ) は 将来予告なしに変更することがあります このドキュメントに記載された内容は情報提供のみを目的としており 明示または黙示に関わらず これらの情報についてマイクロソフトはいかなる責任も負わないもの 2 - SQL の最適化 このドキュメントに記載されている情報 (URL 等のインターネット Web サイトに関する情報を含む ) は 将来予告なしに変更することがあります このドキュメントに記載された内容は情報提供のみを目的としており 明示または黙示に関わらず これらの情報についてマイクロソフトはいかなる責任も負わないものとします お客様が本製品を運用した結果の影響については お客様が負うものとします

More information

PostgreSQL カンファレンス 2013 証券取引バックオフィスにおける Oracle から PostgreSQL への マイグレーション SBI ジャパンネクスト証券株式会社 イアン バーウィック

PostgreSQL カンファレンス 2013 証券取引バックオフィスにおける Oracle から PostgreSQL への マイグレーション SBI ジャパンネクスト証券株式会社 イアン バーウィック PostgreSQL カンファレンス 2013 証券取引バックオフィスにおける Oracle から PostgreSQL への マイグレーション SBI ジャパンネクスト証券株式会社 イアン バーウィック PostgreSQL カンファレンス 2013 証券取引バックオフィスにおける Oracle から PostgreSQL への マイグレーション SBI ジャパンネクスト証券株式会社 イアン バーウィック

More information

ShikumiBunkakai_2011_10_29

ShikumiBunkakai_2011_10_29 Explaining Explain 第3回 第21回しくみ分科会+アプリケーション分科会勉強会 2011年10月29日 PostgreSQLのしくみ分科会 田中 健一朗 1 本日のメニュー ExplainingExplainの第3回目 味付け 9.1対応 項目ごとにTips 2 本日の勉強会の目的 Explain Analyzeを使った 問題箇所の見つけ方と 対処方法を理解してもらう アジェンダ

More information

復習 (SQL 文 ) 3/6 復習 (SQL 文 ) 4/6 表の作成 CREATE TABLE...; 表の削除 DROP TABLE テーブル名 ; 表内のデータが全て消えてしまう. 表内のデータを得る SELECT 列名 FROM 表名...; 表にデータを挿入する. INSERT INTO

復習 (SQL 文 ) 3/6 復習 (SQL 文 ) 4/6 表の作成 CREATE TABLE...; 表の削除 DROP TABLE テーブル名 ; 表内のデータが全て消えてしまう. 表内のデータを得る SELECT 列名 FROM 表名...; 表にデータを挿入する. INSERT INTO SQLite SQLite3 http://www.ns.kogakuin.ac.jp/~ct13140/prog/ オープンソース ( フリー )RDBMS 実装の 1 個 http://www.sqlite.org/ 現在,3.6 が最新版. SQLite 2.x と SQLite 3.x が有名. 特徴 RDBMS サーバプロセスの起動が不要. 1 データベース,1 ファイル で格納.. つまり

More information

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション PostgreSQL のしくみ勉強会 (2009 年 6 月 20 日 ) PL/Proxy と pgbouncer 講師 : 桑村潤 補助 : さいとうひろし PL/Proxy, pgbouncer とは PL/Proxy,pgbouncer は Skype TM 社によって培われたテクノロジで 軽量かつ便利に PostgreSQL を活用できるものとして 公開された機能 pgbouncer はコネクションプーラー

More information

SOC Report

SOC Report PostgreSQL と OS Command Injection N T T コ ミ ュ ニ ケ ー シ ョ ン ズ株式会社 ソ リ ュ ー シ ョ ン サ ー ビ ス 部 第四エンジニアリング部門 セキュリティオペレーション担当 2011 年 10 月 14 日 Ver. 1.0 1. 調査概要... 3 2. POSTGRESQL を使った WEB アプリケーションでの OS COMMAND

More information

n n n ( ) n Oracle 16 PostgreSQL 3 MySQL

n n n ( ) n Oracle 16 PostgreSQL 3 MySQL SaaS CAM MACS PostgreSQL ~ ~ 7 PostgreSQL in 2014/02/07 n n n ( ) n Oracle 16 PostgreSQL 3 MySQL n SaaS CAM MACS n AWS n 1993 6 1 1999 4 1 C/S CAM MACS 2007 4 1 SaaS CAM MACS 2007 11 1 SaaS CAM MACS CAM

More information

Exam : 1z0-882 日本語 (JPN) Title : Oracle Certified Professional, MySQL 5.6 Developer Vendor : Oracle Version : DEMO 1 / 4 Get Latest & Valid 1z0-882-JP

Exam : 1z0-882 日本語 (JPN) Title : Oracle Certified Professional, MySQL 5.6 Developer Vendor : Oracle Version : DEMO 1 / 4 Get Latest & Valid 1z0-882-JP itexamdump 최고이자최신인 IT 인증시험덤프 http://www.itexamdump.com 일년무료업데이트서비스제공 Exam : 1z0-882 日本語 (JPN) Title : Oracle Certified Professional, MySQL 5.6 Developer Vendor : Oracle Version : DEMO 1 / 4 Get Latest

More information

橡実践Oracle Objects for OLE

橡実践Oracle Objects for OLE THE Database FOR Network Computing 2 1. 2 1-1. PL/SQL 2 1-2. 9 1-3. PL/SQL 11 2. 14 3. 16 3-1. NUMBER 16 3-2. CHAR/VARCHAR2 18 3-3. DATE 18 4. 23 4-1. 23 4-2. / 24 26 1. COPYTOCLIPBOARD 26 III. 28 1.

More information

PostgreSQL Plus 管理者ガイド

PostgreSQL Plus 管理者ガイド 2.4 旧バージョンからの移行 ここでは PostgreSQL Plus V1.0 および V1.1 から PostgreSQL Plus V2.0 にインスタンスの資産 を移行する手順について説明します PostgreSQL Plus V1.0 および V1.1 は PostgreSQL 7.3 をベースとしています また PostgreSQL Plus V2.0 は PostgreSQL 7.4

More information

10th Developer Camp - B5

10th Developer Camp - B5 B5 PHP テクニカルセッション Delphi for PHP で作るリッチコンテンツブログ エンバカデロ テクノロジーズエヴァンジェリスト高橋智宏 アジェンダ コンポーネントをフル活用しよう お馴染み データモジュール Blog データの表示用ページ Blog データの登録用ページ 2 コンポーネントをフル活用しよう 開発環境の進歩と退化 80 年代の IDE が登場エディタ + コマンドライン型の開発から脱却

More information

タイトルを1~2行で入力 (長文の場合はフォントサイズを縮小)

タイトルを1~2行で入力 (長文の場合はフォントサイズを縮小) 電力自由化を陰で支える PostgreSQL 2016 年 12 月 2 日株式会社 NTT データシステム技術本部 PGCONF.ASIA 発表資料 Copyright 2016 NTT DATA Corporation 社会インフラへ PostgreSQL を適用する道のり Copyright 2016 NTT DATA Corporation 2 3 スマートメーター運用管理システムの位置づけ

More information

Si 知識情報処理

Si 知識情報処理 242311 Si, 285301 MS 第 12 回 竹平真則 takemasa@auecc.aichi-edu.ac.jp 2015/12/21 1 本日の内容 1. 先週のおさらい 2. PHP のスクリプトを実際に動かしてみる 3. RDB についての説明 2015/12/21 2 資料の URL http://peacenet.info/m2is 2015/12/21 3 注意事項 ( その

More information

演習に必要な

演習に必要な 演習に必要な ソフトウェアの インストール手順 ウェブシステムデザインプログラム Version 2 contact@websys.edu.uec.ac.jp 目次 パッケージリポジトリの追加... 2 SQLite と SQLite を使用するためのライブラリのインストール... 3 Python 環境の構築... 4 準備... 4 Python 本体のインストール... 4 Django 開発環境のインストール...

More information

~~~~~~~~~~~~~~~~~~ wait Call CPU time 1, latch: library cache 7, latch: library cache lock 4, job scheduler co

~~~~~~~~~~~~~~~~~~ wait Call CPU time 1, latch: library cache 7, latch: library cache lock 4, job scheduler co 072 DB Magazine 2007 September ~~~~~~~~~~~~~~~~~~ wait Call CPU time 1,055 34.7 latch: library cache 7,278 750 103 24.7 latch: library cache lock 4,194 465 111 15.3 job scheduler coordinator slave wait

More information

Chapter Two

Chapter Two Database 第 8 回 :SQL 言語 ( データベース操作 ) 上智大学理工学部情報理工学科 高岡詠子 No reproduction or republication without written permission. 許可のない転載 再発行を禁止します 1 Schedule 日程 内容 第 1 回 10 月 6 日 ガイダンス, データベースとは? 第 2 回 10 月 13 日 三層スキーマ,

More information

スライド 0

スライド 0 ビギナーだから使いたい O/R マッパー ~Teng を使った開発 ~ Hirobanex(Akabane Hiroyuki) 2012-06-29@Perl Beginners #3 コンテンツ Teng を使いたい 3 つの理由 ビギナーにオススメの Teng の導入方法 本来の O/R マッパーの効用 1 Teng を使いたい 3 つの理由 DBI はよくわからん O/R マッパーだと開発が抜群に早くなる

More information

PostgreSQL

PostgreSQL PostgreSQL for IBM i 導入ガイド 目次 1. 事前準備 2. IBM i V5R4 及び V6R1 での導入方法 3. POSTGRES ユーザのプロファイルを作成する 4. PostgreSQL の導入 5. PostgreSQL の開始 6. PostgreSQL の確認 7. PostgreSQL の停止 8. IBM i V7R1 での導入方法 9. PHP のサンプルコード

More information

Oracle Database Connect 2017 JPOUG

Oracle Database Connect 2017 JPOUG Oracle Database Connect 2017 / JPOUG 異なるデータベース間の SQL 比較と Oracle Database 12c の新機能 Noriyoshi Shinoda March 8, 2017 自己紹介篠田典良 ( しのだのりよし ) 所属 日本ヒューレット パッカード株式会社テクノロジーコンサルティング事業統括 現在の業務 Oracle Database をはじめ

More information

Helix Swarm2018.1インストール手順

Helix Swarm2018.1インストール手順 2018 Helix Swarm2018.1 インストール手順 パッケージインストール編 目次 はじめに... 2 インストールの流れ... 2 1. インストール準備... 3 1.1 リポジトリ設定の追加... 3 1.2 GPG キー ( 公開鍵 ) インストール... 4 1.3 EPEL パッケージのインストール... 4 2. Helix Swarm/ オプショナルパッケージのインストール...

More information

0 第 4 書データベース操作 i 4.1 データベースへの接続 (1) データベースチェックポイントの追加 データベースチェックポイントを追加します (2)ODBC による接続 ODBC を使用してデータベースへ接続します SQL 文を手作業で指定する場合 最大フェッチ行数を指定する場合はここで最大行数を指定します ii 接続文字列を作成します 作成ボタンクリック > データソース選択 > データベース接続

More information

スライド 1

スライド 1 pgpool-ii によるオンメモリクエリキャッシュの実装 SRA OSS, Inc. 日本支社 pgpool-ii とは PostgreSQL 専用のミドルウェア OSS プロジェクト (BSD ライセンス ) proxy のように アプリケーションと PostgreSQL の間に入って様々な機能を提供 コネクションプーリング 負荷分散 自動フェイルオーバー レプリケーション クエリキャッシュ 導入事例

More information

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

第 1 章 条件分岐 この章では 条件に応じて処理を分岐する方法について説明します 1. CASE 式で複雑な条件分岐を実現 2. 関数を使用した条件分岐 3. MERGE 文による条件に応じた DML の実行 はじめに コース概要と目的 SQL での作業の幅を広げるための応用的なテクニックをご説明します また 効率性の向上や正しい結果を得 るための記述方法など 実践的な記述方法についても併せてご説明します 本コースは SQL の応用的な記述テクニックとしてどのようなものがあるかを 1 日で広く浅くご理解いた だくことを目的としたコースです 細かな構文やオプションの習得は目的としておりませんことをご了承 ください

More information

Caché SQL に関するよくある質問

Caché SQL に関するよくある質問 Caché SQL に関するよく ある質問 Version 5.1 2006-03-14 InterSystems Corporation 1 Memorial Drive Cambridge MA 02142 www.intersystems.com Caché SQL に関するよくある質問 Caché Version 5.1 2006-03-14 Copyright 2006 InterSystems

More information

本チュートリアルについて 14 部構成 比較的簡単なトピックから 各回 プログラミング言語 任意 チュートリアルで 新しい内容 宿題 プログラミング演習 次の週 結果について発表 もしくは話し合いをする スライドは Python で Python, C++, Java, Perl についての質問い答

本チュートリアルについて 14 部構成 比較的簡単なトピックから 各回 プログラミング言語 任意 チュートリアルで 新しい内容 宿題 プログラミング演習 次の週 結果について発表 もしくは話し合いをする スライドは Python で Python, C++, Java, Perl についての質問い答 自然言語処理プログラミング勉強会 0 プログラミング入門 Graham Neubig 奈良先端科学技術大学院大学 (NAIST) 1 本チュートリアルについて 14 部構成 比較的簡単なトピックから 各回 プログラミング言語 任意 チュートリアルで 新しい内容 宿題 プログラミング演習 次の週 結果について発表 もしくは話し合いをする スライドは Python で Python, C++, Java,

More information

ソフトウェアエンジニアリング - 機能 #54

ソフトウェアエンジニアリング - 機能 #54 ソフトウェアエンジニアリング - 機能 #54 GitBucket 3.11 の RPM を H2 database migration ツールを含めて作成する 2016/02/28 10:47 - 高橋徹 ステータス : 却下開始日 : 2016/02/28 優先度 : 通常期日 : 担当者 : 高橋徹進捗率 : 100% カテゴリ : 予定工数 : 0.00 時間 対象バージョン : Linux

More information

tkk0408nari

tkk0408nari SQLStatement Class Sql Database SQL Structured Query Language( ) ISO JIS http://www.techscore.com/tech/sql/02_02.html Database sql Perl Java SQL ( ) create table tu_data ( id integer not null, -- id aid

More information

日本オラクル株式会社

日本オラクル株式会社 FISC 6 Oracle Database 10g ~ ~ : 2005 7 26 : 2005 7 31 : 1.0 2004 4 (* ) FISC ) (* ) FISC 6 (* FISC 6 ) FISC 6 Oracle g Database 10 (FISC) http://www.fisc.or.jp FISC http://www.fisc.or.jp/info/info/050307-1.htm

More information

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション PL/Proxy と PgBouncer オープンセミナー 2009@ 徳島 (2009 年 10 月 03 日 ) 講師 : 桑村潤 日本 ユーザ会 のしくみ分科会 Copyright 2009 Japan Users Group PL/Proxy, PgBouncer とは Skype TM のバックエンドのために培われた技術 将来の 10 億ユーザ認証を目標とした高可用性重視の設計 を活用し

More information

Microsoft PowerPoint pptx

Microsoft PowerPoint pptx データベース 第 11 回 (2009 年 11 月 27 日 ) テーブル結合と集計 ( 演習 ) 第 11 回のテーマ 前回より シラバスから離れ 進捗状況に合わせて全体構成を変更しています テーマ1: テーブルの結合 テーマ 2: 結合した結果からの様々な検索 テーマ3: 集計の方法 今日学ぶべきことがら Select 文のさまざまな表現 Natural join sum(*) orrder

More information

データベースアクセス

データベースアクセス データベースアクセスコンポーネント 1. 概要 データベースアクセスコンポーネントとは SQL データベースにアクセスして SQL 文を実行することによりデータベース検索を行う機能を提供するコンポーネントです また データベースアクセスコンポーネントでは データベースの構成情報 接続情報 エラー情報等を取得することも可能です データベースアクセスコンポーネントは アプリケーションビルダーのメニューから以下のように選びます

More information

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

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

More information

ご利用のコンピュータを設定する方法 このラボの作業を行うには 事前設定された dcloud ラボを使用するか 自身のコンピュータをセットアップします 詳細については イベントの事前準備 [ 英語 ] とラボの設定 [ 英語 ] の両方のモジュールを参照してください Python を使用した Spar

ご利用のコンピュータを設定する方法 このラボの作業を行うには 事前設定された dcloud ラボを使用するか 自身のコンピュータをセットアップします 詳細については イベントの事前準備 [ 英語 ] とラボの設定 [ 英語 ] の両方のモジュールを参照してください Python を使用した Spar ご利用のコンピュータを設定する方法 このラボの作業を行うには 事前設定された dcloud ラボを使用するか 自身のコンピュータをセットアップします 詳細については イベントの事前準備 [ 英語 ] とラボの設定 [ 英語 ] の両方のモジュールを参照してください Python を使用した Spark API との通信 このラーニングモジュールでは Python を使用した Spark API とのインターフェイスを扱います

More information

Microsoft PowerPoint - 第5章補足-DB2組み込みSQL.ppt

Microsoft PowerPoint - 第5章補足-DB2組み込みSQL.ppt 開発編第 5 章補足 DB2 組み込み SQL 本書に含まれている情報は 正式な IBM のテストを受けていません また 明記にしろ 暗黙的にしろ なんらの保証もなしに配布されるものです この情報の使用またはこれらの技術の実施は いずれも 使用先の責任において行われるべきものであり それらを評価し 実際に使用する環境に統合する使用先の判断に依存しています それぞれの項目は

More information

Chapter Two

Chapter Two Database 第 9 回 :SQL 言語 ( データベース操作 : 集合関数 抽出条件 副問い合わせ ) 上智大学理工学部情報理工学科 高岡詠子 No reproduction or republication without written permission. 許可のない転載 再発行を禁止します 2011/12/8 2011 Eiko Takaoka All Rights Reserved.

More information

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション ネットワークプログラミング 演習 第 12 回 Web サーバ上で動作するプログラム 2 今日のお題 PHPのプログラム例 おみくじ アクセスカウンタ ファイルの扱い lock ファイルの所有者 許可と権限 PHP の文法 ( の一部 ) if, for, while の制御の構文は C 言語と似ている 型はあるが 明示的な宣言はしなくてよい 変数には型がない 変数の宣言はしなくてよい 変数名には

More information

DumpCollection IT Exam Training online / Bootcamp PDF and Testing Engine, study and practice

DumpCollection IT Exam Training online / Bootcamp   PDF and Testing Engine, study and practice DumpCollection IT Exam Training online / Bootcamp http://www.dumpcollection.com PDF and Testing Engine, study and practice Exam : 1z0-144 日本語 (JPN) Title : Oracle Database 11g: Program with PL/SQL Vendor

More information

この時お使いの端末の.ssh ディレクトリ配下にある known_hosts ファイルから fx.cc.nagoya-u.ac.jp に関する行を削除して再度ログインを行って下さい

この時お使いの端末の.ssh ディレクトリ配下にある known_hosts ファイルから fx.cc.nagoya-u.ac.jp に関する行を削除して再度ログインを行って下さい 20150901 FX10 システムから FX100 システムへの変更点について 共通... 1 Fortran の変更点... 2 C/C++ の変更点... 4 C の変更点... 5 C++ の変更点... 7 共通 1. プログラミング支援ツールの更新 -FX システムについて旧バージョンのプログラミング支援ツールは利用できません 下記からダウンロードの上新規インストールが必要です https://fx.cc.nagoya-u.ac.jp/fsdtfx100/install/index.html

More information

PowerPoint -O80_REP.PDF

PowerPoint -O80_REP.PDF Oracle8 Core Technology Seminar 1997109,31 Oracle8 OS: UNIX Oracle8 : Release8.0.3 Oracle8 Quick Start Package Lesson 5 -- Enhancements to Distributed Facilities Oracle8 -- - Oracle8 LOB Oracle8 -- - Updates

More information

CodeGear Developer Camp

CodeGear Developer Camp B4 InterBase テクニカルセッション InterBase セキュリティパワーアップ セキュリティ改善のコツとツール キムラデービー代表木村明治 ( きむらめいじ ) http://kimuradb.com 1 アジェンダ DBセキュリティとは? InterBase 本体が持つセキュリティ機能 通信経路の暗号化 格納データの暗号化 2 DB セキュリティとは? 3 概略全体図 InterBase

More information

MxLogonサーバサイドツールキット用UI

MxLogonサーバサイドツールキット用UI 1 MxLogon サーバツールキット用 Access プログラム MxLogon サーバツールキットでは ユーザが直接 MySQL データベースを操作するには SQL 文を発 する方法しか用意されていません 誰でも容易にデータベースを操作できるよう Access プログラムを別途用意しました この Access プログラムは MxLogon サーバツールキットの一部ではありません ( 別途提供されています

More information

test

test PostgreSQL CTO 5 2011 5 2011 9 2012 5 2013 10 2013 11 1 5000 JOIN 4 1. 2. 5 6 http://www.slideshare.net/mistakah/gpsgnss Location Base ( ) PostgreSQL x PostgreSQL 2011/8 MySQL MongoDB PostgreSQL GIS 2011/9

More information

Calpont InfiniDBマルチUM同期ガイド

Calpont InfiniDBマルチUM同期ガイド Calpont InfiniDB マルチ UM 同期ガイド Release 3.5.1 Document Version 3.5.1-1 December 2012 2801 Network Blvd., Suite 220 : Frisco, Texas 75034 : 972.999.1355 info@calpont.com : www.calpont.com Copyright 2012 Calpont

More information

Microsoft Word - CBSNet-It連携ガイドver8.2.doc

Microsoft Word - CBSNet-It連携ガイドver8.2.doc (Net-It Central 8.2) 本ガイドでは ConceptBase Search Lite.1.1 と Net-It Central 8.2 の連携手順について説明します 目次 1 はじめに...2 1.1 本書について...2 1.2 前提条件...2 1.3 システム構成...2 2 ConceptBase のインストール...3 2.1 インストールと初期設定...3 2.2 動作確認...3

More information

Symantec AntiVirus の設定

Symantec AntiVirus の設定 CHAPTER 29 Symantec AntiVirus エージェントを MARS でレポートデバイスとしてイネーブルにするためには Symantec System Center コンソールをレポートデバイスとして指定する必要があります Symantec System Center コンソールはモニタ対象の AV エージェントからアラートを受信し このアラートを SNMP 通知として MARS に転送します

More information

Microsoft Word - CygwinでPython.docx

Microsoft Word - CygwinでPython.docx Cygwin でプログラミング 2018/4/9 千葉 数値計算は計算プログラムを書いて行うわけですが プログラムには様々な 言語 があるので そのうちどれかを選択する必要があります プログラム言語には 人間が書いたプログラムを一度計算機用に翻訳したのち計算を実行するものと 人間が書いたプログラムを計算機が読んでそのまま実行するものとがあります ( 若干不正確な説明ですが ) 前者を システム言語

More information

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション イチからはじめる Linux サーバ構築ハンズオン 事前準備用資料 株式会社リーデックス はじめに 弊社の勉強会にご興味を持っていただきありがとうございます Linuxサーバ構築ハンズオンを受講いただくにあたり 必要なソフトのインストールと環境構築の手順をまとめました 資料はWindows 環境前提で記載してありますが Macでも少しの読み替えで対応できると思います 当日の時間内にインストールからスタートするとインターネットの回線状況によっては環境構築だけで

More information

プレポスト【解説】

プレポスト【解説】 コース名 : シェルの機能とプログラミング ~UNIX/Linux の効率的使用を目指して ~ 1 UNIX および Linux の主な構成要素は シェル コマンド カーネルです プロセスとは コマンドやプログラムを実行する単位のことなので プロセスに関する記述は誤りです UNIX および Linux のユーザーインターフェースは シェル です コマンドを解釈するという機能から コマンドインタープリタであるともいえます

More information

Microsoft Word - J-jdev_dba_db_developers.doc

Microsoft Word - J-jdev_dba_db_developers.doc Oracle JDeveloper 2006 1 : Oracle Oracle JDeveloper 2 Oracle JDeveloper :... 2... 4... 4... 4... 5... 6 SQL... 7... 8... 8 SQL... 10 PL/SQL... 11 PL/SQL... 11 Code Editor PL/SQL... 12 Navigator Structure...

More information

24th Embarcadero Developer Camp

24th Embarcadero Developer Camp 17 Th Developer Camp B4 Delphi/C++Builder テクニカルワークショップ Delphi / C++Builder 旧バージョンアプリケーションの移行 エンバカデロ テクノロジーズサポートチーム with 高橋智宏 1 17 Th Developer Camp Delphi Q1 2 midas.dll Q. 別々のバージョンで作成したデータベースアプリケーションがあります

More information

スライド 1

スライド 1 XML with SQLServer ~let's take fun when you can do it~ Presented by 夏椰 ( 今川美保 ) Agenda( その 1) XML XML XSLT XPath XML Schema XQuery Agenda( その 2) SQLServer における XML XML 型 XML Schema XQuery & XPath チェック制約

More information

Citus 7.5検証結果

Citus 7.5検証結果 2018 年 7 月 2 日 Citus 検証結果 日本ヒューレット パッカード株式会社 篠田典良 2018 Hewlett-Packard Enterprise Japan Co, Ltd. 1 目次 目次... 2 1. 本文書について... 4 1.1 本文書の概要... 4 1.2 本文書の対象読者... 4 1.3 本文書の範囲... 4 1.4 本文書の対応バージョン... 4 1.5

More information

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション 演習 9 入力した条件に従いデータベースからデータを抽出する 1 演習 9 製品情報を取得するサンプル パソコン製品情報が格納された表から 任意のメーカー IDを取得するプログラムの構造を検討する sample1.htm sample1.asp SDEV_MST_PRODUCT 2 データベース クライアント サーバー PC_KATABAN KOBAN MAKER_ID HD-0001 1 NED

More information

Proc luaを初めて使ってみた -SASでの処理を条件に応じて変える- 淺井友紀 ( エイツーヘルスケア株式会社 ) I tried PROC LUA for the first time Tomoki Asai A2 Healthcare Corporation

Proc luaを初めて使ってみた -SASでの処理を条件に応じて変える- 淺井友紀 ( エイツーヘルスケア株式会社 ) I tried PROC LUA for the first time Tomoki Asai A2 Healthcare Corporation Proc luaを初めて使ってみた -SASでの処理を条件に応じて変える- 淺井友紀 ( エイツーヘルスケア株式会社 ) I tried PROC LUA for the first time Tomoki Asai A2 Healthcare Corporation 要旨 : 実行されるコードを分岐 繰り返すためには SAS マクロが用いられてきた 本発表では SAS マクロではなく Proc Lua

More information

Oracle9i Application Server for Windows NT/2000 リリース・ノート追加情報 リリース

Oracle9i Application Server for Windows NT/2000 リリース・ノート追加情報 リリース Oracle9i Application Server for Windows NT/2000 リリース ノート追加情報 リリース 1.0.2.1 2001 年 5 月 部品番号 : J03818-01 原典情報 : Oracle9i Application Server Release Notes Addendum, Release 1.0.2.1 for Windows NT/2000 (A88731-02)

More information

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

SRA OSS, Inc. のご紹介 1999 年より PostgreSQL サポートを中心に OSS ビジネスを開始 2005 年に現在の形に至る 主なビジネス PostgreSQL, Zabbix などの OSS のサポート コンサルティング 導入構築 PowerGres ファミリーの開発 販売 Amazon Aurora with PostgreSQL Compatibility を評価して SRA OSS, Inc. 日本支社 取締役支社長 石井達夫 SRA OSS, Inc. のご紹介 1999 年より PostgreSQL サポートを中心に OSS ビジネスを開始 2005 年に現在の形に至る 主なビジネス PostgreSQL, Zabbix などの OSS のサポート コンサルティング

More information

スライド 1

スライド 1 Zabbix のデータベース ベンチマークレポート PostgreSQL vs MySQL Yoshiharu Mori SRA OSS Inc. Japan Agenda はじめに Simple test 大量のアイテムを設定 Partitioning test パーティションイングを利用して計測 Copyright 2013 SRA OSS, Inc. Japan All rights reserved.

More information

Microsoft Word - SQLServer_fra_Linux_v1.1.docx

Microsoft Word - SQLServer_fra_Linux_v1.1.docx Micro Focus Visual COBOL 2.1J for x64/x86 Linux Microsoft ODBC Driver 11 for SQL Server 動作検証検証結果報告書 2013 年 7 月 24 日マイクロフォーカス株式会社 Copyright 2013 Micro Focus. All Rights Reserved. 記載の会社名 製品名は 各社の商標または登録商標です

More information

インストールマニュアル

インストールマニュアル Install manual by SparxSystems Japan Enterprise Architect 日本語版インストールマニュアル 1 1. はじめに このインストールマニュアルは Enterprise Architect 日本語版バージョン 14.1 をインストールするための マニュアルです インストールには管理者権限が必要です 管理者権限を持つユーザー (Administrator

More information

スライド 1

スライド 1 Zabbix で PostgreSQL の監視を行おう ~pg_monz のご紹介 ~ SRA OSS,Inc. 日本支社盛宣陽 Copyright 2014 SRA OSS,Inc.Japan All rights reserved. 1 PostgreSQL の課題 DB としての基本機能 性能は商用 DB と比べても引けをとらない 運用面には課題あり どのようにして運用するのか? 効果的な監視方法は?

More information

问题集 ITEXAMPASS 1 年で無料進級することに提供する

问题集 ITEXAMPASS   1 年で無料進級することに提供する 问题集 ITEXAMPASS https://www.itexampass.jp 1 年で無料進級することに提供する Exam : 70-762 Title : Developing SQL Databases Version : DEMO 1 / 10 1. ドラッグドロップ注 : この質問は 同じシナリオを使用する一連の質問の一部です あなたの便宜のために シナリオは各質問で繰り返されます 各質問は異なる目標と答えの選択を提示しますが

More information

PowerPoint Presentation

PowerPoint Presentation MySQL Workbench を使ったデータベース開発 日本オラクル株式会社山崎由章 / MySQL Senior Sales Consultant, Asia Pacific and Japan 1 Copyright 2013, Oracle and/or its affiliates. All rights reserved. 以下の事項は 弊社の一般的な製品の方向性に関する概要を説明するものです

More information

利用者

利用者 Regional SNS 開発環境構築ガイド 2012 年 2 月 29 日 株式会社ネットワーク応用通信研究所 目次 1. はじめに... 1 2. 前提条件... 1 3. 必要なソフトウェア構成... 1 4. ソフトウェアの導入手順... 1 4.1. 必要ファイルのダウンロード... 1 4.2. 環境設定コマンドの実行... 2 4.3. RegionalSNS の実行... 2 4.4.

More information

Microsoft Word - PGI WorkstationServer事前準備 doc

Microsoft Word - PGI WorkstationServer事前準備 doc PGI Workstation/Server インストール事前準備について (Red Hat Enterprise Linux for AMD64, SUSE Linux) 2007 年 11 月版 (Rev. 7.1-A) 株式会社ソフテック HPC ソリューション部 (http://www.softek.co.jp/spg/) SofTek 目次 1 はじめに...1 2 Red Hat Enterprise

More information

PowerPoint Presentation

PowerPoint Presentation 製品ソフトウェアのセットアップ手順 UNIX/Linux 編 1. セットアップファイルの選択開発環境 / 実行環境 / バージョン /Hotfix/ インストール先 OS 2. 対象セットアップファイルのダウンロード開発環境の場合は 2 つのファイルが対象 3. ソフトウェア要件の確認 4. ソフトウェアのインストール 5. ライセンスの認証 1 1. セットアップファイルの選択 選択項目選択肢該当チェック

More information

スライド 1

スライド 1 PostgreSQL レプリケーション ~pgpool/slony-i の運用性とその評価 ~ SRA OSS, Inc. 日本支社 http://www.sraoss.co.jp/ 佐藤友章 sato@sraoss.co.jp Copyright 2007 SRA OSS, Inc. Japan All rights reserved. 1 アジェンダ はじめに レプリケーションとは? pgpool/slony-i

More information

別紙 : 検証環境の構築手順 ( 章 ) 1. サーバ設定 1.1 IP アドレス設定 サーバは以下の 6 台を用いる pgpool-ii サーバ 2 台 DB サーバ 3 台 上位サーバ 1 台 OS は全サーバで CentOS 6.4 x86_64 とする pgpool-ii のサー

別紙 : 検証環境の構築手順 ( 章 ) 1. サーバ設定 1.1 IP アドレス設定 サーバは以下の 6 台を用いる pgpool-ii サーバ 2 台 DB サーバ 3 台 上位サーバ 1 台 OS は全サーバで CentOS 6.4 x86_64 とする pgpool-ii のサー 別紙 : 検証環境の構築手順 (13.1.1 章 ) 1. サーバ設定 1.1 IP アドレス設定 サーバは以下の 6 台を用いる pgpool-ii サーバ 2 台 DB サーバ 3 台 上位サーバ 1 台 OS は全サーバで CentOS 6.4 x86_64 とする pgpool-ii のサーバは NIC を 3 つ持っているとする (eth0, eth1, eth2) このうち eth0 をサービス提供と

More information

1. 開発ツールの概要 1.1 OSS の開発ツール本書では OSS( オープンソースソフトウェア ) の開発ツールを使用します 一般に OSS は営利企業ではない特定のグループが開発するソフトウェアで ソースコードが公開されており無償で使用できます OSS は誰でも開発に参加できますが 大規模な

1. 開発ツールの概要 1.1 OSS の開発ツール本書では OSS( オープンソースソフトウェア ) の開発ツールを使用します 一般に OSS は営利企業ではない特定のグループが開発するソフトウェアで ソースコードが公開されており無償で使用できます OSS は誰でも開発に参加できますが 大規模な 1. 開発ツールの概要 1.1 OSS の開発ツール本書では OSS( オープンソースソフトウェア ) の開発ツールを使用します 一般に OSS は営利企業ではない特定のグループが開発するソフトウェアで ソースコードが公開されており無償で使用できます OSS は誰でも開発に参加できますが 大規模な OSS の場合 企業などから支援を受けて安定した財政基盤の下で先端的なソフトウェアを開発しています 企業にとっても

More information