I recently had a user of the ADO.NET provider report a problem on Vista. His database is 5gb, and he's doing a full table scan of 16 million rows. Yea.
I ran some tests using the command-line sqlite3.exe, and observed that Windows Vista (SP1) is actually trying to cache the entire 5gb file into memory during the table scan! The system slows to a complete crawl and becomes unresponsive. The sqlite3.exe's memory remains very minimal, but Vista itself eats every last scrap of physical memory, forcing all other apps to the paging file trying to cache the contents of the database. It took about 500 seconds to scan the entire table, which isn't all that bad given the circumstances. Unfortunately Vista's cache remained high and continued to make the entire system unresponsive until I quit out of the command-line. After some research, I commented out the FILE_FLAG_RANDOM_ACCESS flag in os_win.c and re-ran the test. It completed in 99 seconds. System remained highly responsive, and Vista never blew out the memory trying to cache the entire file. Now, I know Windows CE benefits greatly from having this flag hint - but has anyone tested normal desktop performance with or without it? To me this seems like an obvious bug in Vista, but the chances of getting Microsoft to fix it are slim to none. Robert _______________________________________________ sqlite-users mailing list email@example.com http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users