Dizinler ve kısıtlamalar etkinleştirme

Bu konuda bir Engelli dizininde etkinleştirmek açıklar SQL Server 2012kullanarak SQL Server Management Studioya Transact-SQL. Dizin devre dışı bırakıldıktan sonra yeniden veya bırakılan kadar devre dışı durumda kalır

Bu Konuda

  • Başlamadan Önce

    Sınırlamalar ve Kısıtlamalar

    Güvenlik

  • Bir Engelli etkinleştirmek için dizin kullanarak:

    SQL Server Management Studio

    Transact-SQL

Başlamadan Önce

Sınırlamalar ve Kısıtlamalar

  • Dizini yeniden oluşturuluyor sonra dizin devre dışı bırakma nedeniyle devre dışı bırakılan herhangi bir kısıtlama el ile etkinleştirilmesi gerekir. PRIMARY key ve UNIQUE kısıtlamaları ilişkili dizini yeniden oluşturuluyor tarafından etkinleştirilir. Bu dizin oluşturulması gerekir önce (etkin) FOREIGN key kısıtlamaları, PRIMARY key veya UNIQUE sınırlaması başvuruda etkinleştirebilirsiniz. FOREIGN key kısıtlamaları tablo check kısıtlaması alter deyimi kullanılarak etkinleştirilir.

  • ONLINE seçeneği on olarak ayarlandığında, devre dışı bırakılmış bir kümelenmiş dizini yeniden oluşturuluyor gerçekleştirilemez.

  • Kümelenmiş bir dizin devre dışı veya etkin ve kümelendirilmemiş dizin devre dışı olduğunda, kümelenmiş dizin eylem aşağıdaki sonuçlar üzerinde devre dışı bırakılmış kümelendirilmemiş dizin vardır.

    Kümelenmiş dizin eylem

    Engelli kümelendirilmemiş dizin...

    ALTER DİZİN YENİDEN OLUŞTURMA.

    Devre dışı kalır.

    ALTER DİZİN YENİDEN TÜM.

    Yeniden ve etkin.

    DROP INDEX.

    Devre dışı kalır.

    İLE DROP_EXISTING DİZİN OLUŞTURUN.

    Devre dışı kalır.

  • Her iki dizin türü etkin veya devre dışı bırakılmış Kümelenmiş bir dizin ile ilişkili kümelendirilmemiş dizinler üzerinde izin verilen eylemleri durumuna, bağlıdır. Aşağıdaki tablo kümelendirilmemiş dizinler üzerinde izin verilen eylemleri özetlemektedir.

    Kümelendirilmemiş dizin eylem

    Ne zaman kümelenmiş ve kümelendirilmemiş dizinleri devre dışı bırakılır.

    Ne zaman Kümelenmiş dizin etkin ve kümelendirilmemiş dizin ya da bir durumda.

    ALTER DİZİN YENİDEN OLUŞTURMA.

    Eylem başarısız olur.

    Eylem başarılı olur.

    DROP INDEX.

    Eylem başarılı olur.

    Eylem başarılı olur.

    İLE DROP_EXISTING DİZİN OLUŞTURUN.

    Eylem başarısız olur.

    Eylem başarılı olur.

Güvenlik

İzinler

Tablo veya görünümde ALTER izni gerektirir. dbcc DBREINDEX kullanıyorsanız, eser tablonun sahibi veya bir üyesi olmanız sysadmin sabit sunucu rolü veya db_ddladmin ve db_owner veritabanı rolleri sabit.

Başa Dön bağlantısıyla kullanılan ok simgesi[Top]

SQL Server Management Studio Kullanarak

Engelli endeksi etkinleştirmek için

  1. Nesne Explorer'da, bir endeksi etkinleştirmek istediğiniz tabloyu içeren veritabanını genişletmek için artı işaretini tıklatın.

  2. Genişletmek için artı işaretini tablo ağıl.

  3. Bir endeksi etkinleştirmek istediğiniz tabloyu genişletmek için artı işaretini tıklatın.

  4. Genişletmek için artı işaretini Dizinler ağıl.

  5. Etkinleştirme ve seçmek istediğiniz dizini sağ yeniden.

  6. İçinde Dizinler yeniden iletişim kutusunda, doğru dizin içinde olduğundan emin olun dizinleri yeniden oluşturmak için ızgara ve tıklayın Tamam.

