Thread: How much clustered?
Hi,
I would like to know how much clustered is a table related to some index.... How can I discover?
Reimer
Yahoo! doce lar. Faça do Yahoo! sua homepage.
Carlos Henrique Reimer <carlosreimer@yahoo.com.br> writes: > I would like to know how much clustered is a table related to some index.... How can I discover? You could do select ctid from mytable order by indexcolumns and then do whatever sort of calculation strikes your fancy on the sequence of page numbers. (It's probably fair to ignore the row numbers, considering an index to be fully clustered if the page reference sequence is perfect.) regards, tom lane
Tom Lane wrote: > Carlos Henrique Reimer <carlosreimer@yahoo.com.br> writes: > > I would like to know how much clustered is a table related to some index.... How can I discover? > > You could do > select ctid from mytable order by indexcolumns > and then do whatever sort of calculation strikes your fancy on the > sequence of page numbers. (It's probably fair to ignore the row > numbers, considering an index to be fully clustered if the page > reference sequence is perfect.) Currently we output the ctid as a string: snprintf(buf, sizeof(buf), "(%u,%u)", blockNumber, offsetNumber); Perhaps someday we should consider outputting that as an array or a result set: test=> select x from (select 1, 2) as x; x ------- (1,2) (1 row) -- Bruce Momjian http://candle.pha.pa.us SRA OSS, Inc. http://www.sraoss.com + If your life is a hard drive, Christ can be your backup. +
Bruce Momjian <pgman@candle.pha.pa.us> writes: > Currently we output the ctid as a string: > snprintf(buf, sizeof(buf), "(%u,%u)", blockNumber, offsetNumber); > Perhaps someday we should consider outputting that as an array or a > result set: It's not an array, because the two components are not of the same data type; and it's not a result set, any more than (say) a point or a box is. What it is is a record datatype. There might be some usefulness to adding SQL functions to allow extraction of the block number and item number fields, though we'd have some problems with the lack of a uint4 datatype to represent the block number field's type. The demand for this has been too low to make me feel we need to expend that effort... regards, tom lane
Tom Lane wrote: > Bruce Momjian <pgman@candle.pha.pa.us> writes: > > Currently we output the ctid as a string: > > snprintf(buf, sizeof(buf), "(%u,%u)", blockNumber, offsetNumber); > > Perhaps someday we should consider outputting that as an array or a > > result set: > > It's not an array, because the two components are not of the same data > type; and it's not a result set, any more than (say) a point or a box > is. What it is is a record datatype. > > There might be some usefulness to adding SQL functions to allow > extraction of the block number and item number fields, though we'd have > some problems with the lack of a uint4 datatype to represent the block > number field's type. The demand for this has been too low to make me > feel we need to expend that effort... Agreed, I was just pointing out that someday it might need improvement. -- Bruce Momjian http://candle.pha.pa.us SRA OSS, Inc. http://www.sraoss.com + If your life is a hard drive, Christ can be your backup. +