ablog

不器用で落着きのない技術者のメモ

PostgreSQL

macOS に psql をインストールする

インストール インストールする $ brew install postgresql インストールされたバージョンを確認する $ psql -V psql (PostgreSQL) 12.3 接続する $ psql "host=aurora-postgres-116.cluster-******.ap-northeast-1.rds.amazonaws.com user=awsuser dbname=m…

PostgreSQL の 接続・クエリ・切断のログは Process ID で紐付けできる

PostgreSQL で接続・クエリ・切断のログは Process ID で紐付けることができる。今回は Aurora PostgreSQL 互換 11.6 で確認した。 設定 パラメータグループで以下を設定する(今回は接続・接続のログのみ確認した)。 log_connections = 1 log_disconnectio…

PostgreSQLのオプティマイザ統計情報を確認する

PostgreSQL のオプティマイザ統計情報を確認する pg_stat_user_tables n_live_tup: 行数 n_dead_tup: 不要な(ガベージとなっている)行数 last_analyze: ANALYZE された日時 aurora-postgres107 awsuser 13:44 => select * from pg_stat_user_tables; relid |…

pgbench で PostgreSQL に半永久的に負荷をかけ続ける

pgbench で PostgreSQL に半永久的に負荷をかけ続ける手順をメモ。 スクリプト pgbench_infinite_loop.sh #!/bin/bash export LANG=C export PGPASSWORD=<パスワード> ENDPOINT=<ホスト名> BASE_NAME=$(basename $0) STEM="${BASE_NAME%.*}" DATE=`date '+%Y…

Oracle->PostgreSQL移行関連

AWS SCT 評価レポート AWS Schema Conversion Tool 評価レポート - AWS Schema Conversion Tool ora2pg Ora2Pg : Migrates Oracle to PostgreSQL Oracle Database 11g/12c To Amazon Aurora with PostgreSQL Compatibility (9.6.x) Migration Playbook https…

PostgreSQL のクエリーリライトはコストベースではなく一定のルールでリライトされる

PostgreSQL のクエリーリライトはプラン(実行計画)を生成する前に一定のルールで書き換えられる。 http://ikubo.x0.com/PostgreSQL/pdf/IK07_postgres_041214.pdf リライタのエントリポイントは、pg_rewrite_queries() であり、クエリの木のリストをもらっ…

Aurora Postgres で実行したクエリをログに出力する

設定 DB パラメータグループを作成して以下の通り設定する log_statement:all log_min_duration_statement: 1 log_destination: csvlog DBインスタンスに作成したパラメータグループを設定する 設定確認 AWSマネジメントコンソールで確認できるが、接続して…

PostgreSQLのメモ

select * from pg_available_extensions;

Aurora Postgres で track_activity_query_size を変更して pg_stat_activity.query に記録されるクエリの長さを拡張する

設定変更 パラメーターグループを作成する パラメータグループファミリー: aurora-postgresql9.6 タイプ: DB Parameter Group グループ名: custom.aurora-postgresql9.6 (任意) 説明: Custom parameter group for aurora-postgresql9.6(任意) track_activity…

psqlメモ

設定 ~/.psqlrc \set PROMPT1 '%[%033[1;32m%]%n %`date +%H:%M` %R%#%[%033[0m%] ' \set PROMPT2 '%[%033[1;32m%]%R%#%[%033[0m%] ' \timing on \set HISTSIZE 1000000 psqlコマンドのお勧め設定 - 青木ブログ コマンド例 ログイン psql "host=dc18xl8.****…

PostgreSQL で "Too many open files in system" が発生する

事象 以下のエラーがログに出力される。 Too many open files in system 考察 Linux のカーネルパラメータ fs.file-max はシステム全体でオープンできるファイルディスクリプタ数、つまり PostgreSQL 以外がオープンするファイルディスクリプタも含まれる。 …

RDS PostgreSQL で大量にセッションを張った場合のメモリ使用量を調べる

RDS PostgreSQL に pgbench で 2000 セッション張って負荷をかけてみたところ、12.5GBほどあった空きメモリを使い尽くして、2GB以上スワップした。 プロセス自体のメモリ、ワーク領域、ページテーブル(PTE)などで1セッションあたり、6MB以上は使っている計…

PostgreSQL でシャーディング

メモ PostgreSQLでスケールアウト https://qiita.com/U_ikki/items/4811ebcbdec5c5ccad0f Sharding with PostgreSQL - Blog dbi services https://www.sraoss.co.jp/event_seminar/2017/db-tech-showcase-sraoss20170907.pdf https://momjian.us/main/writin…

sysbench の OLTP test statistics の write は DML 発行回数

sysbench で MySQL や PostgreSQL のベンチマークを取得することができるが、OLTP test statistics の write がDML発行回数かI/Oシステムコール発行回数のどちらか気になった。SQLインタフェースでアクセスしているので、DML発行回数だと想定していたが、sys…

pgbench を使ってみる

pgbench をインストールする $ sudo yum -y install postgresql $ sudo yum -y install postgresql-contrib 参考 PostgreSQL: Documentation: 9.6: pgbench

Linux に psql をインストールする

psql(PostgreSQL のクライアントツール) は postgresql パッケージに含まれるので、yum で postgresql パッケージをインストールする。 インストール yum でインストールする。 $ sudo yum install postgresql ... Is this ok [y/d/N]: y Downloading packag…

psql で出力結果をファイルに出力する

書式 # \o <ファイル名> # <SQLを実行する> # \q 例 # \o test.txt # select * from test'; # \q $ ls -1 test.txt 参考 PostgreSQL/MySQLで、クエリの結果をファイルに出力する - 極北データモデリング https://www.postgresql.jp/document/9.2/html/app-psql.html</sqlを実行する>

PostgreSQL で時間ベースのパフォーマンス分析

pg_stat_statements まずやっとくPostgreSQLチューニング from Kosuke Kida pg_statsinfo まずやっとくPostgreSQLチューニング from Kosuke Kida まずやっとくPostgreSQLチューニング from Kosuke Kida まずやっとくPostgreSQLチューニング from Kosuke Kida…