Yeniden düzenleme ve dizinler yeniden oluşturma
Bu konu yeniden düzenlemek veya parçalanmış bir dizin yeniden oluşturma açıklar SQL Server 2012kullanarak SQL Server Management Studioya Transact-SQL.
SQL Server Veritabanı AltyapısıTemel veri ekleme, güncelleştirme veya silme işlemleri yapıldığında dizinler otomatik olarak korur. Zamanla bu değişiklikleri (parçalara) veritabanında dağınık olmak üzere dizin bilgileri neden olabilir. Parçalanma var dizinler içinde mantıksal, anahtar değerine göre sıralama eşleşmiyor fiziksel sayfaları olduğunda veri dosyası içinde sipariş. Ağır parçalanmış dizinler, sorgu performansı düşebilir ve uygulamanız yavaş yanıt vermesine neden olabilir. Yeniden düzenleme veya bir dizin yeniden dizin parçalanma çare olabilir.
Bölümlenmiş dizinler için bir bölüm düzeni inşa edilmiş, sen-ebilmek kullanma ya da bu yöntemlerin tam bir dizin veya dizin tek bir bölüm. Bir dizini yeniden oluşturmak, dizini bırakıp yeniden oluşturur. Bu, parçalanmayı ortadan kaldırır, sayfaları belirtilen veya var olan doldurma faktörü ayarına göre sıkıştırarak disk alanı kazandırır ve dizin satırlarını art arda sayfalar olarak yeniden sıralar. ALL belirtildiğinde, tablodaki tüm dizinler, tek bir işlemde bırakılır ve yeniden oluşturulur. Bir dizini yeniden düzenleme, çok az sistem kaynağı kullanır. Yaprak düzeyi sayfaları yaprak düğümlerinin mantıksal, soldan sağa sıralamasını fiziksel olarak yeniden yaparak tablo ve görünümlerdeki kümelenmiş ve kümelenmemiş dizinleri birleştirir. Yeniden düzenleme ayrıca dizin sayfalarını da sıkıştırır. Sıkıştırma var olan doldurma faktörü değerine dayanır. Bu Konuda
Başlamadan Önce Parçalanma algılama
Sınırlamalar ve Kısıtlamalar
Bir dizin parçalanma denetlemek için kullanma: SQL Server Management Studio
Yeniden düzenlemek veya bir dizin yeniden kullanma: SQL Server Management Studio
Karar vermek için kullanılacak birleştirme yöntemi ilk adımı, dizin parçalanma derecesini belirlemek için analiz etmektir.
Sistem işlevi kullanılarak sys.dm_db_index_physical_stats, belirli bir dizin, bir tablo veya dizin oluşturulmuş görünüm tüm dizinler, bir veritabanındaki tüm dizinleri veya tüm veritabanlarındaki tüm dizinler parçalanma algılayabilir. Bölümlenmiş dizinler, desteklenirsys.dm_db_index_physical_stats parçalanma bilgilerini her bölüm için de sağlar. Tarafından döndürülen sonuç kümesi sys.dm_db_index_physical_stats işlevi aşağıdaki sütunları içerir. Sütun
Mantıksal parçalanma (dizin sırası sayfalarında) yüzdesi.
Parça (fiziksel olarak ardışık yaprak sayfaları) dizin sayısı.
Bir dizindeki bir parçası sayfa ortalama sayısı.
Parçalanma derecesini bilinen sonra parçalanma düzeltmek için en iyi yöntemi belirlemek için aşağıdaki tabloyu kullanın.
>% 5'i ve < = %30 ALTER DİZİN YENİDEN DÜZENLE
ALTER DİZİN YENİDEN OLUŞTURMA İLE (ÇEVRİMİÇİ AÇIK =) *
* Bir dizini yeniden oluşturuluyor, çevrimiçi veya çevrimdışı çalıştırılabilir.
Bir dizini yeniden düzenleme her zaman çevrimiçi yürütülür. Kullanılabilirlik yeniden Düzenle seçeneğine benzer elde etmek için çevrimiçi dizinler yeniden oluşturmalısınız. Bu değerler, hangi alter dizin yeniden düzenlemek ve alter DIZINI YENIDEN arasında geçiş noktayı belirlemek için kaba bir kılavuz sağlar.
Ancak, gerçek değerleri durumda durum değişebilir. Ortamınız için en iyi eşik belirlemek için deneme önemlidir. Böyle küçük bir miktar parçalanma kaldırmayı yararlı hemen hemen her zaman büyük ölçüde yeniden düzenleyerek veya dizini yeniden oluşturuluyor maliyetini tarafından outweighed çünkü çok düşük düzeyde parçalanma (yüzde 5'den az) aşağıdaki komutlardan birini ele alınması gereken değil. Not
Genel olarak, parçalanma küçük dizinler üzerinde kontrol edilebilir değildir ve çoğu zaman.
Küçük dizinlerin sayfaları karışık uzantılarda depolanır. Küçük bir index Parçalanmanın yeniden düzenleyerek veya dizini yeniden oluşturuluyor sonra azalabilir değil çok karışık kapsamlarını sekiz nesneler tarafından paylaşılır. Sınırlamalar ve Kısıtlamalar
İle fazla 128 kapsamlarını dizinler yeniden iki ayrı bölüm halinde: mantıksal ve fiziksel.
Mantıksal aşamasında, dizin tarafından kullanılan varolan ayırma birimleri kaldırma için işaretlenir, veri satırlarını kopyalanır ve sıralama ve sonra saklamak için oluşturulan yeni ayırma birimleri yeniden dizin taşındı. Fiziksel aşamasında, kaldırma için önceden işaretlenmiş ayırma birimleri fiziksel kısa arka planda olur ve birçok kilitleri gerektirmeyen işlemler bırakılır. Dizin seçeneklerini, ne zaman bir dizin yeniden düzenleme belirtilemez.
Tablo veya görünümde ALTER izni gerektirir.
Kullanıcı-meli var olmak a üye sysadmin sabit sunucu rolü veya db_ddladmin ve db_owner veritabanı rolleri sabit. [Top]
SQL Server Management Studio Kullanarak
Dizin parçalanma denetlemek için
Nesne Explorer'da dizin'ın parçalanma denetlemek istediğiniz tabloyu içeren veritabanı genişletin.
Genişletme tablo ağıl.
Dizin'ın parçalanma denetlemek istediğiniz tablo genişletin.
Genişletme Dizinler ağıl.
Parçalanma ve seçmek istediğiniz dizini sağ Özellikler.
Altında sayfaseçin parçalanma.
Aşağıdaki bilgileri kullanılabilir parçalanma sayfa:
Dizin sayfaları ortalama doluluk yüzdesi olarak gösterir.
% 100 dizin sayfaları tamamen dolu olduğu anlamına gelir. % 50, ortalama olarak, her dizin sayfasının yarısı dolu olduğu anlamına gelir. Toplam parçalanma
Mantıksal parçalanma yüzdesi.
Bu sırada saklanmazlar sayfalarında dizin sayısını gösterir. Ortalama satır boyutu
Yaprak düzeyi satır ortalama boyutu.
Yaprak düzeyi de dahil olmak üzere dizin düzeylerin sayısı.
İleriye doğru işaretçiler verileri başka bir konuma sahip bir yığın kayıt sayısı.
(Yeni satır özgün konumda depolamak için yeterli yer olmadığında bu durumu bir güncelleştirme sırasında oluşur.) Hayalet satırları
Olarak işaretlenen satır silindi ama henüz kaldırılır.
Sunucu meşgul olduğunda bu satırlar bir temizleme iş parçacığı tarafından kaldırılır. Bu değer, bir olağanüstü anlık yalıtım hareket nedeniyle saklanmayan bir satır yoktur. Dizin türü
Olası değerler Kümelenmiş dizin, kümelendirilmemiş dizin, ve Birincil xml. Tabloları (dizinler) olmadan bir yığın olarak da saklanabilir, ancak daha sonra bu dizin özellikleri sayfası açılamıyor. Yaprak düzeyi satır
Yaprak düzeyi satır sayısı.
En büyük satır boyutunu
En büyük yaprak düzeyi satır boyutu.
En küçük satır boyutu
En az yaprak düzeyi satır boyutu.
Veri sayfaları toplam sayısı.
B-ağaç dizini içeren bölüm Kımlığı.
Sürüm hayalet satırları
Bir olağanüstü anlık yalıtım hareket nedeniyle korunur hayalet kayıt sayısı.
İçinde Object Explorer, örneğine bağlanmak Veritabanı Altyapısı.
Standart çubuğunda Yeni sorgu.
Kopyalama ve aşağıdaki örnek sorgu penceresine yapıştırın ve tıkırtı Execute. Copy
Yukarıdaki ifade, bir sonuç kümesi benzer döndürebilir.
Daha fazla bilgi için bkz: sys.dm_db_index_physical_stats (Transact-sql).
Yeniden düzenlemek veya bir dizin yeniden oluşturma
Nesne Explorer'da, bir dizin yeniden düzenlemek istediğiniz tabloyu içeren veritabanı genişletin.
Bir dizin yeniden düzenlemek istediğiniz tablo genişletin.
Yeniden düzenlemek ve seçmek için istediğiniz dizini sağ yeniden.
İçinde Dizinler yeniden iletişim kutusunda, doğru dizin içinde olduğundan emin olun yeniden organize için dizinler ızgara ve tıklayın Tamam.
Seçin sütun veri Compact büyük nesne büyük nesne (lob) veri içeren tüm sayfaları da kurtulmak belirtmek için onay kutusu.
Bir tabloda tüm dizinler yeniden düzenlemek için
Nesne Explorer'da dizinler yeniden düzenlemek istediğiniz tabloyu içeren veritabanı genişletin.
Dizinler yeniden düzenlemek istediğiniz tablo genişletin.
Sağ Dizinler ağıl ve seçme Yeniden düzenleme tüm.
İçinde Dizinler yeniden iletişim kutusunda, doğru dizinler içinde olduğundan emin olun dizinler reorganized.
Bir dizinden kaldırmak için yeniden organize için dizinler kılavuz dizini seçin ve sonra Delete tuşuna basın. Seçin sütun veri Compact büyük nesne büyük nesne (lob) veri içeren tüm sayfaları da kurtulmak belirtmek için onay kutusu.
Bir dizini yeniden oluşturmak için
İçinde Dizinler yeniden iletişim kutusunda, doğru dizin içinde olduğundan emin olun oluşturulması için dizinler ızgara ve tıklayın Tamam.
Birleştirilmiş bir dizin yeniden düzenlemek için
Birleştirilmiş bir dizini yeniden oluşturmak için
Kopyalama ve aşağıdaki örnek sorgu penceresine yapıştırın ve tıkırtı Execute.
Örnek üzerinde tek bir dizin yeniden oluşturur Employeetablosu. Transact-SQL
Bir tablodaki tüm dizinleri yeniden oluşturmak için
Aşağıdaki örnek örneği belirttiği anahtar sözcük sorgu kopyalayıp ALL.
Bu, tablo ile ilişkili tüm dizinleri yeniden oluşturur. Üç seçenek belirtilir. Transact-SQL
Daha fazla bilgi için, bkz. ALTER INDEX (Transact-SQL).
Microsoft SQL Server 2000 dizin birleştirme için en iyi yöntemler