Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir:SQL Server
Azure SQL Veritabanı
Azure SQL Yönetilen Örneği
Microsoft Fabric'te SQL veritabanı
SQL Server Management Studio veya Transact-SQL kullanarak tablolarda kümelenmiş dizinler oluşturabilirsiniz. Birkaç özel durum dışında, her tablonun kümelenmiş dizini olmalıdır. Sorgu performansını artırmanın yanı sıra kümelenmiş dizin, tablo parçalanmalarını denetlemek için isteğe bağlı olarak yeniden oluşturulabilir veya yeniden organize edilebilir. Bir görünümde kümelenmiş dizin de oluşturulabilir. (Kümelenmiş dizinler Kümelenmiş ve kümelenmemiş dizinler makalesinde tanımlanmıştır.)
Tipik uygulamalar
Kümelenmiş dizinler aşağıdaki yollarla uygulanır:
PRIMARY KEYveUNIQUEkısıtlamalar**Bir
PRIMARY KEYkısıtlama oluşturduğunuzda, tablodaki kümelenmiş dizin yoksa ve benzersiz bir kümelenmemiş dizin belirtmezseniz, sütun veya sütunlarda otomatik olarak benzersiz bir kümelenmiş dizin oluşturulur. Birincil anahtar sütunuNULLdeğerlerine izin veremiyor.Kısıtlama
UNIQUEoluşturduğunuzda, varsayılan olarak kısıtlamayı zorlamak için benzersiz birUNIQUEkümelenmemiş dizin oluşturulur. Tabloda kümelenmiş bir dizin yoksa benzersiz bir kümelenmiş dizin belirtebilirsiniz.Kısıtlamanın bir parçası olarak oluşturulan bir dizine otomatik olarak kısıtlama adıyla aynı ad verilir. Daha fazla bilgi için bkz . Birincil ve yabancı anahtar kısıtlamaları ve Benzersiz kısıtlamalar ve denetim kısıtlamaları.
Kısıtlamadan bağımsız dizin
Kümelenmemiş birincil anahtar kısıtlaması belirtildiyse birincil anahtar sütunu dışında bir sütunda kümelenmiş dizin oluşturabilirsiniz.
Limitations
Kümelenmiş dizin yapısı oluşturulduğunda, ilgili dosya ve dosya gruplarında hem eski (kaynak) hem de yeni (hedef) yapılar için disk alanı gerekir. İşlem tamamlanana kadar eski yapı deallocate edilmez. Sıralama için ek geçici disk alanı da gerekebilir. Daha fazla bilgi için bkz. Dizin DDL İşlemleri için Disk Alanı Gereksinimleri.
Kümelenmiş dizin, birkaç mevcut kümelenmemiş dizine sahip bir yığında oluşturulursa, tüm kümelenmemiş dizinler, satır tanımlayıcısı (RID) yerine kümeleme anahtarı değerini içerecek şekilde yeniden oluşturulmalıdır. Benzer şekilde, kümelenmiş dizin bir tablodan kaldırılırsa ve tabloda birkaç kümelenmemiş dizin varsa, kümelenmemiş dizinlerin tümü
DROPişleminin bir parçası olarak yeniden oluşturulur. Bu işlem büyük tablolarda önemli zaman alabilir.Büyük tablolarda dizin oluşturmanın tercih edilen yolu, kümelenmiş dizinle başlamak ve ardından kümelenmemiş dizinler oluşturmaktır. Mevcut tablolarda dizin oluştururken seçeneğini
ONLINEolarak ayarlamayıONgöz önünde bulundurun. olarakONayarlandığında, uzun süreli tablo kilitleri tutulmaz. Bu, temel tablodaki sorguların veya güncelleştirmelerin devam etmelerini sağlar. Daha fazla bilgi için bkz. Dizin işlemlerini çevrimiçi gerçekleştirme.Kümelenmiş dizinin dizin anahtarı, ayırma biriminde var olan veriler içeren
ROW_OVERFLOW_DATAsütunları içeremez. Bir varchar sütununda kümelenmiş dizin oluşturulursa ve mevcut veriler ayırma birimindeyseIN_ROW_DATA, sütunda verileri satır dışına gönderebilecek sonraki ekleme veya güncelleştirme eylemleri başarısız olur. Satır taşması verileri içerebilecek tablolar hakkında bilgi edinmek için sys.dm_db_index_physical_stats (Transact-SQL) dinamik yönetim işlevini kullanın.
Permissions
Tablo veya görünümde ALTER izin gerektirir. Kullanıcının sysadmin sabit sunucu rolünün veya db_ddladmin ve db_owner sabit veritabanı rollerinin üyesi olması gerekir.
SQL Server Management Studio'yu kullanma
Nesne Gezgini'nden kümelenmiş dizin oluşturma
Nesne Gezgini'nde, kümelenmiş dizin oluşturmak istediğiniz tabloyu genişletin.
Dizinler klasörüne sağ tıklayın, Yeni Dizin'in üzerine gelin ve Kümelenmiş Dizin... öğesini seçin.
Yeni Dizin iletişim kutusundaki Genel sayfasında, Dizin adı kutusuna yeni dizinin adını girin.
Dizin anahtarı sütunları'nın altında Ekle...'yi seçin.
table_nameSütun Seç iletişim kutusunda, kümelenmiş dizine eklenecek tablo sütununun onay kutusunu seçin.
Tamam'ı seçin.
Yeni Dizin iletişim kutusunda Tamam'ı seçin.
Tablo Tasarımcısı'nı kullanarak kümelenmiş dizin oluşturma
Nesne Gezgini'nde, kümelenmiş dizine sahip bir tablo oluşturmak istediğiniz veritabanını genişletin.
Tablolar klasörüne sağ tıklayın ve Yeni Tablo... öğesini seçin.
Normalde yaptığınız gibi yeni bir tablo oluşturun. Daha fazla bilgi için bkz. Tablo oluşturma (Veritabanı Altyapısı).
Daha önce oluşturulan yeni tabloya sağ tıklayın ve Tasarım'ı seçin.
Tablo Tasarımcısı menüsünde Dizinler/Anahtarlarseçin.
Dizinler/Anahtarlar iletişim kutusunda Ekle'yi seçin.
Seçili Birincil/Benzersiz Anahtar veya Dizin metin kutusunda yeni dizini seçin.
Kılavuzda Kümelenmiş Olarak Oluştur'u seçin ve özelliğin sağındaki açılan listeden Evet'i seçin.
Kapat'ıseçin.
Dosya menüsünde, Seçintable_namekaydet.
Transact-SQL kullanma
Nesne Gezgini'nde Veritabanı Motoru'nun bir örneğine bağlanın.
Standart araç çubuğunda, Yeni Sorgu'yu seçin.
Aşağıdaki örneği kopyalayıp sorgu penceresine yapıştırın ve Yürüt'e tıklayın.
USE AdventureWorks2022; GO -- Create a new table with three columns. CREATE TABLE dbo.TestTable ( TestCol1 INT NOT NULL, TestCol2 NCHAR(10) NULL, TestCol3 NVARCHAR(50) NULL ); GO -- Create a clustered index called IX_TestTable_TestCol1 -- on the dbo.TestTable table using the TestCol1 column. CREATE CLUSTERED INDEX IX_TestTable_TestCol1 ON dbo.TestTable (TestCol1); GO
Daha fazla bilgi için bkz. CREATE INDEX.