PostgreSQL

PostgreSQL パフォーマンスチューニング用小道具

統計情報の取得インデックスの利用状況確認pg_statio_all_tables 現DB内テーブル(全て)へのアクセス状況pg_stat_all_indexes 現DB内インデックス(全て)へのアクセス状況このビューを定期的に保持すると、利...
PostgreSQL

PostgreSQL シーケンス(sequence)

シーケンスの作成と削除シーケンスの作成SQLシーケンス名recnoを作成しています。PostgreSQLのシーケンスキャッシュのデフォルト値は1です。Oracleでの経験ですが、キャッシュ値を1にするとかなり遅くなる事経験したのでここではあ...
データ・ディクショナリ

Oracle シーケンス一覧

DBA_SEQUENCESdba_sequencesを参照する事でシーケンス一覧を出力できます。シーケンス一覧出力SQLselect s.SEQUENCE_OWNER,s.SEQUENCE_NAME,s.MIN_VALUE,s.MAX_VA...
PostgreSQL

PostgreSQL 自動採番カラム

自動採番カラム自動採番にしたいカラムを連番型で定義するだけで実現できます。Oracleに比べるととても楽ちんです。内部的にはシーケンスが作成され対象カラムにマッピングされます。以下連番型(serial)を指定すると実際は()の型で作成されま...
データ・ディクショナリ

Oracle トリガー一覧

DBA_TRIGGERSDBA_TRIGGERSそ参照する事でトリガー一覧を確認できます。dba_usersと結合しているのはシステム提供トリガーを対象から外すためです。※dba_users.common='NO' としているのはシステムが...
oracle

Oracle トリガー作成DDLを取得

Oracleのトリガーのソースを取得以下手順にてトリガーのソース(DDL)をファイルに取得する事ができます。手順1 SQLファイル(get_torigger_ddl.sql)を作成する。まずは、適当なフォルダにget_torigger_dd...
PostgreSQL

PostgreSQL CSVインポート

PostgreSQLではCSVのインポートが簡単に行えますCSVを用意した後、対応するテーブルをcreateしてしまえば、後はpsqlからcopyコマンドを実行するだけでインポートが完了します。Oracleの場合では、コントロールファイル(...
PostgreSQL

PostgreSQL 複数行の値を1行でまとめて表示する

group by で指定するグループ内の複数項目を指定順番に連結し表示する。OracleではLISTAGG()関数が用意されていますが、これをPostgreSQLでは2つの関数を組み合わせて実現できます。array_agg()で配列化した後...
oracle

LISTAGG 複数行の値を1行でまとめて表示する

LISTAGG集計関数先日SELECTで複数行返却される値をJava側で1行にまとめる実装を見ました。まぁ、SQLの方言に依存する実装を強く勧める気は全くありませんが、SQLでの実装も可能です。以下例題では"/"で区切っていますが、当然カン...
PostgreSQL

PostgreSQL ユーザを作成する

create userロール作成属性を保持しているユーザ(ロール)にてcreateできます。デフォルトではpostgresユーザで作成する事になるとおもいます。作成したユーザはpg_hba.confでの制限がない限り、どのデータベースへの接...