Since database operations use heavy COM operations to transfer data through the ABI, you should carefully avoid the "N+1 select problem". In other
words the data fetch strategy of the application should be optimized where possible.
Make good use of the asynchronous operations in the Data Storage. For more information on asynchronous programming in Windows Store applications,
Carefully take decisions if the database should be fully normalized. Sometimes, it is better to keep some tables denormalized in order to avoid
expensive join operations, especially in case of small amount of records in table.
In most scenarios, it is important to make your database object long-lived. The Telerik.Data.Database object can easily be persisted
across multiple db.sync() and db.query() statements. Thus, you ensure all database reads and writes go through the
same database object. This is an important aspect of making multiple queries—your database object needs to be shared. Otherwise, the underlying WinRT objects
referenced by multiple Telerik.Data.Database objects form a race condition on the same SQLite database file.
For better understanding of SQLite's query specifics read the SQLite documentation. The following articles are very helpful: