On Tue, 11 Dec 2007 15:37:52 +0530, "Yuvaraj Athur Raghuvir"
<[EMAIL PROTECTED]> wrote:

>Thanks.
>
>To ensure that the database size is closest to the data in the database, I
>see the following have to be taken care off:
>a) The latest in-memory transactions have to be flushed to disk.
>How?
>b) The space has to be reclaimed after delete/drop.
>For this I use the PRAGMA VACUUM statement.
>
>How do I ensure that there is nothing
>pending in the memory so that external
>file size APIs are accurate for my work?

Using transactions (BEGIN/COMMIT): after every commit all data
is flushed to disk (and also kept in memory in the page cache
for future reference). In other words: whenever there is no
journal file, the database file is up to date.
Without explicit transactions, every SQL statement that modifies
the database is a transaction in itself (autocommit).

Ref:
http://www.sqlite.org/arch.html
http://www.sqlite.org/atomiccommit.html
http://www.sqlite.org/lockingv3.html
(and perhaps http://www.sqlite.org/sharedcache.html )

>~Yuva
>
>On Dec 11, 2007 2:18 PM, Dan <[EMAIL PROTECTED]> wrote:
>
>>
>> On Dec 11, 2007, at 3:00 PM, Yuvaraj Athur Raghuvir wrote:
>>
>> > 1) Can I assume that MAX_PAGE_COUNT * PAGE_SIZE = size of file on
>> > disk?
>>
>> No. It is the maximum size of the file. An attempt to
>> insert data that would cause the file to grow larger than
>> this will return SQLITE_FULL.
>>
>> > 2) When insert statements are being executed, I would like to - for
>> > example
>> > - redirect the queries to another data base when 70% of the space is
>> > reached. How can I do that?
>>
>> I think you would have to check the size of the file on disk using
>> external (non-SQLite) APIs before each insert.
>>
>> Dan.
>>
>>
>>
>>
>> >
>> > ~Yuva
>> >
>> > On Dec 11, 2007 11:48 AM, Dan <[EMAIL PROTECTED]> wrote:
>> >
>> >>
>> >> On Dec 11, 2007, at 8:39 AM, Yuvaraj Athur Raghuvir wrote:
>> >>
>> >>> Hello,
>> >>>
>> >>> I am trying a simple experiment where I want to limit the size of
>> >>> the file
>> >>> that SQLite uses. Further, I want to manage the growth of the
>> >>> database(s)
>> >>> explicitly.
>> >>>
>> >>> One of the first aspects I want to manage is the size of the file
>> >>> on the
>> >>> disk. I want to set hard limits on the size and during query
>> >>> execution, on
>> >>> failures, explicitly manage the persistence across multiple
>> >>> databases (or
>> >>> disk files).
>> >>
>> >> I'm not sure I understand the second part of the question.
>> >>
>> >> Does "pragma max_page_count" (http://www.sqlite.org/pragma.html)
>> >> help any?
>> >>
>> >> Dan.
>> >>
>> >>
>> >>>
>> >>> (a) Since I am new to SQLite, I would like to hear from the
>> >>> community on how
>> >>> this can be done using what SQLite3 provides.
>> >>>
>> >>> If there are specifics that need to be managed outside the
>> >>> context of
>> >>> SQLite, I am fine with that. However, for doing external
>> >>> management I
>> >>> believe I would need hooks into the basic management of the
>> >>> database. What I
>> >>> would like to know is
>> >>> (b) are such hooks already available?
>> >>> (c) if these need to be implemented, the list of source files I
>> >>> need to look
>> >>> into will help.
>> >>>
>> >>> Thanks for your time,
>> >>> Yuva
>> >>>
>> >>> p.s: I am resending this since I am not sure if it has reached the
>> >>> mailing
>> >>> list.
>> >>
>> >>
>> >>
>> >> ---------------------------------------------------------------------
>> >> --------
>> >> To unsubscribe, send email to [EMAIL PROTECTED]
>> >>
>> >> ---------------------------------------------------------------------
>> >> --------
>> >>
>> >>
>>
>>
>>
>> -----------------------------------------------------------------------------
>> To unsubscribe, send email to [EMAIL PROTECTED]
>>
>> -----------------------------------------------------------------------------
>>
>>
-- 
  (  Kees Nuyt
  )
c[_]

-----------------------------------------------------------------------------
To unsubscribe, send email to [EMAIL PROTECTED]
-----------------------------------------------------------------------------

Reply via email to