Dan Evans, Plan9
"I've been using your bulk manager all morning deleting 1000s of pages, members and media files - it's been a life saver."
My packages mostly use SQL Server or one of the other supported databases in Umbraco. It's ideal for storing data and most of the times I don't worry about it.
A few months ago a client with very high traffic had an issue with performance in the redirect manager of SEOChecker, SEO Checker uses caching internally but there was a bot requesting 1000's of non-existing pages and each non existing page caused a few SQL queries to check if a redirect existed, or a redirect could be created based on url history.Because of the size of the database and the amount of queries this caused a performance issue on this site and got me thinking of other ways to query data.
Examine DB is nothing but a data dump from one or more sql tables to an examine index. You can specify a query and the result of this query will be added to the index. We did a little benchmark with just a few records from the Adventureworks database and already seeing that Examine is twice as fast as a normal SQL server.
Examine DB is shipped as a NuGet packaget. Simply use the following command in your packagemanager console.
PM> Install-Package ExamineDB
Besides indexing all results Examine DB comes with a small API that allows you to re-index a single record, or remove a single record without having to rebuild the entire index (which is not handy when you have 100.000's of records).
To test the (re-)indexing of records I wrote a small test project that you can configure as a dashboard control to test the (re-)indexing.
This project is on Github, all the source and documentation can be found here.