SQL Server'da Kümelenmiş ve Kümelenmemiş Dizinler Oluşturma



Sorunları Ortadan Kaldırmak Için Enstrümanımızı Deneyin

Bir SQL Sunucusunda iki tür dizin vardır; Kümelenmiş ve kümelenmemiş dizinler. Hem kümelenmiş dizinler hem de kümelenmemiş dizinler aynı fiziksel yapıya sahiptir. Üstelik her ikisi de SQL Server'da B-Tree yapısı olarak saklanır.



Kümelenmiş dizin:

Kümelenmiş liste, tablodaki kayıtların fiziksel depolanmasını yeniden düzenleyen belirli bir dizin türüdür. SQL Server içinde, veri tabanı işlemlerini hızlandırmak için dizinler kullanılır ve bu da yüksek performans sağlar. Bu nedenle tablo, genellikle birincil anahtarda yapılan yalnızca bir kümelenmiş dizine sahip olabilir. Kümelenmiş bir dizinin yaprak düğümleri şunları içerir: 'Veri sayfaları'. Bir tablo yalnızca bir kümelenmiş dizine sahip olabilir.



Daha iyi bir anlayışa sahip olmak için kümelenmiş bir dizin oluşturalım. Öncelikle bir veritabanı oluşturmamız gerekiyor.



Veritabanı oluşturma

Bir veritabanı oluşturmak için. Sağ tıklayın 'Veritabanları' nesne gezgininde 'Yeni veritabanı' seçeneği. Veritabanının adını yazın ve Tamam'a tıklayın. Veritabanı aşağıdaki şekilde gösterildiği gibi oluşturulmuştur.

Tasarım görünümünü kullanarak tablo oluşturma

Şimdi adlı bir tablo oluşturacağız 'Çalışan' tasarım görünümünü kullanarak birincil anahtarla. Aşağıdaki resimde öncelikle “ID” isimli dosyaya atadığımızı ve tablo üzerinde herhangi bir indeks oluşturmadığımızı görebiliyoruz.



Birincil anahtar kimliğiyle 'Çalışan' adlı bir tablo oluşturma

Aşağıdaki kodu çalıştırarak da bir tablo oluşturabilirsiniz.

[Test] KULLANIN GİT ANSI_NULLS GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo]. [Çalışan] ([ID] [int] IDENTITY (1,1) NOT NULL, [Dep_ID] [int] NULL, [Ad] [ varchar] (200) NULL, [e-posta] [varchar] (250) NULL, [şehir] [varchar] (250) NULL, [adres] [varchar] (500) NULL, CONSTRAINT [Primary_Key_ID] BİRİNCİL ANAHTAR KÜMELENDİ ([ID ] ASC) İLE (PAD_INDEX = KAPALI, STATISTICS_NORECOMPUTE = KAPALI, IGNORE_DUP_KEY = KAPALI, ALLOW_ROW_LOCKS = AÇIK, ALLOW_PAGE_LOCKS = AÇIK) AÇIK [BİRİNCİL]) AÇIK [BİRİNCİL] GİT

Çıktı aşağıdaki gibi olacaktır.

Birincil anahtar kimliğiyle 'Çalışan' adlı bir tablo oluşturma

Yukarıdaki kod adında bir tablo oluşturdu 'Çalışan' bir kimlik alanı, birincil anahtar olarak benzersiz bir tanımlayıcı. Şimdi bu tabloda, birincil anahtar kısıtlamaları nedeniyle sütun kimliğinde otomatik olarak kümelenmiş bir dizin oluşturulacaktır. Bir tablodaki tüm dizinleri görmek istiyorsanız, saklı yordamı çalıştırın. 'Sp_helpindex'. Adlı bir tablodaki tüm dizinleri görmek için aşağıdaki kodu yürütün 'Çalışan'. Bu saklama prosedürü, giriş parametresi olarak bir tablo adı alır.

KULLANIN test EXECUTE sp_helpindex Çalışan

Çıktı aşağıdaki gibi olacaktır.

'Sp_helpindex', çalışan tablosundaki tüm dizinleri gösterecektir.

Tablo dizinlerini görüntülemenin başka bir yolu da 'Tablolar' nesne gezgininde. Masayı seçin ve harcayın. Dizinler klasöründe, aşağıdaki şekilde gösterildiği gibi o belirli tabloyla ilgili tüm dizinleri görebilirsiniz.

Tablodaki tüm dizinleri görüntüleme

Bu kümelenmiş dizin olduğundan, dizinin mantıksal ve fiziksel düzeni aynı olacaktır. Bu, bir kaydın Id değeri 3 ise, tablonun üçüncü satırında saklanacağı anlamına gelir. Benzer şekilde, beşinci kaydın kimliği 6 ise, 5 içinde saklanacaktır.incimasanın yeri. Kayıtların sırasını anlamak için aşağıdaki komut dosyasını çalıştırmanız gerekir.

[Test] GİT SET IDENTITY_INSERT [dbo]. [Çalışan] INSERT [dbo]. [Çalışan] ([ID], [Dep_ID], [Ad], [e-posta], [şehir], [adres]) DEĞERLER ( 8, 6, N'Humbaerto Acevedo