Re: HOT is applied
От | Heikki Linnakangas |
---|---|
Тема | Re: HOT is applied |
Дата | |
Msg-id | 46F2C872.20108@enterprisedb.com обсуждение исходный текст |
Ответ на | HOT is applied (Tom Lane <tgl@sss.pgh.pa.us>) |
Ответы |
Re: HOT is applied
Re: HOT is applied Re: HOT is applied |
Список | pgsql-hackers |
Tom Lane wrote: > I've committed the HOT patch. Thanks, much easier to work with it now that it's in. > I'd still like to think about whether we > can be smarter about when to invoke pruning, but that's a small enough > issue that the patch can go in without it. Yeah. I'm doing some micro-benchmarking, and the attached test case is much slower with HOT. It's spending a lot of time trying to prune, only to find out that it can't. Instead of/in addition to avoiding pruning when it doesn't help, maybe we could make HeapTupleSatisfiesVacuum cheaper. I'm going to continue testing, this is just a heads-up that HOT as committed seriously hurts performance in some cases. (though one can argue that this test case isn't a very realistic one.) -- Heikki Linnakangas EnterpriseDB http://www.enterprisedb.com DROP TABLE IF EXISTS testtable; CREATE TABLE testtable (key integer); -- Note that there's no indexes, so updates have to do a seq scan. CREATE OR REPLACE FUNCTION testfunc(data int, key1 int) RETURNS int AS $$ DECLARE BEGIN FOR cnt IN 1..10000 LOOP UPDATE testtable SET key = data WHERE key = key1; END LOOP; RETURN 1; END; $$ LANGUAGE plpgsql; INSERT INTO testtable VALUES (1); BEGIN; SELECT testfunc(1,1); COMMIT;
В списке pgsql-hackers по дате отправления: