On Mon, 15 Feb 2016 11:21:06 +0800 <admin at shuling.net> wrote: > I am just curious whether there is a performance comparison between > SQLite and SQL Server?
Odds are you will never see a such a comparison published. If you read your SQL Server EULA, you'll see it specifically prohibits publishing benchmark results. The restriction is not purely evil. It could be argued that the flaws embedded in any testing regimen render the conclusion meaningless. Performance of any kind is notoriously difficult to measure. That's especially true of DBMSs because of their complexity. Optimal DBMS performance is a function of hardware, OS, and DBMS configuration. That's a lot of expertise to bring to bear on making *one* DBMS perform at its best; doing it for N is at least N times harder, especially if you're being scrupulous. Back when SQL was young, people still read magazines about new technology, and benchmarks were a popular feature. I remember poring over them to learn whether Oracle was faster than Sybase, etc. But the more I learned, the better I understood the futility of the question. There were too many moving parts, and the journalists had nowhere near the resources needed to do the job properly. Any decision they rendered was flawed, and in any case became obsolete as the technology evolved. I think it was in answer to such testing that the vendors began including restrictions on published performance measurements in their EULAs. In answer to your question, I would say SQLite performs very well provided you live with its restrictions. In particular: 1. Very little write contention. 2. All processes running on the same machine, using a local filesystem. 3. Queries of limited complexity, or data of limited size. That is, you're lijmited to one writer at a time, you can't use a network filesystem, and query optimization will hurt with large tables if, for example, subqueries can't be flattened. SQL Server has none of those restrictions, and probably keeps pace with SQLite even on its home turf. But the administration of SQL Server is nontrivial. For that reason alone, I would never use it in situations where SQLite would do. --jkl