On 16 Leden 2012, 17:15, Tore Halvorsen wrote: > On Mon, Jan 16, 2012 at 4:08 PM, Tomas Vondra <tv@xxxxxxxx> wrote: > >> The only other solution is to check all possible items on the page. >> There >> may be up to 291 items (although it depends on block size and >> architecture, see MaxHeapTuplesPerPage in access/htup.h). >> >> Nice to know. > > >> Something like this should work >> >> ctid = '(123,0)'::tid OR ctid = '(123,1)'::tid OR ctid = '(123,2)'::tid >> OR ... OR ctid = '(123,290)'::tid >> > > Yeah, that works, but it's kinda impractical... I'm mostly trying to > figure > out how fragmented a table is, > by checking how must the blocks are shared - so that the worst one can be > scheduled for clustering... What about pgstattuple? http://www.postgresql.org/docs/9.1/interactive/pgstattuple.html Maybe it already does what you're trying to implement ... Look at pageinspect module too http://www.postgresql.org/docs/9.1/interactive/pageinspect.html You're trying to do a quite low-level thing, so maybe this approach would be more appropriate. Tomas -- Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general