Subject RES: [firebird-support] Re: use of -USE_ALL_SPACE
Author Fabiano Kureck
Yes, you are wright.
And in a particular Page it is only allowed a single type of:
Table Data or index or generator and so on

-----Mensagem original-----
[] Em nome de W O
Enviada em: sexta-feira, 3 de maio de 2013 12:42
Assunto: Re: [firebird-support] Re: use of -USE_ALL_SPACE

Thank you very much Ann, your explanation was (as usual) very good.

Just one more question:

As I understand it, in a page just can be the rows (records) of a single
table. No two or more tables can share a page.

Am I right?



On Fri, May 3, 2013 at 10:59 AM, Ann Harrison

> **
> Walter,
> > As I understand it when a record is deleted a new primary version with a
> > mark (a flag) is put on it indicating that fact and the previous version
> of
> > the record is copied on another location (same page if there is room or
> > another page if there is not)
> >
> > Is that true?
> >
> More or less. A new "deleted stub" record - a header with no data - is
> created and stored on the record's home page. If there's not room on
> the home page for the deleted stub, then the oldest version of the record
> on the page will be moved elsewhere.
> It's probably worth noting, for those who are thinking about implementing
> relational database managers, that records can be relocated on page
> freely.
> The record number (RDB$DB_KEY and all its aliases) is the value
> used in indexes to identify a specific record. That number consists of
> a pointer page identifier - the ordinal number of a row in RDB$PAGES for
> pointer pages for that table - plus the offset on the pointer page that
> contains the page number of the record's home page, plus the offset
> of an index on that page that contains the offset and length of the data
> on page. So...
> 1) Reorganizing data on a page just requires swapping values in the index
> for that page to maintain stable record numbers.
> 2) All versions of a record use the same record number.
> 3) Updating a record does not require changing all the indexes on the
> table. If the key doesn't change, neither does the index.
> However, once a record has been deleted and garbage collected, its
> record number is released and will be reused, so record numbers are
> not stable outside of a single transaction - unless you use a switch
> to make record numbers stable for your connection. Record numbers
> will change after a gbak restore.
> Good luck,
> Ann
> [Non-text portions of this message have been removed]

[Non-text portions of this message have been removed]



Visit and click the Resources item
on the main (top) menu. Try Knowledgebase and FAQ links !

Also search the knowledgebases at

Yahoo! Groups Links