KEMBAR78
Daftar
Login
PostgreSQLのSQL処理の流れとMVCC (第48回 PostgreSQLアンカンファレンス 発表資料) | PDF
Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
Submit search
EN
NI
Uploaded by
NTT DATA Technology & Innovation
539 views
PostgreSQLのSQL処理の流れとMVCC (第48回 PostgreSQLアンカンファレンス 発表資料)
PostgreSQLのSQL処理の流れとMVCC (第48回 PostgreSQLアンカンファレンス 発表資料) 2024年8月29日(木) NTTデータグループ Innovation技術部 松永 創
Technology
◦
Read more
1
Save
Share
Embed
1
/ 19
2
/ 19
3
/ 19
4
/ 19
5
/ 19
6
/ 19
7
/ 19
8
/ 19
9
/ 19
10
/ 19
11
/ 19
12
/ 19
13
/ 19
14
/ 19
Most read
15
/ 19
Most read
16
/ 19
17
/ 19
18
/ 19
Most read
19
/ 19
More Related Content
PPTX
PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)
by
NTT DATA Technology & Innovation
PDF
Memoizeの仕組み(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)
by
NTT DATA Technology & Innovation
PDF
Pacemaker + PostgreSQL レプリケーション構成(PG-REX)のフェイルオーバー高速化
by
kazuhcurry
PDF
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(PostgreSQL Conference Japa...
by
NTT DATA Technology & Innovation
PPTX
SQLチューニング入門 入門編
by
Miki Shimogai
PPTX
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
by
NTT DATA Technology & Innovation
PDF
pg_stat_activityの不可解な観測結果の謎 (第47回 PostgreSQLアンカンファレンス@オンライン 発表資料)
by
NTT DATA Technology & Innovation
PPTX
PostgreSQL 14 モニタリング新機能紹介(PostgreSQL カンファレンス #24、2021/06/08)
by
NTT DATA Technology & Innovation
PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)
by
NTT DATA Technology & Innovation
Memoizeの仕組み(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)
by
NTT DATA Technology & Innovation
Pacemaker + PostgreSQL レプリケーション構成(PG-REX)のフェイルオーバー高速化
by
kazuhcurry
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(PostgreSQL Conference Japa...
by
NTT DATA Technology & Innovation
SQLチューニング入門 入門編
by
Miki Shimogai
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
by
NTT DATA Technology & Innovation
pg_stat_activityの不可解な観測結果の謎 (第47回 PostgreSQLアンカンファレンス@オンライン 発表資料)
by
NTT DATA Technology & Innovation
PostgreSQL 14 モニタリング新機能紹介(PostgreSQL カンファレンス #24、2021/06/08)
by
NTT DATA Technology & Innovation
What's hot
PDF
PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)
by
Hironobu Suzuki
PDF
心理的安全性を 0から80ぐらいに上げた話
by
Yusuke Hisatsu
PPTX
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~
by
Miki Shimogai
PDF
速習!論理レプリケーション ~基礎から最新動向まで~(PostgreSQL Conference Japan 2022 発表資料)
by
NTT DATA Technology & Innovation
PDF
PostgreSQL17対応版 EXPLAINオプションについて (第49回PostgreSQLアンカンファレンス@東京 発表資料)
by
NTT DATA Technology & Innovation
PDF
PostgreSQLアーキテクチャ入門(INSIGHT OUT 2011)
by
Uptime Technologies LLC (JP)
PDF
Apache Spark の紹介(前半:Sparkのキホン)
by
NTT DATA OSS Professional Services
PDF
PostgreSQL 15の新機能を徹底解説
by
Masahiko Sawada
PDF
PostgreSQL 15 開発最新情報
by
Masahiko Sawada
PPTX
Dockerからcontainerdへの移行
by
Akihiro Suda
PDF
スケールアップファーストのNoSQL、ScyllaDB(スキュラDB)
by
昌桓 李
PDF
pg_walinspectについて調べてみた!(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)
by
NTT DATA Technology & Innovation
PDF
Linux女子部 systemd徹底入門
by
Etsuji Nakai
PDF
あなたの知らないPostgreSQL監視の世界
by
Yoshinori Nakanishi
PPTX
世の中のPostgreSQLエンジニアのpsql設定(第34回PostgreSQLアンカンファレンス@オンライン 発表資料)
by
NTT DATA Technology & Innovation
PPTX
PostgreSQL14の pg_stat_statements 改善(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
by
NTT DATA Technology & Innovation
PDF
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)
by
NTT DATA Technology & Innovation
PPTX
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
by
NTT DATA Technology & Innovation
PDF
トランザクション処理可能な分散DB 「YugabyteDB」入門(Open Source Conference 2022 Online/Fukuoka 発...
by
NTT DATA Technology & Innovation
PDF
PostgreSQL のイケてるテクニック7選
by
Tomoya Kawanishi
PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)
by
Hironobu Suzuki
心理的安全性を 0から80ぐらいに上げた話
by
Yusuke Hisatsu
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~
by
Miki Shimogai
速習!論理レプリケーション ~基礎から最新動向まで~(PostgreSQL Conference Japan 2022 発表資料)
by
NTT DATA Technology & Innovation
PostgreSQL17対応版 EXPLAINオプションについて (第49回PostgreSQLアンカンファレンス@東京 発表資料)
by
NTT DATA Technology & Innovation
PostgreSQLアーキテクチャ入門(INSIGHT OUT 2011)
by
Uptime Technologies LLC (JP)
Apache Spark の紹介(前半:Sparkのキホン)
by
NTT DATA OSS Professional Services
PostgreSQL 15の新機能を徹底解説
by
Masahiko Sawada
PostgreSQL 15 開発最新情報
by
Masahiko Sawada
Dockerからcontainerdへの移行
by
Akihiro Suda
スケールアップファーストのNoSQL、ScyllaDB(スキュラDB)
by
昌桓 李
pg_walinspectについて調べてみた!(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)
by
NTT DATA Technology & Innovation
Linux女子部 systemd徹底入門
by
Etsuji Nakai
あなたの知らないPostgreSQL監視の世界
by
Yoshinori Nakanishi
世の中のPostgreSQLエンジニアのpsql設定(第34回PostgreSQLアンカンファレンス@オンライン 発表資料)
by
NTT DATA Technology & Innovation
PostgreSQL14の pg_stat_statements 改善(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
by
NTT DATA Technology & Innovation
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)
by
NTT DATA Technology & Innovation
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
by
NTT DATA Technology & Innovation
トランザクション処理可能な分散DB 「YugabyteDB」入門(Open Source Conference 2022 Online/Fukuoka 発...
by
NTT DATA Technology & Innovation
PostgreSQL のイケてるテクニック7選
by
Tomoya Kawanishi
Similar to PostgreSQLのSQL処理の流れとMVCC (第48回 PostgreSQLアンカンファレンス 発表資料)
PDF
C16 45分でわかるPostgreSQLの仕組み by 山田努
by
Insight Technology, Inc.
PDF
データベース12 - トランザクションと同時実行制御
by
Kenta Oku
PDF
PostgreSQLのパラレル化に向けた取り組み@第30回(仮名)PostgreSQL勉強会
by
Shigeru Hanada
PPT
Transactional Information Systems入門
by
nobu_k
PDF
位置情報を使ったサービス「スマポ」をPostgreSQLで作ってみた db tech showcase 2013 Tokyo
by
Yoshiyuki Asaba
PDF
PostgreSQLレプリケーション10周年!徹底紹介!(PostgreSQL Conference Japan 2019講演資料)
by
NTT DATA Technology & Innovation
PPTX
PostgreSQLモニタリングの基本とNTTデータが追加したモニタリング新機能(Open Source Conference 2021 Online F...
by
NTT DATA Technology & Innovation
PDF
Kof2016 postgresql-9.6
by
Toshi Harada
PDF
PostgreSQLアーキテクチャ入門(PostgreSQL Conference 2012)
by
Uptime Technologies LLC (JP)
PDF
PostgreSQL 9.6 新機能紹介
by
Masahiko Sawada
PDF
トランザクションの並行処理制御
by
Takashi Hoshino
PDF
並列クエリを実行するPostgreSQLのアーキテクチャ
by
Kohei KaiGai
PDF
NTT DATA と PostgreSQL が挑んだ総力戦
by
NTT DATA OSS Professional Services
PDF
Chugokudb18_1
by
Kosuke Kida
PDF
PostgreSQL10徹底解説
by
Masahiko Sawada
PDF
Isolation Level について
by
Takashi Hoshino
PDF
PostgreSQLによるデータ分析ことはじめ
by
Ohyama Masanori
PDF
アーキテクチャから理解するPostgreSQLのレプリケーション
by
Masahiko Sawada
PDF
PostgreSQL運用管理入門
by
Yoshiyuki Asaba
PPTX
PostgreSQLモニタリング機能の現状とこれから(Open Developers Conference 2020 Online 発表資料)
by
NTT DATA Technology & Innovation
C16 45分でわかるPostgreSQLの仕組み by 山田努
by
Insight Technology, Inc.
データベース12 - トランザクションと同時実行制御
by
Kenta Oku
PostgreSQLのパラレル化に向けた取り組み@第30回(仮名)PostgreSQL勉強会
by
Shigeru Hanada
Transactional Information Systems入門
by
nobu_k
位置情報を使ったサービス「スマポ」をPostgreSQLで作ってみた db tech showcase 2013 Tokyo
by
Yoshiyuki Asaba
PostgreSQLレプリケーション10周年!徹底紹介!(PostgreSQL Conference Japan 2019講演資料)
by
NTT DATA Technology & Innovation
PostgreSQLモニタリングの基本とNTTデータが追加したモニタリング新機能(Open Source Conference 2021 Online F...
by
NTT DATA Technology & Innovation
Kof2016 postgresql-9.6
by
Toshi Harada
PostgreSQLアーキテクチャ入門(PostgreSQL Conference 2012)
by
Uptime Technologies LLC (JP)
PostgreSQL 9.6 新機能紹介
by
Masahiko Sawada
トランザクションの並行処理制御
by
Takashi Hoshino
並列クエリを実行するPostgreSQLのアーキテクチャ
by
Kohei KaiGai
NTT DATA と PostgreSQL が挑んだ総力戦
by
NTT DATA OSS Professional Services
Chugokudb18_1
by
Kosuke Kida
PostgreSQL10徹底解説
by
Masahiko Sawada
Isolation Level について
by
Takashi Hoshino
PostgreSQLによるデータ分析ことはじめ
by
Ohyama Masanori
アーキテクチャから理解するPostgreSQLのレプリケーション
by
Masahiko Sawada
PostgreSQL運用管理入門
by
Yoshiyuki Asaba
PostgreSQLモニタリング機能の現状とこれから(Open Developers Conference 2020 Online 発表資料)
by
NTT DATA Technology & Innovation
More from NTT DATA Technology & Innovation
PDF
SAFe実践から見えた、フレームワークより大切な組織変革の道程(Scrum Fest Sendai 2025 発表資料)
by
NTT DATA Technology & Innovation
PDF
開発中の新機能 Spark Declarative Pipeline に飛びついてみたが難しかった(JEDAI DAIS Recap#2 講演資料)
by
NTT DATA Technology & Innovation
PDF
PostgreSQL18新機能紹介(db tech showcase 2025 発表資料)
by
NTT DATA Technology & Innovation
PDF
PGConf.dev 2025 参加レポート (JPUG総会併設セミナー2025 発表資料)
by
NTT DATA Technology & Innovation
PDF
Can We Use Rust to Develop Extensions for PostgreSQL? (POSETTE: An Event for ...
by
NTT DATA Technology & Innovation
PDF
つくって壊して直して学ぶ Database on Kubernetes (CloudNative Days Summer 2025 発表資料)
by
NTT DATA Technology & Innovation
PDF
2025年現在のNewSQL (最強DB講義 #36 発表資料)
by
NTT DATA Technology & Innovation
PDF
Java in Japan: A Journey of Community, Culture, and Global Integration (JavaO...
by
NTT DATA Technology & Innovation
PDF
Unveiling the Hidden Layers of Java Class Files: Beyond Bytecode (Devnexus 2025)
by
NTT DATA Technology & Innovation
PDF
論理レプリケーションのアーキテクチャ (第52回 PostgreSQLアンカンファレンス@オンライン 発表資料)
by
NTT DATA Technology & Innovation
PDF
実はアナタの身近にある!? Linux のチェックポイント/レストア機能 (NTT Tech Conference 2025 発表資料)
by
NTT DATA Technology & Innovation
PDF
Apache Sparkに対するKubernetesのNUMAノードを意識したリソース割り当ての性能効果 (Open Source Conference ...
by
NTT DATA Technology & Innovation
PDF
PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...
by
NTT DATA Technology & Innovation
PDF
pgbenchのスレッドとクライアント (第51回 PostgreSQLアンカンファレンス@オンライン 発表資料)
by
NTT DATA Technology & Innovation
PDF
PostgreSQLのgitレポジトリから見える2024年の開発状況 (第51回 PostgreSQLアンカンファレンス@オンライン 発表資料)
by
NTT DATA Technology & Innovation
PDF
ストリーム処理はデータを失うから怖い?それ、何とかできますよ! 〜Apahe Kafkaを用いたストリーム処理における送達保証〜 (Open Source...
by
NTT DATA Technology & Innovation
PDF
生成AI時代のPostgreSQLハイブリッド検索 (第50回PostgreSQLアンカンファレンス@オンライン 発表資料)
by
NTT DATA Technology & Innovation
PDF
DAIS2024参加報告 ~Spark中心にしらべてみた~ (JEDAI DAIS Recap 講演資料)
by
NTT DATA Technology & Innovation
PDF
PostgreSQLのHTAP適応について考える (PostgreSQL Conference Japan 2024 講演資料)
by
NTT DATA Technology & Innovation
PDF
静かに変わってきたクラスファイルを詳細に調べて楽しむ(JJUG CCC 2024 Fall講演資料)
by
NTT DATA Technology & Innovation
SAFe実践から見えた、フレームワークより大切な組織変革の道程(Scrum Fest Sendai 2025 発表資料)
by
NTT DATA Technology & Innovation
開発中の新機能 Spark Declarative Pipeline に飛びついてみたが難しかった(JEDAI DAIS Recap#2 講演資料)
by
NTT DATA Technology & Innovation
PostgreSQL18新機能紹介(db tech showcase 2025 発表資料)
by
NTT DATA Technology & Innovation
PGConf.dev 2025 参加レポート (JPUG総会併設セミナー2025 発表資料)
by
NTT DATA Technology & Innovation
Can We Use Rust to Develop Extensions for PostgreSQL? (POSETTE: An Event for ...
by
NTT DATA Technology & Innovation
つくって壊して直して学ぶ Database on Kubernetes (CloudNative Days Summer 2025 発表資料)
by
NTT DATA Technology & Innovation
2025年現在のNewSQL (最強DB講義 #36 発表資料)
by
NTT DATA Technology & Innovation
Java in Japan: A Journey of Community, Culture, and Global Integration (JavaO...
by
NTT DATA Technology & Innovation
Unveiling the Hidden Layers of Java Class Files: Beyond Bytecode (Devnexus 2025)
by
NTT DATA Technology & Innovation
論理レプリケーションのアーキテクチャ (第52回 PostgreSQLアンカンファレンス@オンライン 発表資料)
by
NTT DATA Technology & Innovation
実はアナタの身近にある!? Linux のチェックポイント/レストア機能 (NTT Tech Conference 2025 発表資料)
by
NTT DATA Technology & Innovation
Apache Sparkに対するKubernetesのNUMAノードを意識したリソース割り当ての性能効果 (Open Source Conference ...
by
NTT DATA Technology & Innovation
PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...
by
NTT DATA Technology & Innovation
pgbenchのスレッドとクライアント (第51回 PostgreSQLアンカンファレンス@オンライン 発表資料)
by
NTT DATA Technology & Innovation
PostgreSQLのgitレポジトリから見える2024年の開発状況 (第51回 PostgreSQLアンカンファレンス@オンライン 発表資料)
by
NTT DATA Technology & Innovation
ストリーム処理はデータを失うから怖い?それ、何とかできますよ! 〜Apahe Kafkaを用いたストリーム処理における送達保証〜 (Open Source...
by
NTT DATA Technology & Innovation
生成AI時代のPostgreSQLハイブリッド検索 (第50回PostgreSQLアンカンファレンス@オンライン 発表資料)
by
NTT DATA Technology & Innovation
DAIS2024参加報告 ~Spark中心にしらべてみた~ (JEDAI DAIS Recap 講演資料)
by
NTT DATA Technology & Innovation
PostgreSQLのHTAP適応について考える (PostgreSQL Conference Japan 2024 講演資料)
by
NTT DATA Technology & Innovation
静かに変わってきたクラスファイルを詳細に調べて楽しむ(JJUG CCC 2024 Fall講演資料)
by
NTT DATA Technology & Innovation
Recently uploaded
PDF
DX人材育成 サービスデザインで実現する「巻き込み力」の育て方 by Graat
by
Graat(グラーツ)
PDF
「似ているようで微妙に違う言葉」2025/10/17の勉強会で発表されたものです。
by
iPride Co., Ltd.
PPTX
How to buy a used computer and use it with Windows 11
by
Atomu Hidaka
PPTX
FOSS4G Japan 2025 - QGISでスムーズに地図を比較 - QMapCompareプラグインの紹介
by
Raymond Lay
PDF
技育祭2025秋 サボろうとする生成AIの傾向と対策 登壇資料(フューチャー渋川)
by
Yoshiki Shibukawa
PPTX
「Drupal SDCについて紹介」2025/10/17の勉強会で発表されたものです。
by
iPride Co., Ltd.
PDF
FOSS4G Japan 2024 ハザードマップゲームの作り方 Hazard Map Game QGIS Plugin
by
Raymond Lay
PDF
FOSS4G Hokkaido - QFieldをランナーのために活用した - QField for runners
by
Raymond Lay
DX人材育成 サービスデザインで実現する「巻き込み力」の育て方 by Graat
by
Graat(グラーツ)
「似ているようで微妙に違う言葉」2025/10/17の勉強会で発表されたものです。
by
iPride Co., Ltd.
How to buy a used computer and use it with Windows 11
by
Atomu Hidaka
FOSS4G Japan 2025 - QGISでスムーズに地図を比較 - QMapCompareプラグインの紹介
by
Raymond Lay
技育祭2025秋 サボろうとする生成AIの傾向と対策 登壇資料(フューチャー渋川)
by
Yoshiki Shibukawa
「Drupal SDCについて紹介」2025/10/17の勉強会で発表されたものです。
by
iPride Co., Ltd.
FOSS4G Japan 2024 ハザードマップゲームの作り方 Hazard Map Game QGIS Plugin
by
Raymond Lay
FOSS4G Hokkaido - QFieldをランナーのために活用した - QField for runners
by
Raymond Lay
PostgreSQLのSQL処理の流れとMVCC (第48回 PostgreSQLアンカンファレンス 発表資料)
1.
© 2024 NTT
DATA Group Corporation © 2024 NTT DATA Group Corporation 第48回 PostgreSQLアンカンファレンス@オンライン PostgreSQLの SQL処理の流れ と MVCC 2024年8月29日(木) 株式会社NTTデータグループ Innovation技術部 松永 創
2.
© 2024 NTT
DATA Group Corporation 2 自己紹介 名前 所属 業務 経歴 松永 創(まつなが はじめ) 株式会社NTTデータグループ Innovation技術部 PostgreSQLのサポート、コミュニティ開発、等 社会人6年目、今年度からPostgreSQLに注力
3.
© 2024 NTT
DATA Group Corporation 3 はじめに 本資料では、PostgreSQLのSQL処理の一連の流れを把握することを目的に、以下について整理する • SQL処理の流れ • サーバ接続 • 簡易問い合わせの処理の流れ • トランザクションの同時実行制御 • MVCC • トランザクション分離レベル
4.
© 2024 NTT
DATA Group Corporation 4 01 SQL処理の流れ
5.
© 2024 NTT
DATA Group Corporation 5 サーバ接続 PostgreSQLは、1つのクライアントプロセスに1つのバックエンドプロセスを割り当てるクライアント/サーバモデル構成である • postmasterと呼ばれるプロセスが接続要求を監視し、要求を検出すると新しいバックエンドプロセスを生成する • バックエンドとクライアントの間で認証のためのやり取りが1回以上行われる • 認証が完了すると、クライアントプロセスは接続されたバックエンドプロセスに問い合わせを送ることができる PostgreSQL: Documentation: 17: 50.2. How Connections Are Established:https://www.postgresql.org/docs/17/connect-estab.html クライアント PostgreSQLサーバ postmaster クライアント backend backend backend ①接続要求 user, database,… ②バックエンド生成 凡例 ⑤問い合わせ ③認証 プロセス ④認証完了 … クライアント pg_hba.conf の 情報と突き合わせ、 認証方式を選択
6.
© 2024 NTT
DATA Group Corporation 6 簡易問い合わせ(Simple Query) 基本的な流れ PostgreSQLにおけるSQL処理の流れは以下のとおり PostgreSQLサーバ Backendプロセス ①Parser (パース処理) ②Analyze・Rewrite (アナライズ処理・リライト処理) ③Planner(Optimizer) (実行計画の生成) ④Executor (実行) 統計情報 システム カタログ 構文解析ツリー 問い合わせツリー 実行計画 クライアント 問い合わせ テーブル/ インデックス SQL 実行結果 解析ルール PostgreSQL: Documentation: 17: 50.1. The Path of a Query:https://www.postgresql.org/docs/17/query-path.html
7.
© 2024 NTT
DATA Group Corporation 7 簡易問い合わせ(Simple Query) ①Parser:パース処理 クライアントから受け取ったSQL文に文法的な誤りがないか確認し、内部で利用しやすい構造体にマッピングする 構文解析の結果は、構文解析ツリー(RawStmt構造体)としてアナライズに引き渡される SELECT name FROM employee WHERE ・・・ SQL文をトークンに分割 (解析器はflex(フレックス)*1) 文法確認・マッピング (解析器はbison(バイソン)*2) 字句解析 構文解析 SELECT FROM WHERE name employee ・・・ SELECT name ターゲットはname ・・・ コマンド種類は SELECT文 構文解析ツリー Parser 解析ルール (scan.l) 解析ルール (gram.y) トークン要求 トークン提供 文字列の 最後まで 繰り返し *2) Bison - GNU Project - Free Software Foundation https://www.gnu.org/software/bison/ *1) westes/flex: The Fast Lexical Analyzer https://github.com/westes/flex ①Parser ②Analyze・Rewrite ③Planner ④Executor PostgreSQL: Documentation: 17: 50.3. The Parser Stage:https://www.postgresql.org/docs/17/parser-stage.html 例)
8.
© 2024 NTT
DATA Group Corporation 8 簡易問い合わせ(Simple Query) ②Analyze・Rewrite:アナライズ処理・リライト処理 構文解析ツリーの語義解釈 と 問い合わせツリー(Query構造体)の構築 を実施する その後、問い合わせツリーの書き換え を実施してプランナに引き渡す 構文解析ツリー カタログから実際の情報を取得し、 問い合わせツリーを構築 ビュー定義に従って 問い合わせツリーを書き換え Analyze Rewrite FROM salary FROM (SELECT employee… 問い合わせツリー ビューを実際のテーブルに 対する副問い合わせに書き換え 例) salary は employee を 用いたビューとすると・・・ システム カタログ システム カタログ ①Parser ②Analyze・Rewrite ③Planner ④Executor PostgreSQL: Documentation: 17: 50.3. The Parser Stage:https://www.postgresql.org/docs/17/parser-stage.html ※テーブルが存在しない場合は、 このタイミングでエラーとなる • テーブルのOID※ • 列名 (例.SELECT * の場合) • 型のOID など
9.
© 2024 NTT
DATA Group Corporation 9 簡易問い合わせ(Simple Query) ③Planner(Optimizer):実行計画の生成 Rewriteで書き換えられた問い合わせツリーを入力にして実行計画(PlannedStmt構造体)を生成する 問い合わせツリーを最適化 様々な式の簡略化を実施 例えば・・・ • FROM句のサブクエリを親クエリ にマージ可能か • 冗長な条件の削除 パスの探索・選択を行い、 実行計画を生成 • テーブルのアクセス方式 (SeqScan, IndexScan,…) • テーブルの結合方式 (Nested Loop Join, Sort Merge Join, Hash Join) • 結合順序 ⇒組み合わせ候補を作成し、 実行コストが一番低いものを選択 前処理 プラン作成 Planner 問い合わせツリー 実行計画 統計情報 ①Parser ②Analyze・Rewrite ③Planner ④Executor 例)A &(B&C) ⇒ A & B & C PostgreSQL: Documentation: 17: 39.1. The Query Tree:https://www.postgresql.org/docs/17/querytree.html
10.
© 2024 NTT
DATA Group Corporation 10 簡易問い合わせ(Simple Query) ④Executor:実行 Plannerで生成された実行計画に従ってテーブルやインデックスの読み込み・書き込みを行う 実行計画 実行計画に従ってスキャンや結合、ソートなどを実施し、WALデータも書き込む 例) Executor 実行結果 ①Parser ②Analyze・Rewrite ③Planner ④Executor 共有バッファ ストレージ postgres=# EXPLAIN SELECT name FROM employee WHERE code = 100; QUERY PLAN ---------------------------------------------------------- Seq Scan on employee (cost=0.00..17.75 rows=3 width=98) Filter: (code = 100) (2 rows) SeqScan PlannedStmt WALバッファ WALファイル
11.
© 2024 NTT
DATA Group Corporation 11 02 トランザクションの同時実行制御 (MVCC)
12.
© 2024 NTT
DATA Group Corporation 12 トランザクション処理の要件 ACID特性 トランザクション処理には、「ACID特性」と呼ばれる4つの要件が存在する • 原子性(Atomicity) • 複数の処理をひとまとまりとし、これらの処理が「すべて実行された」か「すべて実行されていないか」のどちらかになること • 一貫性(Consistency) • トランザクションの実行前後で整合性が保たれた状態であること • 独立性(Isolation) • 実行中のトランザクションが他のトランザクションに影響を与えないこと • 永続性(Durability) • コミットされたトランザクションの結果は永続的に保存されること
13.
© 2024 NTT
DATA Group Corporation 13 トランザクション分離レベル 分離レベル と 並行処理で問題となる現象 SQL標準規格では、トランザクションの分離を4種類のレベルで定義している トランザクションの並列実行で問題となる現象のうち、各分離レベルで発生を許さないものが定められている 分離レベル Dirty Read Nonrepeatable Read Phantom Read Serialization Anomaly Read uncommitted 許容※ 可能性あり 可能性あり 可能性あり Read committed 安全 可能性あり 可能性あり 可能性あり Repeatable read 安全 安全 許容※ 可能性あり Serializable 安全 安全 安全 安全 ※PostgreSQLでは発生しない Dirty Read Tx.A Tx.B 1000 900 UPDATE 別Tx.の未コミットのデータを読み込む 900 SELECT Nonrepeatable Read 再読込みしたデータが1回目と2回目で異なる Tx.A Tx.B 1000 900 UPDATE COMMIT 900 SELECT 1000 SELECT Phantom Read 複数行を取得する問い合わせの再実行で結果が異なる Tx.A Tx.B 1000 INSERT COMMIT SELECT SELECT 2000 1000 2000 1000 2000 3000 1000 2000 3000 3000 PostgreSQL: Documentation: 17: 13.2. Transaction Isolation:https://www.postgresql.org/docs/17/transaction-iso.html デフォルト 今回、 Serialization Anomalyは割愛
14.
© 2024 NTT
DATA Group Corporation 14 トランザクションの同時実行制御 MVCC(Multiversion Concurrency Control)1/2 追記型アーキテクチャのPostgreSQLは、データの一貫性を多版型同時実行制御MVCCを使って管理する MVCCの利点は、トランザクションごとに異なる版を用いるため、読み込みと書き込みが互いをブロックしない • XID(トランザクションID):各トランザクションに対して昇順に払い出される一意なID • xmin/xmax:タプルを追加/削除する際、実行したトランザクションのXIDを挿入するシステム列 PostgreSQL: Documentation: 17: 13.1. Introduction:https://www.postgresql.org/docs/17/mvcc-intro.html Tx.A(XID=103) BEGIN; UPDATE accounts SET balance=9000 WHERE name =‘豊洲太郎’; UPDATE accounts SET balance=21000 WHERE name =‘月島花子’; COMMIT; xmin xmax name balance 010 103 豊洲太郎 10,000 011 103 月島花子 20,000 012 0 木場新一 0 103 0 豊洲太郎 9,000 103 0 月島花子 21,000 Tx.B (XID104)から見たとき、 異なるTxによって削除(されようと) していることは分かるが、 XID103が実行中orコミット済 なのか判断がつかない ⇒ xmin/xmaxだけでは 可視性を判断できない PostgreSQL: Documentation: 17: 5.6. System Columns:https://www.postgresql.org/docs/17/ddl-system-columns.html accounts SELECT balance FROM accounts WHERE name =‘月島花子’; Tx.B(XID=104)
15.
© 2024 NTT
DATA Group Corporation 15 トランザクションの同時実行制御 MVCC(Multiversion Concurrency Control)2/2 自身のXID, タプルの xmin/xmax に加えて、以下の情報を基に可視性を判断する • CLOG : 各トランザクションのステータスを管理するデータ、この情報によりコミットされた変更か判断が可能 • スナップショット : ある時点におけるインスタンス全体のトランザクション状況の断面 トランザクション分離レベルの制御に利用 PostgreSQL: Documentation: 17: 9.27. System Information Functions and Operators:https://www.postgresql.org/docs/17/functions-info.html#FUNCTIONS-INFO-SNAPSHOT xmin xmax name balance 010 103 豊洲太郎 10,000 011 103 月島花子 20,000 012 0 木場新一 0 103 0 豊洲太郎 9,000 103 0 月島花子 21,000 accounts SELECT balance FROM accounts WHERE name =‘月島花子’; CLOG 101 Abort 102 Committed 103 In Progress 104 In Progress xmin = 103(実行中で最小のXID) xmax = 103(完了した最大のXID+1) xip_list =103,104 (実行中のXID) スナップショット(構造体) Tx.B(XID=104) Tx.A(XID=103) BEGIN; UPDATE accounts SET balance=9000 WHERE name =‘豊洲太郎’; UPDATE accounts SET balance=21000 WHERE name =‘月島花子’; COMMIT;
16.
© 2024 NTT
DATA Group Corporation 16 トランザクション分離レベル 分離レベル と 並行処理で問題となる現象 SQL標準規格では、トランザクションの分離を4種類のレベルで定義している トランザクションの並列実行で問題となる現象のうち、各分離レベルで発生を許さないものが定められている 分離レベル Dirty Read Nonrepeatable Read Phantom Read Serialization Anomaly Read uncommitted 許容※ 可能性あり 可能性あり 可能性あり Read committed 安全 可能性あり 可能性あり 可能性あり Repeatable read 安全 安全 許容※ 可能性あり Serializable 安全 安全 安全 安全 ※PostgreSQLでは発生しない Dirty Read Tx.A Tx.B 1000 900 UPDATE 別Tx.の未コミットのデータを読み込む 900 SELECT Nonrepeatable Read 再読込みしたデータが1回目と2回目で異なる Tx.A Tx.B 1000 900 UPDATE COMMIT 900 SELECT 1000 SELECT Phantom Read 複数行を取得する問い合わせの再実行で結果が異なる Tx.A Tx.B 1000 INSERT COMMIT SELECT SELECT 2000 1000 2000 1000 2000 3000 1000 2000 3000 3000 PostgreSQL: Documentation: 17: 13.2. Transaction Isolation:https://www.postgresql.org/docs/17/transaction-iso.html デフォルト 今回、 Serialization Anomalyは割愛 再掲 2つの分離レベルにおける スナップショットの取り方を次で説明
17.
© 2024 NTT
DATA Group Corporation 17 トランザクションの同時実行制御 スナップショットの取得タイミング(Read committed) トランザクションの分離レベルによってスナップショットの取得タイミングは異なる Read committed Tx.A (104) Tx.B (103) 問い合わせの直前までにコミットされたデータのみを参照する(ただし、自身のトランザクション内で更新した結果は未コミットでも参照する) SELECT問い合わせは、その問い合わせが実行を開始した時点のデータベースのスナップショットを参照する xmin = 103 xmax = 103 xip_list =103,104 Snapshot xmin = 104 xmax = 104 xip_list =104 Snapshot SELECT * UPDATE xmin xmax name balance 010 0 豊洲太郎 10,000 011 0 月島花子 20,000 012 0 木場新一 0 010 103 豊洲太郎 10,000 011 103 月島花子 20,000 012 0 木場新一 0 103 0 豊洲太郎 9,000 103 0 月島花子 21,000 COMMIT 豊洲太郎 10,000 月島花子 20,000 木場新一 0 SELECT * 豊洲太郎 9,000 月島花子 21,000 木場新一 0 PostgreSQL: Documentation: 17: 13.2. Transaction Isolation:https://www.postgresql.org/docs/17/transaction-iso.html BEGIN BEGIN
18.
© 2024 NTT
DATA Group Corporation 18 トランザクションの同時実行制御 スナップショットの取得タイミング(Repeatable read) トランザクションの分離レベルによってスナップショットの取得タイミングは異なる Repeatable read Tx.A (104) Tx.B (103) トランザクション開始までにコミットされたデータのみを参照する(ただし、自身のトランザクション内で更新した結果は未コミットでも参照する) トランザクションの最初のトランザクション制御以外の文の開始時点のスナップショットを見る SELECT * UPDATE COMMIT 豊洲太郎 10,000 月島花子 20,000 木場新一 0 PostgreSQL: Documentation: 17: 13.2. Transaction Isolation:https://www.postgresql.org/docs/17/transaction-iso.html SELECT * 豊洲太郎 10,000 月島花子 20,000 木場新一 0 xmin = 103 xmax = 103 xip_list =103,104 Snapshot 010 103 豊洲太郎 10,000 011 103 月島花子 20,000 012 0 木場新一 0 103 0 豊洲太郎 9,000 103 0 月島花子 21,000 BEGIN BEGIN xmin xmax name balance 010 0 豊洲太郎 10,000 011 0 月島花子 20,000 012 0 木場新一 0