MW211 EXIT

devlog
PostgreSQL/インデックスの使用状況
2015年06月15日
┌──────────────────────────────────────┐
│SELECT *                                                                    │
│    FROM "pg_stat_all_indexes"                                              │
│    WHERE "schemaname" = 'public';                                          │
├──────────────────────────────────────┤
│SELECT *                                                                    │
│    FROM "pg_statio_all_indexes"                                            │
│    WHERE "schemaname" = 'public';                                          │
└──────────────────────────────────────┘
基本は上記の二つ。

これを編集すると以下のような感じ。
┌──────────────────────────────────────┐
│SELECT "pg_stat_all_indexes"."relid",                                       │
│       "pg_stat_all_indexes"."indexrelid",                                  │
│       "pg_stat_all_indexes"."schemaname",                                  │
│       "pg_stat_all_indexes"."relname",                                     │
│       "pg_stat_all_indexes"."indexrelname",                                │
│       "pg_stat_all_indexes"."idx_scan",                                    │
│       "pg_stat_all_indexes"."idx_tup_read",                                │
│       "pg_stat_all_indexes"."idx_tup_fetch",                               │
│       "pg_statio_all_indexes"."idx_blks_read",                             │
│       "pg_statio_all_indexes"."idx_blks_hit"                               │
│    FROM "pg_stat_all_indexes",                                             │
│         "pg_statio_all_indexes"                                            │
│    WHERE "pg_stat_all_indexes"."indexrelid"                                │
│                                      = "pg_statio_all_indexes"."indexrelid"│
│      AND "pg_stat_all_indexes"."schemaname" = 'public'                     │
│    ORDER BY "pg_stat_all_indexes"."relname"      ASC,                      │
│             "pg_stat_all_indexes"."indexrelname" ASC;                      │
└──────────────────────────────────────┘
分類:PostgreSQL
PostgreSQL/使用量確認
2015年06月14日
  総使用量を確認する
┌──────────────────────────────────────┐
│SELECT SUM(`data_length` + `index_length`) / 1024 / 1024 AS `総使用量(MB)`  │
│    FROM `information_schema`.`tables`;                                     │
└──────────────────────────────────────┘
  DBごとの使用量を確認する
┌──────────────────────────────────────┐
│SELECT `table_schema`                                    AS `DB名`,         │
│       SUM(`data_length` + `index_length`) / 1024 / 1024 AS `使用量(MB)`    │
│    FROM `information_schema`.`tables`                                      │
│    GROUP BY `table_schema`                                                 │
│    ORDER BY SUM(`data_length` + `index_length`) DESC;                      │
└──────────────────────────────────────┘
分類:PostgreSQL
PostgreSQL/psql実行時のパスワード登録
2014年06月08日
バッチ上で以下のような感じで、「pgpass.conf」に登録すればよい。
┌──────────────────────────────────────┐
│echo localhost:5432:*:postgres:パスワード>"%APPDATA%\postgresql\pgpass.conf"│
└──────────────────────────────────────┘
環境変数参照のsetコマンドで「APPDATA」を確認すると、
以下のようなパスとなっている。
┌──────────────────────────────────────┐
│APPDATA=C:\Users\ユーザ名\AppData\Roaming                                   │
└──────────────────────────────────────┘
分類:PostgreSQL
PostgreSQL/psqlによるコマンドからのSQL実行例
2014年06月07日
こんな感じ。
┌──────────────────────────────────────┐
│set sql="SELECT now();"                                                     │
│"C:\Program Files\PostgreSQL\9.1\bin\psql.exe"                              │
│               -h localhost -p 5432 -U postgres -d DB名 -t -c %sql% > 出力先│
└──────────────────────────────────────┘
分類:PostgreSQL
PostgreSQL/使用できない文字の捜査
2014年05月31日
テーブル(表)上に、シフトJISで使用できない文字が含まれるか確認する方法。
┌──────────────────────────────────────┐
│SET CLIENT_ENCODING TO 'SJIS';                                              │
│SELECT * FROM 表;                                                           │
└──────────────────────────────────────┘
クライアントエンコードをシフトJISにしてから、データを呼び出し
エラーとなれば含まれていると判明。
┌──────────────────────────────────────┐
│ERROR:  character 0x■ of encoding "UTF8" has no equivalent in "SJIS"       │
└──────────────────────────────────────┘
分類:PostgreSQL
PostgreSQL/起動しない原因
2014年05月18日
(1) 「postmaster.pid」が残っている場合
  「postmaster.pid」は例えば以下のあたりにある。
