Aracılığıyla paylaş


Kümelenmemiş dizinler oluşturma

Şunlar için geçerlidir:SQL ServerAzure SQL VeritabanıAzure SQL Yönetilen ÖrneğiMicrosoft Fabric'te SQL veritabanı

SQL Server Management Studio veya Transact-SQL kullanarak SQL Server'da kümelenmemiş dizinler oluşturabilirsiniz. Kümelenmemiş dizin, seçili bir veya daha fazla sütunu yeniden sıralayan bir tabloda depolanan verilerden ayrı bir dizin yapısıdır. Kümelenmemiş dizinler genellikle verileri temel alınan tabloda aramaktan daha hızlı bulmanıza yardımcı olabilir; Sorgular bazen kümelenmemiş dizindeki veriler tarafından tamamen yanıtlanabilir veya kümelenmemiş dizin Veritabanı Altyapısı'nı temel tablodaki satırlara işaret edebilir. Genellikle kümelenmiş dizin kapsamında olmayan sık kullanılan sorguların performansını artırmak veya kümelenmiş dizin (yığın olarak adlandırılır) olmayan bir tablodaki satırları bulmak için kümelenmemiş dizinler oluşturulur. Bir tabloda veya dizinli görünümde birden çok kümelenmemiş dizin oluşturabilirsiniz.

Başlamadan önce

Tipik uygulamalar

Kümelenmemiş dizinler aşağıdaki yollarla uygulanır:

  • UNIQUE Kısıtlama -ları**

    Kısıtlama UNIQUE oluşturduğunuzda, varsayılan olarak kısıtlamayı zorlamak için benzersiz bir UNIQUE kümelenmemiş dizin oluşturulur. Tabloda kümelenmiş bir dizin yoksa benzersiz bir kümelenmiş dizin belirtebilirsiniz. Daha fazla bilgi için bkz . Benzersiz kısıtlamalar ve denetim kısıtlamaları.

  • Kısıtlamadan bağımsız dizin

    Kümelenmiş belirtilmezse, varsayılan olarak kümelenmemiş bir dizin oluşturulur. Tablo başına oluşturulabilecek en fazla kümelenmemiş dizin sayısı 999'dur. Bu, veya PRIMARY KEY kısıtlamaları tarafından UNIQUE oluşturulan dizinleri içerir, ancak XML dizinlerini içermez.

  • Dizinli görünümde kümelenmemiş dizin

    Görünümde benzersiz bir kümelenmiş dizin oluşturulduktan sonra, kümelenmemiş dizinler oluşturulabilir. Daha fazla bilgi için bkz. Dizinli görünümler oluşturma.

Security

Permissions

ALTER Tablo veya görünümde 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

Tablo Tasarımcısı'nı kullanarak kümelenmemiş dizin oluşturma

  1. Nesne Gezgini'nde, kümelenmemiş dizin oluşturmak istediğiniz tabloyu içeren veritabanını genişletin.

  2. Tablolar klasörünü genişletin.

  3. Kümelenmemiş dizin oluşturmak istediğiniz tabloya sağ tıklayın ve Tasarım'ı seçin.

  4. Kümelenmemiş dizini oluşturmak istediğiniz sütuna sağ tıklayın ve Dizinler/Anahtarlar'ı seçin.

  5. Dizinler/Anahtarlar iletişim kutusunda Ekle'yi seçin.

  6. Seçili Birincil/Benzersiz Anahtar veya Dizin metin kutusunda yeni dizini seçin.

  7. Kılavuzda Kümelenmiş Olarak Oluştur'u seçin ve özelliğin sağındaki açılan listeden Hayır'ı seçin.

  8. Kapat'ıseçin.

  9. Dosya menüsünde, Seçintable_namekaydet.

Nesne Gezgini'yi kullanarak kümelenmemiş dizin oluşturma

  1. Nesne Gezgini'nde, kümelenmemiş dizin oluşturmak istediğiniz tabloyu içeren veritabanını genişletin.

  2. Tablolar klasörünü genişletin.

  3. Kümelenmemiş dizin oluşturmak istediğiniz tabloyu genişletin.

  4. Dizinler klasörüne sağ tıklayın, Yeni Dizin'in üzerine gelin ve Kümelenmemiş Dizin... öğesini seçin.

  5. Yeni Dizin iletişim kutusundaki Genel sayfasında, Dizin adı kutusuna yeni dizinin adını girin.

  6. Dizin anahtarı sütunları'nın altında Ekle...'yi seçin.

  7. table_nameSütun Seç iletişim kutusunda, kümelenmemiş dizine eklenecek tablo sütununun veya sütunlarının onay kutusunu veya onay kutularını seçin.

  8. Tamam'ı seçin.

  9. Yeni Dizin iletişim kutusunda Tamam'ı seçin.

Transact-SQL kullanma

Transact-SQL kullanarak tabloda kümelenmemiş dizin oluşturma

  1. Nesne Gezgini'nde, yüklü bir Veritabanı Altyapısı AdventureWorks2025 örneğine bağlanın. AdventureWorks2025 indirebilirsiniz.

  2. Standart araç çubuğunda, Yeni Sorgu'yu seçin.

  3. Aşağıdaki örneği kopyalayıp sorgu penceresine yapıştırın ve Yürüt'e tıklayın.

    USE AdventureWorks2022;
    GO
    -- Find an existing index named IX_ProductVendor_VendorID and delete it if found.
    IF EXISTS (SELECT name FROM sys.indexes
                WHERE name = N'IX_ProductVendor_VendorID')
        DROP INDEX IX_ProductVendor_VendorID ON Purchasing.ProductVendor;
    GO
    -- Create a nonclustered index called IX_ProductVendor_VendorID
    -- on the Purchasing.ProductVendor table using the BusinessEntityID column.
    CREATE NONCLUSTERED INDEX IX_ProductVendor_VendorID
        ON Purchasing.ProductVendor (BusinessEntityID);
    GO