PostgreSQL 内部で effective_cache_size をどのように活用しているのか(もしくは活用していないのか)を確認します。
文章の書き方で最初に学ぶべきなのは構成です。文章の構成力を上げるためにお勧めの本を紹介します。
PostgreSQL の ANALYZE は pg_class 更新でトランザクション・セマンティクスに従いません。今回の記事ではこれを実験で検証します。
PDU 申請の EDUCATION - Read(読書)で監査対象に選ばれた場合の対応を説明します。
PostgreSQL インデックス肥大化によるインデックスコストへの影響をモデル化しました。また、実装の調査も行っています。
VS Code + GDB でリモートデバッグする手順について PostgreSQL を題材に解説します。
PostgreSQL の configure オプションを変更して再ビルドする際には make distclean を実行すべきです。
VS Code Remote - SSH extension は初回接続時に VS Code Server をリモートサーバのホームディレクトリにインストールしています。
Hyper-Vでは特定のワークロードで論理プロセッサのコンテキストスイッチが多発し、パフォーマンス低下を招くことがあるようです。
Hyper-V のルートスケジューラはラウンドロビン方式のスケジュールモデルです。また、仕事の無い VP に対してタイムスライスの割り当てはありません。
Hyper-V のゲストOS では VP と LP の対応が動的に変化します。また、LP の利用状況は環境やワークロードによって左右されます。
クライアントシステムでもハイパーバイザースケジューラの設定をすることは可能です。ただし、「ルートスケジューラ」のみ公式にサポートされる構成であることに注意が必要です。
Windows 10 の Hyper-V でベンチマークを測定していると、複数 CPU 動作時に大きく性能劣化しました。これは「ルートスケジューラ」に原因があるのかもしれません。
Hyper-V で LP と VP の対応関係は動的です。この検証結果をまとめました。
SQL の COUNT(*) と COUNT(1) は同じ結果が得られます。また、COUNT() 内の定数が何であっても結果は同じです。
PostgreSQL の pg_stat_activity ビューで待機イベントの情報を収集すると、ボトルネック調査に役立つかもしれません。
PostgreSQL の結合テーブル数と計画時間の関係を調べました。計画時間は join_collapse_limit, geqo_threshold といったパラメータの影響を受けることが分かりました。
PostgreSQL の join_collapse_limit がプランナに与える影響を実験から推測しました。平坦化の概念をつかむことができます。
PostgreSQL のデッドロック検出待機時間パラメータである deadlock_timeout の見直しに、どれほどの優先度で取組むべきなのかを、デッドロック検出処理の仕組みの観点から調査しました。
OSS-DB Gold Ver.2.0 を合格することができました。教材・勉強方法・振り返りなどをまとめました。
「PostgreSQL 高度技術者育成テキスト」内の摸擬問題集に対し、OSS-DB Gold Ver.2.0 をベースとした差分と誤記の修正をまとめました。
PostgreSQL の式インデックス(関数インデックス)もテーブルと同様に統計情報の収集対象です。よって、式インデックス作成後に ANALYZE を実行しないと、正しく活用されません。また、pg_stats ビューは式インデックスの統計情報も参照できます。
OSS-DB Silver Ver.2.0 を受験し、無事に合格することができました。今回の挑戦に向けて、どのような準備を行ったかまとめます。
Excelは日時をシリアル値で管理しています。本記事ではシリアル値の計算と活用法を解説します。
Hyper-V の仮想マシンで perf の一部項目を出力できませんでした。これを構成バージョンの見直しとパフォーマンス監視コンポーネントを有効にすることで解決できました。解決までの流れを説明します。
PostgreSQL ではプリペアド文を繰り返し実行していると、汎用的な実行計画を作成することがあります。この実行計画の切り替えがいつ行われるのかを調べました。
DEIM2022 「近代的トランザクション処理技法」の聴講メモです。メモは口頭説明を中心にまとめています。資料を併せてご参照ください。
PostgreSQL の一時バッファの開放はセッション終了時となります。一時テーブルの削除タイミングやトランザクションの終了タイミングではありません。
PostgreSQL には統計情報の度数分布と実際の最小値・最大値が乖離した場合の影響を抑える機能があります。この機能によって実行計画の推定行数がどのように変化するかを検証しました。
PostgreSQL でも指数表記を解釈してくれます。ですが、指数表記の暗黙的キャストが意図した型になるとは限らないことに注意が必要です。