┌──────────────────────────────────────┐
│C:\Program Files\PostgreSQL\9.1\data\postmaster.pid                         │
└──────────────────────────────────────┘
  これは、起動時に生成され、終了時に削除される。
  正常に終了しなくて残ってしまった場合には邪魔となって起動できないらしい。
  手動で削除してしまえば、起動できるようになるとのこと。
 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(2) 起動が遅くてWindowsサービスとしては停止扱いとなってしまう?
  これは原因不明の現象なのだが、PostgreSQLのサービスとしては
  停止扱いとなるのだが、実際には起動しているという怪現象に遭遇した
  どうも、PostgreSQLの起動に時間がかかった為、Windowsが痺れを切らして
  停止扱いと認識してしまったかららしい。
 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
分類:PostgreSQL
PostgreSQL/データや設定ファイルの格納位置
2014年05月07日
PostgreSQLのデータは既定では以下のような位置に格納される。(PostgreSQL9.1の場合)
┌──────────────────────────────────────┐
│C:\Program Files\PostgreSQL\9.1\data                                        │
└──────────────────────────────────────┘
設定ファイル(postgresql.conf)もこのフォルダに直下に置かれている。

さて、このフォルダはインストール時に任意の位置に変更することができる。
(例えば容量が豊富なD:ドライブなど)

では、既に動作済みのWindows環境でこのデータフォルダの位置を確認するには?

レジストリの値を参照するのが手っ取り早そうだ。
┌──────────────────────────────────────┐
│regedit                                                                     │
└──────────────────────────────────────┘
上記でレジストリエディタを開き、以下のツリーを辿っていく。
┌──────────────────────────────────────┐
│HKEY_LOCAL_MACHINE                                                          │
│└SYSTEM                                                                    │
│  └CurrentControlSet                                                       │
│    └services                                                              │
│      └postgresql-x64-9.1                                                  │
└──────────────────────────────────────┘
で、「postgresql-x64-9.1」の「ImagePath」の値を参照する。
例えば、こんな感じ。
┌──────────────────────────────────────┐
│C:/Program Files/PostgreSQL/9.1/bin/pg_ctl.exe runservice                   │
│ -N "postgresql-x64-9.1"                                                    │
│ -D "C:/Program Files/PostgreSQL/9.1/data"                                  │
│ -w                                                                         │
└──────────────────────────────────────┘
そう、「-D」の内容が、データフォルダのパスなのだ。
分類:PostgreSQL
SQL/条件付き追加・削除
2014年03月31日
「OR REPLACE」   「REPLACE」…存在したら置き換える
「IF NOT EXISTS」「IGONRE」 …存在したら作らない
「IF EXISTS」               …存在しなかったら消さない
┌───────────────┬─────┬─────┐
│                              │  MySQL   │PostgreSQL│
├───────────────┼─────┼─────┤
│CREATE DATABASE               │    ○    │    ○    │
│CREATE OR REPLACE DATABASE    │    ×    │    ×    │
│CREATE DATABASE IF NOT EXISTS │    ○    │    ×    │
│───────────────│─────│─────│
│DROP DATABASE                 │    ○    │    ○    │
│DROP DATABASE IF EXISTS       │    ○    │    ×    │
├───────────────┼─────┼─────┤
│CREATE TABLE                  │    ○    │    ○    │
│CREATE OR REPLACE TABLE       │    ×    │    ×    │
│CREATE TABLE IF NOT EXISTS    │    ○    │    ×    │
│───────────────│─────│─────│
│DROP TABLE                    │    ○    │    ○    │
│DROP TABLE IF EXISTS          │    ○    │    ×    │
├───────────────┼─────┼─────┤
│CREATE INDEX                  │    ○    │    ○    │
│CREATE OR REPLACE INDEX       │    ×    │    ×    │
│CREATE INDEX IF NOT EXISTS    │    ×    │    ×    │
│───────────────│─────│─────│
│DROP INDEX                    │    ○    │    ○    │
│DROP INDEX IF EXISTS          │    ×    │    ×    │
├───────────────┼─────┼─────┤
│CREATE VIEW                   │    ○    │    ○    │
│CREATE OR REPLACE VIEW        │    ○    │    ○    │
│CREATE VIEW IF NOT EXISTS     │    ×    │    ×    │
│───────────────│─────│─────│
│DROP VIEW                     │    ○    │    ○    │
│DROP VIEW IF EXISTS           │    ○    │    ×    │
├───────────────┼─────┼─────┤
│CREATE TRIGGER                │    ○    │    ○    │
│CREATE OR REPLACE TRIGGER     │    ×    │    ×    │
│CREATE TRIGGER IF NOT EXISTS  │    ×    │    ×    │
│───────────────│─────│─────│
│DROP TRIGGER                  │    ○    │    ○    │
│DROP TRIGGER IF EXISTS        │    ○    │    ×    │
├───────────────┼─────┼─────┤
│INSERT                        │    ○    │    ○    │
│REPLACE                       │    ○    │    ×    │
│INSERT IGNORE                 │    ○    │    ×    │
│───────────────│─────│─────│
│DELETE                        │    ○    │    ○    │
└───────────────┴─────┴─────┘
分類:SQL、PostgreSQL、MySQL
PostgreSQL/TABLE文
2014年01月09日
┌──────────────────────────────────────┐
│SELECT * FROM 表;                                                           │
└──────────────────────────────────────┘
のことを
┌──────────────────────────────────────┐
│TABLE 表;                                                                   │
└──────────────────────────────────────┘
で表せるらしい。

