Langsung ke konten utama

Check Index Fragmentation on Indexes in a Database SQL Server

Issue
SQL Queries taking longer than normal to complete.

Product
Struxureware Power Monitoring
Power Monitoring Expert
ION Enterprise
ION EEM

Environment
SQL Server 2005, SQL Server 2008 R2, SQL Server 2012, SQL Server 2014, SQL Server 2016

Cause
When a database is frequently updated via INSERT, UPDATE, or DELETE statements we can expect it to become fragmented over the time. If database indexes are fragmented, the SQL Server query optimizer may chose a non-optimal execution plan when using an index to resolve a query.
This will affect the overall query performance and you may notice a query behaving slower than normal.

Resolution
*Warning: Irreparable database damage can occur. This procedure should only be performed by users familiar with SQL Server Management Studio. Databases should be backed up prior to performing this procedure.*

The following is a simple query that will list every index on every table in your database, ordered by percentage of index fragmentation.

This query can be modified to focus on specific tables by append the table name to the 'where' clause:  
WHERE indexstats.database_id = DB_ID() AND dbtables.[name] like '%%' 

In order to reduce fragmentation we will have to reorganize or rebuild the indexes. Choosing between reorganizing or rebuilding depends on the query results. 

For heavily fragmented indexes a rebuild process is needed, otherwise index reorganization should be sufficient

The following table summarizes when to use each one:
Reference Values (in %)ActionSQL statement
avg_fragmentation_in_percent > 5 AND < 30Reorganize IndexALTER INDEX REORGANIZE
avg_fragmentation_in_percent > 30Rebuild IndexALTER INDEX REBUILD

Example REORGANIZE and REBUILD :

Komentar

Postingan populer dari blog ini

How to customize tab colors in SSMS

Applies to ApexSQL Complete Summary This article describes how to set a custom connection color to a query tab in Microsoft  SQL Server Management Studio  (SSMS) using a feature called  Tab coloring  in ApexSQL Complete. Description Tab coloring can set custom connection colors for individual instances of SQL Server, down to the database level. The user has ability to assign SQL servers, and databases to a specific environment to help quickly identify which connection a tab is currently using.

Totolink N300RT

Panduan singkat install OpenWrt Totolink N300RT Download FrmUpg :  http://www.anphat.vn/download/FirmwareUpgradeTool.zip Putty : http://www.putty.org/ Frimware totolink v2.1.6 :  http://www.totolink.net/include/download.asp?path=down/010300&file=N300RT-V2.1.6_20160516.zip Bootloder boot96E_32M:  https://drive.google.com/open?id=1p0SreEifzElS_cyngZZRL2lmGnR-Mvvi OpenWrt  :  https://drive.google.com/open?id=1ykv6QkrqXJ_8vnX-6imib44XGFVNJZoA A. Downgrade Frimware Totolink ke v2.1.6 Dalam router dalam keadaan mati tekan Tombol Reset lalu hidupkan power. tunggu sampai lampu indikator lan berkedip. Matikan Firewall dan Buka FrmUpg.exe dan colokan LAN ke Port 1,2,3,4 Di Frimware File pilih file Totolink v2.1.6 dan klik send, Tunggu sampai prosess selesai lalu restart router, cek 192.168.1.1 apakah sudah berhasil downgrade. B. Upgrade OpenWrt Ulangi langkah no 1, Pilih file bootloder boot96E_32M. klik send. tunggu sampai selesa...

Comparison of NULLIF and ISNULL Sql Server

NULLIF Returns a null value if the two specified expressions are equal. Syntax : NULLIF ( expression , expression ) Arguments : expression :Is any valid scalar expression. ISNULL Replaces NULL with the specified replacement value. Syntax : ISNULL ( check_expression , replacement_value ) Arguments : check_expression : Is the expression to be checked for NULL. check_expression can be of any type.