Investigating Missing SQL Indexes to Increase Performance

By | In Blog, SQL Server | December 12th, 2013

indexblogIf your organization uses a relational database, chances are it relies on an SQL server.

Although there are companies with products bearing this name, here we use the term generically for those database management systems able to respond to queries from client machines that are formatted in SQL.

If you’re trying to troubleshoot or take on some performance tuning for your SQL server database, one of the issues may result from missing indexes.

An index stores data in the database logically. Indexes can be used for optimizing operations. They can, for example, be created across partitions. These different choices contribute to the database’s performance. A database administrator with a good understanding of how indexes work enables that administrator to improve database response time and performance as well as the end-user’s experience.

So why not insure your database is fully indexed from the outset? Microsoft’s Tom Mills explains:

“Over-indexing a database table can lead to bigger performance problems such as having to update more indexes during write operations. The Missing Indexes report is useful for identifying candidates for new indexes. Index tuning is still a practice that requires as much art as automation.”

You should be able to easily determine those missing indexes by using dynamic management views (DMV). From this point, proceed with care to prevent compounding the problem by adding indexes. SQL Server Pro advises:

“Don’t just take the information from the DMVs and create all the specified indexes. The reported indexes should be compared against the indexes that already exist in the database to ensure that duplicate indexes aren’t being created. Duplicate indexes can lead to additional writes, updates, and deletes, causing performance problems.”

Running a query is a better strategy for evaluating missing indexes. This approach pinpoints the issue on the specific database on which the query is being run. Mills adds:

“The Missing Indexes report can be useful to sift through the data in the missing indexes DMVs to find the top 10 or 20 necessary missing indexes. Be aware that the missing index process can potentially generate a lot of data. Many production databases will rack up several hundred missing indexes within a day or so of operation.”

As Kimberly L. Tripp, writing on SQLskills.com, observes, “[I]ndexing for performance is really about finding the right balance between too many and too few indexes, as well as trying to get more from the indexes that you do keep.”

Want to optimize your organization’s SQL server’s indexes and need experienced assistance? We can help you evaluate and fine-tune your database performance. Datavail experts can answer questions about your challenges by phone, but we are also available 24x7x365 through our online chat system.

Contact Us
Eric Russo
Senior Vice President of Database Services
Eric Russo is SVP of Database Services overseeing all of Datavail’s database practices including project and managed services for MS SQL, Oracle, Oracle EBS, MySQL, MongoDB, SharePoint and DB2. He is also the Product Owner for Datavail Delta, a database monitoring tool. He has 21 years’ experience in technology including 16 years in database management. His management success and style has attracted top DBAs from around the world to create one of the most talented and largest SQL Server teams. He has been with Datavail since 2008: previous to that his work experiences include DBA Manager at StrataVia, Senior Web Developer at Manifest Information Systems and SQL Server DBA at Clark County, Nevada.

Leave a Reply

Your email address will not be published.
Required fields are marked (*).