PostgreSQL9.1.5から9.2.1にアップグレードしました。
"PostgreSQL 9.1.5 on x86_64-unknown-linux-gnu, compiled by gcc (GCC) 4.4.6 20120305 (Red Hat 4.4.6-4), 64-bit"
"PostgreSQL 9.2.1 on x86_64-unknown-linux-gnu, compiled by gcc (GCC) 4.4.6 20120305 (Red Hat 4.4.6-4), 64-bit"
これは、デフォルトのPostgreSQL構成ファイルと同じマシン上にあります(ポートのみが変更されました)。
テストの目的で、私は簡単な表を持っています:
CREATE TEMP TABLE test_table_md_speed(id serial primary key, n integer);
関数を使用してテストするもの:
CREATE OR REPLACE FUNCTION TEST_DB_SPEED(cnt integer) RETURNS text AS $$
DECLARE
time_start timestamp;
time_stop timestamp;
time_total interval;
BEGIN
time_start := cast(timeofday() AS TIMESTAMP);
FOR i IN 1..cnt LOOP
INSERT INTO test_table_md_speed(n) VALUES (i);
END LOOP;
time_stop := cast(timeofday() AS TIMESTAMP);
time_total := time_stop-time_start;
RETURN extract (milliseconds from time_total);
END;
$$ LANGUAGE plpgsql;
そして私は電話します:
SELECT test_db_speed(1000000);
奇妙な結果が見られます。PostgreSQL 9.1.5の場合は「8254.769」、9.2.1の場合は「9022.219」になります。これは、新しいバージョンが遅いことを意味します。理由がわかりません。
これらの結果が異なる理由はありますか?