Could it be that you're seeing the btree optimization around in-order insertion? From btree.c:
#ifndef SQLITE_OMIT_QUICKBALANCE /* ** A special case: If a new entry has just been inserted into a ** table (that is, a btree with integer keys and all data at the leaves) ** and the new entry is the right-most entry in the tree (it has the ** largest key) then use the special balance_quick() routine for ** balancing. balance_quick() is much faster and results in a tighter ** packing of data in the common case. */ -scott On 10/16/07, Babu, Lokesh <[EMAIL PROTECTED]> wrote: > Dear all, > > I'll reframe the question again, If ROWID(hidden column/b-tree key/internal > to all table) is changed manually, means I'll insert some unique values in > random order / in descending order (say from 10000 to 1), the memory > occupied increases more. why? I observed entire table is getting sorted > based on ROWID. > > My results were, for 10000 records if it is normally inserted (ie., not > modifying ROWID) it takes 500KB. The same thing if I modify the ROWID it > consumes 1.5MB. why? > > Is that all the columns are indexed or only ROWID is indexed? > > Memory measurement is done by sqlite3GenericMalloc using > SQLITE_ENABLE_MEMORY_MANAGEMENT macro enabled. Calculating each allocation > size gives total memory allocation. > > Thanks. > > > On 10/17/07, Vitali Lovich <[EMAIL PROTECTED]> wrote: > > > > My question is how you're measuring the memory useage? Are you > > accounting for the space overhead of the various bookkeeping sqlite > > needs (i.e. master table)? The way you're creating you're table implies > > you're not using autoincrement for the integer field - are you > > accounting for the extra internal row id column? > > > > Joe Wilson wrote: > > > It could be malloc fragmentation. > > > > > > Which sqlite version, operating system, and malloc implementation are > > you using? > > > > > > --- "Babu, Lokesh" <[EMAIL PROTECTED]> wrote: > > > > > >> Say I have 3 columns in one Table, with one INTEGER, two TEXT columns, > > If > > >> ROWID is manually inserted and made descending for 10000 records from > > 10000 > > >> to 1, (or even if random number for ROWID - both these cases), the > > memory > > >> occupied is more. Why is this so? > > >> > > > > > > > > > > > > > > > > > ____________________________________________________________________________________ > > > Be a better Globetrotter. Get better travel answers from someone who > > knows. Yahoo! Answers - Check it out. > > > http://answers.yahoo.com/dir/?link=list&sid=396545469 > > > > > > > > ----------------------------------------------------------------------------- > > > To unsubscribe, send email to [EMAIL PROTECTED] > > > > > ----------------------------------------------------------------------------- > > > > > > > > > > > > > > > ----------------------------------------------------------------------------- > > To unsubscribe, send email to [EMAIL PROTECTED] > > > > ----------------------------------------------------------------------------- > > > > > ----------------------------------------------------------------------------- To unsubscribe, send email to [EMAIL PROTECTED] -----------------------------------------------------------------------------