Eklemeler güncellemeleri ve silme işlemlerini gerçekleştirdikçe, dizinleriniz hem dahili hem de harici olarak parçalanır.
Dahili parçalanma, dizin sayfalarınızda yüksek bir boş alan yüzdesine sahip olmanızdır; bu, SQL Server'ın dizini tararken daha fazla sayfa okuması gerektiği anlamına gelir.
Dış parçalanma, dizinin sayfaları artık sıralı olmadığında, bu yüzden SQL Server, özellikle dizini okumak için IO terimlerinde daha fazla iş yapmak zorunda.
Dizinleriniz çok fazla parçalanmışsa, en iyi ihtimalle, sorgularınız daha az verimli olur ancak en kötüsü, SQL Server, dizinleri bir arada kullanmaya son verir; bu, neredeyse tüm sorguların bir tablo taraması veya kümelenmiş dizin taraması yapması gerektiği anlamına gelir. Bu, performansınıza çok fazla zarar verecek!
Bir dizini yeniden düzenlediğinizde, SQL Server mevcut dizin sayfalarını kullanır ve sadece bu yaşlardaki verileri karıştırır. Bu, iç parçalanmayı azaltacaktır ve az miktarda dış parçalanmayı da kaldırabilir. Yeniden yapılanmadan daha hafif bir işlemdir ve her zaman çevrimiçidir.
Bir dizini yeniden oluşturduğunuzda, SQL Server aslında dizinin verilerini kullanır ve yeni bir dizin sayfası kullanır. Bu, açıkça hem iç hem de dış parçalanmayı azaltacaktır, ancak daha ağır bir işlemdir ve SQL Server sürümünüze ve ayarlarınıza bağlı olarak çevrimiçi bir işlem olarak gerçekleştirilse de, varsayılan olarak dizinin çevrimdışı kalmasına neden olur.
Ancak bir Rebuild'den sonra 0 parçalanma beklemeyin. Bir MAXDOP sorgu ipucu kullanmazsanız, SQL Server yeniden oluşturma işlemini paralel hale getirecek ve daha fazla işlemci ne olursa olsun, her işlemci veya çekirdeğin kendi bölümlerini veya parçalarını bağımsız bir şekilde yeniden oluşturacakları için, daha fazla parçalanma olabilir. herbiri. Bu, en iyi parçalanma seviyeleri ile endeksi yeniden oluşturmak için geçen zaman arasındaki bir takastır. 0'a yakın parçalanma için, MAXDOP 1 kullanın ve sonuçları TempDB'de sıralayın.