2010年7月アーカイブ

概要

StringBuider で append() を使い1文字を追加するとき、
sb.append('\t');
のように char 型を追加するときと
sb.append("\t");
のように文字列型で追加するときに性能差を調査した。

結果

追加データ実行時間 [s]
'\t' 2.165
"\t" 7.788

1つの文字を追加する場合は、 char 型で追加したほうが文字列で追加するより 3.6 倍高速だった。

概要

PostgreSQL 上に作成したテーブルに対し、Java で時刻を timestamp 型ではなくミリ秒(long 値)のまま格納した場合、それを select で timestamp 型として取り出すには以下のように SQL を記述する。
SELECT
    (lastaccess / 1000) :: text :: interval + '1970-01-01' :: timestamp
FROM
    table1;
lastaccess は bigint 型のカラム。これを1000分の1して秒単位にし、 epoch 秒(グリニッジ標準時間1970年1月1日00:00:00からの経過秒数) に足している。

例: DB に格納された tomcat のセッションでサイズの大きいものを見つける

次のような SQL を実行する。
SELECT
	length(data) as len,
	session_id,
	(lastaccess / 1000) :: text :: interval + '1970-01-01' :: timestamp
FROM
	tomcat_sessions
ORDER BY len desc
LIMIT 20;

2010年8月

1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31