Bir tablodaki tüm dizinleri etkinleştirmek için

  1. Nesne Explorer'da dizinleri etkinleştirmek istediğiniz tabloyu içeren veritabanını genişletmek için artı işaretini tıklatın.

  2. Genişletmek için artı işaretini tablo ağıl.

  3. Dizinleri etkinleştirmek istediğiniz tabloyu genişletmek için artı işaretini tıklatın.

  4. Sağ Dizinler ağıl ve seçme Rebuild All.

  5. İçinde Dizinler yeniden iletişim kutusunda, doğru dizinler içinde olduğundan emin olun dizinleri yeniden oluşturmak için ızgara ve tıklayın Tamam. Bir dizinden kaldırmak için dizinleri yeniden oluşturmak için kılavuz dizini seçin ve sonra Delete tuşuna basın.

Aşağıdaki bilgiler mevcuttur Dizinler yeniden iletişim kutusu:

Başa Dön bağlantısıyla kullanılan ok simgesi[Top]

Transact-SQL'i Kullanma

Devre dışı bırakılmış bir dizin alter INDEX kullanarak etkinleştirmek için

  1. İçinde Object Explorer, örneğine bağlanmak Veritabanı Altyapısı.

  2. Standart çubuğunda Yeni sorgu.

  3. Kopyalama ve aşağıdaki örnek sorgu penceresine yapıştırın ve tıkırtı Execute.

    USE AdventureWorks2012;
    GO
    -- Enables the IX_Employee_OrganizationLevel_OrganizationNode index
    -- on the HumanResources.Employee table.
    
    ALTER INDEX IX_Employee_OrganizationLevel_OrganizationNode ON HumanResources.Employee
    REBUILD; 
    GO
    

Engelli bir dizin oluşturma dizini kullanarak etkinleştirmek için

  1. İçinde Object Explorer, örneğine bağlanmak Veritabanı Altyapısı.

  2. Standart çubuğunda Yeni sorgu.

  3. Kopyalama ve aşağıdaki örnek sorgu penceresine yapıştırın ve tıkırtı Execute.

    USE AdventureWorks2012;
    GO
    -- re-creates the IX_Employee_OrganizationLevel_OrganizationNode index
    -- on the HumanResources.Employee table
    -- using the OrganizationLevel and OrganizationNode columns
    -- and then deletes the existing IX_Employee_OrganizationLevel_OrganizationNode index
    CREATE INDEX IX_Employee_OrganizationLevel_OrganizationNode ON HumanResources.Employee
       (OrganizationLevel, OrganizationNode)
    WITH (DROP_EXISTING = ON);
    GO
    

Devre dışı bırakılmış bir dizin dbcc DBREINDEX kullanarak etkinleştirmek için

  1. İçinde Object Explorer, örneğine bağlanmak Veritabanı Altyapısı.

  2. Standart çubuğunda Yeni sorgu.

  3. Kopyalama ve aşağıdaki örnek sorgu penceresine yapıştırın ve tıkırtı Execute.

    USE AdventureWorks2012; 
    GO
    -- enables the IX_Employee_OrganizationLevel_OrganizationNode index
    -- on the HumanResources.Employee table
    DBCC DBREINDEX ("HumanResources.Employee", IX_Employee_OrganizationLevel_OrganizationNode);
    GO
    

alter INDEX kullanarak bir tablodaki tüm dizinleri etkinleştirmek için

  1. İçinde Object Explorer, örneğine bağlanmak Veritabanı Altyapısı.

  2. Standart çubuğunda Yeni sorgu.

  3. Kopyalama ve aşağıdaki örnek sorgu penceresine yapıştırın ve tıkırtı Execute.

    USE AdventureWorks2012;
    GO
    -- enables all indexes
    -- on the HumanResources.Employee table
    ALTER INDEX ALL ON HumanResources.Employee
    REBUILD;
    GO
    

Tüm dizinler bir tabloda dbcc DBREINDEX kullanarak etkinleştirmek için

  1. İçinde Object Explorer, örneğine bağlanmak Veritabanı Altyapısı.

  2. Standart çubuğunda Yeni sorgu.

  3. Kopyalama ve aşağıdaki örnek sorgu penceresine yapıştırın ve tıkırtı Execute.

    USE AdventureWorks2012; 
    GO
    -- enables all indexes
    -- on the HumanResources.Employee table
    DBCC DBREINDEX ("HumanResources.Employee", " ");
    GO
    

Daha fazla bilgi için bkz: ALTER INDEX (Transact-SQL), Index (Transact-sql) oluştur, ve dbcc DBREINDEX (Transact-sql).

Başa Dön bağlantısıyla kullanılan ok simgesi[Top]