Praveen Kumar N wrote:
I have installed postgresql from sourcecode.I would like to know
how pages are replaced in the bufferpool when we join two relations.I
tried to trace it by editing files
pgsql/src/backend/storage/buffer/(bufmgr.c,freelist.c).But i feel still I
am missing some information after observing extracted information abt
buffer replacement.My input datasize is 10times more than main
memory/RAM size.When I joined two relations,postgresql accessed both
relations sequentially one by one and that too only once.Then how is
it joining two relations by accessing only once? Is it storing that
accessed relations some where other than main memory/bufferpool(Becos
they cant fit into main memory).
What kind of a join is it? If it's a merge join, using indexes, it would
only have to visit each heap page once.
So can anybdy tell me is there is ne thing I am missing? Is there any
concept like postgresql cache similar to kernel cache otherthan
sharedbuffers.If so how can we figure it out.
No. All access to relations (except temporary relations) go through
bufmgr and the shared memory buffer cache.
Is there any way by which postgresql is accessing database relations
through,other than rotines in bufmgr.c nd freelist.c(I mean any other
routines like ReadBuffer,StrategyGet etc.)
No.
--
Heikki Linnakangas
EnterpriseDB http://www.enterprisedb.com
---------------------------(end of broadcast)---------------------------
TIP 5: don't forget to increase your free space map settings