On Tue, Apr 3, 2012 at 1:05 PM, Kari Hoijarvi <[email protected]>wrote:
> Hello, > > running PRAGMA integrity_check from command line works for a 300 GB > database, but I seem to have hit some kind of limit with 832 GB sqlite DB. > > I running on Windows server 2008 R2 standard (64bit of course). Is this a > Windows or sqlite problem? > > Any good ideas for workarounds? > As part of PRAGMA integrity_check, SQLite allocates counters for every page in the database file, and counts the number of references to each page. There should be either zero or one references to each page, depending on the role that page is serving. The integrity_check pragma prints error messages if this is not the case. Unfortunately, when you get really big database files (in your case on the order of 800 million pages worth) and you allocate a 32-bit integer for each page, that can blow out available memory. We are working on a patch now in which we only allocate a single bit per page, which is all we really need to determine that each page is referenced zero or one times. That should reduce the memory requirements 32-fold. You'll still need a 120 MB allocation to check a 800 GB database, but most system can handle that these days. Watch the timeline <http://www.sqlite.org/src/timeline> for availability of this patch. > > Kari > > ______________________________**_________________ > sqlite-users mailing list > [email protected] > http://sqlite.org:8080/cgi-**bin/mailman/listinfo/sqlite-**users<http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users> > -- D. Richard Hipp [email protected] _______________________________________________ sqlite-users mailing list [email protected] http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

