Mikro MsSQL Index Düzenleme

Want create site? Find Free WordPress Themes and plugins.

01. Önizleme

Öncelikle aşağıda bulunan 1. sorgu çalıştırılıp genel bir ön izleme yapılması gerekmektedir. Ön izleme neticesinde yüksek değerler ile karşılaşıyorsanız 2. ve 3. aşamalara geçiş yapabilirsiniz.

02. Analiz

Bu aşamada Analiz yapılarak gerekli olan sorgulara ait çıktılar oluşturulur. 2. aşama herhangi bir işlem yapmaz sadece size kullanmanız gereken sorguların listesini oluşturmaktadır.

03. İşlem

İkinci aşamanın sonucunda elde ettiğiniz sorguların tamamını çalıştırarak index sayfalarınıza ait gerekli tüm düzenlemeleri yapabilirsiniz.

  1. Aşama

Bu aşamada yapmanız gereken işlem aşağıdaki sorguyu Mikro veritabanlarında çalıştırıp MSSQL INDEX leri ile ilgili bir önizleme yapmaktır. Bu ön izleme neticesinde yüksek değerler ile karşılaşıyorsanız 2. aşamadaki işlemleri yapmanız gerekmektedir.

SELECT
MetinOktay.object_id,
SysINDEX.name as IndexName,
OBJECT_SCHEMA_NAME(MetinOktay.object_id) as ObjectSchemaName,
OBJECT_NAME (MetinOktay.object_id) as ObjectName,
MetinOktay.avg_fragmentation_in_percent
FROM sys.dm_db_index_physical_stats (DB_ID(), NULL, NULL , NULL, 'LIMITED') MetinOktay
INNER JOIN sys.indexes SysINDEX ON SysINDEX.object_id=MetinOktay.object_id and SysINDEX.index_id=MetinOktay.index_id
WHERE avg_fragmentation_in_percent > 5 AND MetinOktay.index_id > 0
ORDER BY avg_fragmentation_in_percent desc

2. Aşama

Bu aşamada ise aşağıdaki 2 tane sorguyu çalıştırarak Rebuild ve Reorganize işlemlerini yapmanızı sağlayacak SQL sorgularını oluşturabilirsiniz.

Rebuild Sorgusu

Declare
@MetinOktay int = 1,
@MetinOktay2 nvarchar(255),
@index_id int,
@index_adi nvarchar(255),
@tablo_tipi nvarchar(255),
@tablo_adi nvarchar(255),
@index_yogunluk nvarchar(255)
While
@MetinOktay <= (
Select COUNT(MetinOktay.object_id) From sys.dm_db_index_physical_stats (DB_ID(), NULL, NULL , NULL, 'LIMITED') MetinOktay
INNER JOIN sys.indexes SysINDEX ON SysINDEX.object_id=MetinOktay.object_id and SysINDEX.index_id=MetinOktay.index_id
WHERE avg_fragmentation_in_percent > 30 AND MetinOktay.index_id > 0)
Begin SET @MetinOktay2 = 'ALTER INDEX ' + @index_adi + ' ON ' + @tablo_adi + ' REBUILD PARTITION = ALL WITH ( PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, ONLINE = OFF, SORT_IN_TEMPDB = OFF )
'
print @MetinOktay2
SELECT TOP (@MetinOktay)
@index_id=MetinOktay.object_id ,
@index_adi=SysINDEX.name ,
@tablo_tipi=OBJECT_SCHEMA_NAME(MetinOktay.object_id),
@tablo_adi=OBJECT_NAME (MetinOktay.object_id),
@index_yogunluk=MetinOktay.avg_fragmentation_in_percent
FROM sys.dm_db_index_physical_stats (DB_ID(), NULL, NULL , NULL, 'LIMITED') MetinOktay
INNER JOIN sys.indexes SysINDEX ON SysINDEX.object_id=MetinOktay.object_id and SysINDEX.index_id=MetinOktay.index_id
WHERE avg_fragmentation_in_percent > 30 AND MetinOktay.index_id > 0
ORDER BY avg_fragmentation_in_percent desc
Set @MetinOktay += 1
END

Reorganize Sorgusu

Declare
@MetinOktay int = 1,
@MetinOktay2 nvarchar(255),
@index_id int,
@index_adi nvarchar(255),
@tablo_tipi nvarchar(255),
@tablo_adi nvarchar(255),
@index_yogunluk nvarchar(255)
While
@MetinOktay <= (
Select COUNT(MetinOktay.object_id) From sys.dm_db_index_physical_stats (DB_ID(), NULL, NULL , NULL, 'LIMITED') MetinOktay
INNER JOIN sys.indexes SysINDEX ON SysINDEX.object_id=MetinOktay.object_id and SysINDEX.index_id=MetinOktay.index_id
WHERE avg_fragmentation_in_percent < 30 AND MetinOktay.index_id > 0)
Begin SET @MetinOktay2 = 'ALTER INDEX ' + @index_adi + ' ON ' + @tablo_adi + ' REORGANIZE WITH ( LOB_COMPACTION = ON )'
print @MetinOktay2
SELECT TOP (@MetinOktay)
@index_id=MetinOktay.object_id ,
@index_adi=SysINDEX.name ,
@tablo_tipi=OBJECT_SCHEMA_NAME(MetinOktay.object_id),
@tablo_adi=OBJECT_NAME (MetinOktay.object_id),
@index_yogunluk=MetinOktay.avg_fragmentation_in_percent
FROM sys.dm_db_index_physical_stats (DB_ID(), NULL, NULL , NULL, 'LIMITED') MetinOktay
INNER JOIN sys.indexes SysINDEX ON SysINDEX.object_id=MetinOktay.object_id and SysINDEX.index_id=MetinOktay.index_id
WHERE avg_fragmentation_in_percent < 30 AND MetinOktay.index_id > 0
ORDER BY avg_fragmentation_in_percent desc
Set @MetinOktay += 1
END
Did you find apk for android? You can find new Free Android Games and apps.