866-860-1223

mosaicpaperless
How Can We Help?

Search for answers or browse our knowledge base.

Categories
< All Topics
Print

Optimizing Table Indices for Improved Performance

Overview:

Table fragmentation can significantly impact database performance. This knowledgebase article provides step-by-step instructions on how to identify heavily fragmented tables and how to optimize them for better performance.

Step 1: Backup Databases

Before proceeding with any optimization, it is crucial to create backups of the databases. Ensure you have backups for the following databases:

  • Astria_Host
  • EclipseSignalRBackplane
  • AAAA0001

Step 2: Identify Heavily Fragmented Tables

Run the following query to check for tables that are more than 30% fragmented:

SELECT OBJECT_NAME(ind.OBJECT_ID) AS TableName,
   ind.name AS IndexName, indexstats.index_type_desc AS IndexType,
   indexstats.avg_fragmentation_in_percent
   FROM sys.dm_db_index_physical_stats(DB_ID(), NULL, NULL, NULL, NULL) indexstats
   INNER JOIN sys.indexes ind
   ON ind.object_id = indexstats.object_id
   AND ind.index_id = indexstats.index_id
   WHERE indexstats.avg_fragmentation_in_percent > 30
   ORDER BY indexstats.avg_fragmentation_in_percent DESC

This query will return a list of tables with fragmentation levels above 30%.

Step 3: Rebuild Indices on Fragmented Tables

Run the following query. This query generates a list of statements to rebuild the indices on tables with fragmentation levels exceeding 30%:

SELECT 'alter index all on ' + Name + ' reorganize' AS Name
   FROM sys.tables
   WHERE name in (
   SELECT name
   FROM sys.tables
   WHERE name in (SELECT object_name(ind.object_id) AS TableName FROM           sys.dm_db_index_physical_stats(DB_ID(), NULL, NULL, NULL, NULL) indexstats
   INNER JOIN sys.indexes ind
   ON ind.object_id = indexstats.object_id
   AND ind.index_id = indexstats.index_id
   WHERE indexstats.avg_fragmentation_in_percent > 30))

This query generates the necessary SQL statements for rebuilding indices.

Copy the results from the query in Step 3 and paste them into the query window.

Highlight all the generated statements and execute them.

Step 4: Verify Improvement

After executing the rebuild statements, re-run the first query from Step 2 to check the difference. The number of heavily fragmented tables should be reduced, resulting in improved database performance.

Conclusion:

Regularly monitoring and optimizing table indices is crucial for maintaining a high-performing database. By following these steps, you can identify and address fragmentation issues, ultimately enhancing the efficiency of your database operations.

For more advanced optimization techniques or specific database management systems, consider consulting with a database administrator or referring to comprehensive documentation.


Note: This knowledgebase article provides a practical guide for optimizing table indices. Always ensure to backup your database before performing any major operations.

Was this article helpful?
0 out of 5 stars
5 Stars 0%
4 Stars 0%
3 Stars 0%
2 Stars 0%
1 Stars 0%
5
Please Share Your Feedback
How Can We Improve This Article?
Table of Contents