Click here to Skip to main content
15,887,821 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
Hi All,
We are using sqlite3 as back-end database with vc++ code in our software.We are not using MySql or other DB, as it will have an maintenance overhead for client [e.g. install the My sql server then start the server etc.].But as sqlite3 is is made for embedded system they are little slow for out product [even though I have changed the sqlite3 PRAGMA to make it fast and it improved the speed also. still its slow for sorting,duplicate check etc. and as its a single flat file we have some limitation.].

C#
execDML("PRAGMA synchronous = OFF;");
           //execDML("PRAGMA journal_mode = OFF;");
           execDML("PRAGMA locking_mode = EXCLUSIVE;");
           //execDML("PRAGMA temp_store = MEMORY;");
           //execDML("PRAGMA count_changes = OFF;");
           execDML("PRAGMA PAGE_SIZE = 4096;");
           execDML("PRAGMA default_cache_size=700000;");
           execDML("PRAGMA cache_size=700000;");
           execDML("PRAGMA compile_options;");
           execDML("VACUUM;");


My question is there any better and faster DB than sqlite3 that can integrate with VC++ without installing or configuring it?
Posted
Comments
ThatsAlok 9-Jul-12 7:38am    
you are using one of the best embedded DB currently available.. it work every where from embedded devices to WEB.

 
Share this answer
 
v2
Comments
ThatsAlok 10-Jul-12 2:48am    
Just a small question for 3 voter? what the wrong with this answer.Wikipedia have given a large page on this topic and i giving link for same. doesn't 3 voter browse that link before voting!
There are really only 2 types of databases, embedded and server.

Embedded use a "driver" from your application to access the database. They don't need to be installed. Memory, etc is managed from the driver.

Server have a dedicated OS thread (or more) for the database in the PC. That thread can cache results, resolve conflicts (collisions between multiples writes and reads), delay writes, improve database files when idle.
That database dedicated thread can also handle memory better, security, etc. It can also handle network access.
But in order to use the database the "database process" must be installed and lanched.

For embedded, I think SQLite is one of the bests. But it won't allow multiple writes (multiuser), and performance will never match a dedicated thread server database.
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900