我已经从 PostgreSQL 9.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”。这意味着新版本速度较慢。我找不到原因。
任何想法为什么这些结果不同?