アーキテクチャ
PostgreSQL の WITH 句を活用することで、クエリの可読性向上だけでなく、実行計画改善の手段となるかもしれません。
データベースを扱う方にとって、トランザクションは当たり前の存在です。そんな当たり前のものがどういった理論と技術で実現されているか、そしてそれらが今も進化していることをご存知でしょうか。トランザクションをもっと深く知りたい方に向けて、参考と…
本記事では、機械学習における CV と DCV の内部で、どのデータを用いて何を行っているのかに踏み込んで説明します。
はじめに PostgreSQLの実行計画の読み解き方は公式マニュアルで説明されています。PostgreSQL 10 でのリンクを示します。 14.1. EXPLAINの利用ですが、若干分かり辛い個所があるため、本エントリでは以下の観点に着目して補足することにします。 ノードの実…
PostgreSQLのfillfactorとパフォーマンスの関係について分析しました。HOT更新以外にも影響があることに要注意です。
PostgreSQL の join_collapse_limit がプランナに与える影響を実験から推測しました。平坦化の概念をつかむことができます。
VS Code + GDB でリモートデバッグする手順について PostgreSQL を題材に解説します。
PostgreSQL の pg_stat_activity ビューで待機イベントの情報を収集すると、ボトルネック調査に役立つかもしれません。
Hyper-V で LP と VP の対応関係は動的です。この検証結果をまとめました。
クライアントシステムでもハイパーバイザースケジューラの設定をすることは可能です。ただし、「ルートスケジューラ」のみ公式にサポートされる構成であることに注意が必要です。
はじめに 書籍「ソフトウェア要求のためのビジュアルモデル(以下、本エントリ内では「本書」とする)」の「第1章 RML概論」で機能要求・ビジネスルール・非機能要求について定義している。ただ、その定義についてわかりづらい部分があったので、改めてまと…
目的 テーブル結合の外部表(駆動表)はデータセットの小さい方を選ぶ可能性が高いです。データセットの小さい方を選ぶことでI/Oコストの観点から有利になることを示します。また、オプティマイザの外部表・内部表選択基準の例を挙げます。 疑問 表Rと表Sの…
目的 PostgreSQLの実行計画のハッシュノード(Hash)に出力されるバケット数(Buckets)とバッチ数(Batches)について解説を行います。また、バッチ数とパフォーマンスの関係についても触れます。このテーマについて Pat Shaughnessy さんが英語の解説記事を公開…
はじめに PostgreSQLは商用DBに比べて書籍が少なく、まとまった情報が入手しにくいです。また、有志の方がPostgreSQLに関する資料を公開していますが、散在しており、せっかくの有益な情報にアクセスしにくい状況にあります。そこで、本エントリではPostgreS…
PostgreSQL のデッドロック検出待機時間パラメータである deadlock_timeout の見直しに、どれほどの優先度で取組むべきなのかを、デッドロック検出処理の仕組みの観点から調査しました。
はじめに ネストしたサブクエリ(副問合せ)はEXISTS条件でよく利用されます。ですが、このサブクエリのフィルタ条件次第ではパフォーマンス問題となることがあります。これを Oracle Database で改善する例がOracleの記事(以下、「記事」とだけ表記した場…
PostgreSQL の実行計画において、Bitmap Index Scan の後に実行される Bitmap Heap Scan で "Recheck cond" と出力されます。Index Scan をしているにも関わらず、なぜ Heap Scan でインデックスの検索条件を再チェックする必要があるのか解説します。
はじめに NTTデータ テクノロジーカンファレンス 2019(NTTデータ テクノロジーカンファレンス 2019 ~ 未来を創る NTT DATA の確かな技術力 ~) 【事例】横浜銀行のマルチクラウド戦略とそれを支える「A-gate」 の聴講メモです。横浜銀行のA-gate採用はNTT…
PostgreSQL の auto_explain モジュールを有効化することでパフォーマンスにどの程度影響を与えるのか、検証を行いました。
PostgreSQL の結合テーブル数と計画時間の関係を調べました。計画時間は join_collapse_limit, geqo_threshold といったパラメータの影響を受けることが分かりました。
はじめに PostgreSQL 8.4.1 で pg_dump と index の再作成を同時に実行すると "ERROR: cache lookup failed for index" の発生することがあるのはなぜか?との質問に、tom lane さんがこんな回答をしていました。 pg_dump runs in a serializable transactio…
本記事では PostgreSQL の EXPLAIN コマンドの TIMING パラメータのオーバーヘッドがどこから生じているかを解説します。
PostgreSQL インデックス肥大化によるインデックスコストへの影響をモデル化しました。また、実装の調査も行っています。
PostgreSQL は "soft edge" があるときに、ロック取得順序を入れ替えてデッドロックの解消を試みます。
VS Code Remote - SSH extension は初回接続時に VS Code Server をリモートサーバのホームディレクトリにインストールしています。
Hyper-Vでは特定のワークロードで論理プロセッサのコンテキストスイッチが多発し、パフォーマンス低下を招くことがあるようです。
Hyper-V のルートスケジューラはラウンドロビン方式のスケジュールモデルです。また、仕事の無い VP に対してタイムスライスの割り当てはありません。
Hyper-V のゲストOS では VP と LP の対応が動的に変化します。また、LP の利用状況は環境やワークロードによって左右されます。
Windows 10 の Hyper-V でベンチマークを測定していると、複数 CPU 動作時に大きく性能劣化しました。これは「ルートスケジューラ」に原因があるのかもしれません。
DEIM2022 「近代的トランザクション処理技法」の聴講メモです。メモは口頭説明を中心にまとめています。資料を併せてご参照ください。