sp_BlitzIndex® – SQL Server’s Index Sanity Test

Your SQL Server indexes may be less sane than you think. Download sp_BlitzIndex® to find out– or scroll on down and watch a video to see how it help you find out:

  • Do you have duplicate indexes wasting your storage and memory?
  • Would you like help to find unused indexes that are bloating your backups?
  • Have wide clustering keys snuck into your schema, inflating your indexes?
  • Are there active heaps lurking in your database, causing strange fragmentation?
  • Is blocking creeping up behind you before you can realize it?

Our free sp_BlitzIndex® stored procedure quickly does a sanity check on your database and diagnoses your indexes major disorders, then reports back to you. Each disorder has a URL that explains what to look for and how to handle the issue.

sp_BlitzIndex® also saves YOUR sanity when index tuning, by giving you the option to see both the “missing” and existing indexes for a table in a single view– when prevents you from going crazy and adding duplicate indexes.

If you’ve ever struggled with index tuning, this may sound crazy good. We think it really is.

Get sp_BlitzIndex® and Check Your Index Sanity

Download sp_BlitzIndex® here!

Want to learn more about index tuning? Take an 8 minute tour of how to install, run, and use the results from sp_BlitzIndex® here, or check out how you can get 18 months of access to more than 6.5 hours of video training, chock full of demos and quizzes.

Want to run sp_BlitzIndex® with minimal permissions? It’s easy, get the prescription here.

See http://BrentOzar.com/go/eula for the End User Licensing Agreement.

Latest changes

Current version: v2.02 (Jan 30, 2014)

  • Standardized calling parameters with sp_AskBrent® and sp_BlitzIndex®. (@DatabaseName instead of @database_name, etc)
  • Added check_id 80 and 81– what appear to be the most frequently used indexes (workaholics)
  • Added index_operational_stats info to table level output — recent scans vs lookups
  • Broke index_usage_stats output into two categories, scans and lookups (also in table level output)
  • Changed db name, table name, index name to 128 length
  • Fixed findings_group column length in #BlitzIndexResults (fixed issues for users w/ longer db names)
  • Fixed issue where identities nearing end of range were only detected if the check was run with a specific db context
  • Fixed extra tab in @SchemaName= that made pasting into Excel awkward/wrong
  • Added abnormal psychology check for clustered columnstore indexes (and general support for detecting them)
  • Standardized underscores in create TSQL for missing indexes
  • Better error message when running in table mode and the table isn’t found.
  • Added current timestamp to the header based on user request. (Didn’t add startup time– sorry! Too many things reset usage info, don’t want to mislead anyone.)
  • Added fillfactor to index create statements.
  • Changed all index create statements to ONLINE=?, SORT_IN_TEMPDB=?. The user should decide at index create time what’s right for them.