2010年5月31日月曜日

ストアドの実行コマンド

SQL Server
EXEC ストアド名;

Postgres
select ストアド名;

2010年5月26日水曜日

postgresの実行速度を早くする

postgresのSQL文が急に遅くなる事態があり、
インデックスがまったく効いていないような動作となり
レスポンスが返ってこなくなった。

VACUUMとANALYZEを実行する事でとりあえず解決・・・
1日1回、あまり使用されていない時間帯に実行しておくと良いみたい。


またデットロックの可能性もあった、
そちらの調査方法は下記SQLを使い調査する。
SELECT * FROM pg_stat_activity;

SELECT * FROM pg_locks;

SELECT l.locktype, a.datname, c.relname, l.transactionid, l.pid,
a.usename, a.current_query, a.query_start,
age(current_timestamp, a.query_start), l.mode, l.granted
FROM pg_locks AS l
JOIN pg_stat_activity AS a ON (l.pid = a.procpid)
LEFT OUTER JOIN pg_class AS c ON (l.relation = c.oid)
WHERE pid != pg_backend_pid() ORDER BY a.query_start;

2010年5月21日金曜日

DBのテーブルを新しいテーブルにコピーする方法

・PostgreSQL
CREATE table 新テーブル AS SELECT * FROM 元テーブル;

・SQL Server
select * into (新テーブル名) from (テーブル名;

やり方が違うので注意