なので
┌──────────────────────────────────────┐
│SELECT * FROM (SELECT * FROM 表) AS 別表;                                   │
└──────────────────────────────────────┘
みたいな副問い合わせも
┌──────────────────────────────────────┐
│SELECT * FROM (TABLE 表) AS 別表;                                           │
└──────────────────────────────────────┘
と書くことができる。

でも、以下でいいじゃんという話ではあるんだけどね。
┌──────────────────────────────────────┐
│SELECT * FROM 表;                                                           │
└──────────────────────────────────────┘

ただし、「SELECT * FROM 表」のエイリアスだからといって、
以下みたいにWHERE句とは付けられないみたいだ。
┌──────────────────────────────────────┐
│TABLE 表 WHERE 条件;                                                        │
└──────────────────────────────────────┘
分類:PostgreSQL
PostgreSQL/テーブルのバックアップ
2013年10月20日
メンテナンスがしやすいプレーンテキスト(insert文)を取得する手順。

「pgAdminⅢ」のツリー上から、対象テーブルを右クリックし
「バックアップ」を選ぶ。

「ファイル名」と「フォーマット」を選ぶ
┌──────────────────────────────────────┐
│┌────────────────────────────────────┐│
││                ┌──────────────────────────┐││
││ファイル名      │C:\(ファイルの保存先)                               │││
││                ├──────────────────────────┤││
││フォーマット    │Plain                                               │││
││                └──────────────────────────┘││
│└┐                    ┌────────────────────────┘│
│  │ファイル・オプション│                                                  │
│  └──────────┘                                                  │
│                                            ┌──────┐┌──────┐│
│                                            │バックアップ││ キャンセル ││
│                                            └──────┘└──────┘│
└──────────────────────────────────────┘

「#1ダンプオプション」を選び、以下をチェックする。
┌──────────────────────────────────────┐
│┌────────────────────────────────────┐│
││┌クエリー──────────────────────────────┐││
│││□CREATE DATABASE構文を含む                                         │││
│││□DROP DATABASE構文を含む                                           │││
│││■列名インサート使用                                                │││
│││■インサートコマンド使用                                            │││
││└──────────────────────────────────┘││
│└─┐                  ┌────────────────────────┘│
│    │#1ダンプオプション│                                                  │
│    └─────────┘                                                  │
│                                            ┌──────┐┌──────┐│
│                                            │バックアップ││ キャンセル ││
│                                            └──────┘└──────┘│
└──────────────────────────────────────┘

「バックアップ」を実行する。
┌──────────────────────────────────────┐
│┌────────────────────────────────────┐│
││                                                                        ││
││プロセスは、0のリターンコードを返しました。                             ││
│└───┐          ┌──────────────────────────┘│
│        │メッセージ│                                                      │
│        └─────┘                                                      │
│                                            ┌──────┐┌──────┐│
│                                            │    完了    ││ キャンセル ││
│                                            └──────┘└──────┘│
└──────────────────────────────────────┘
分類:PostgreSQL
前へ 1 2 3 4 5 6 7 8 9 10 11 次へ