Imagine that you have a large book and you are looking for a specific piece of information. If the book has 500 pages and has no index, you will have to go through page by page until to find the information you are looking for. The worst-case scenario would be to check all 500 pages. That would be a full “scan” of the book. However, if the book has an index, you will just go through the index list and find the page that contains the information you are looking for.
The same thing happens with databases. In the database world, seeking specific information in a frequently-used large table without using an index, could end-up scanning the entire table thus taking a considerable amount of time. However, when having an index, eventually the data retrieval time would be much faster as the operation will not have to search every row in the database table every time the database table is accessed.
Even though indexes are key data structures in databases, they bring the cost of additional writes and the use of more storage space to maintain the extra copy of data. In addition, they need to be frequently maintained in order to be as performant as possible. Nevertheless, the performance gain when using indexes is significant thus making the overheads of maintaining them negligible.
In order to have a healthy set of indexes you need to run frequent maintenance operations. Such operations include index fragmentation checks, reorganization and rebuild actions.
Learn more about SQL Server Performance Tuning!
What are your views on the subject? Have something to share? Feel free to leave your comment!
Recommended eBooks on SQL Server: