Aracılığıyla paylaş


DROP INDEX (Transact-SQL)

DROP INDEX deyim geçerli dizinleri siler. SQL Server Veritabanı. Bir dizin nesnesi Gezgini'ni kullanarak silmek için bkz: Nasıl Yapılır: (SQL Server Management Studio'yu) dizin silme.

DROP INDEX deyim, birincil anahtar veya UNIQUE sınırlamasıyla sahip bir dizini kaldırmak için kullanamazsınız.Kısıtlamayı kaldırmak ve daha sonra dizini silmek için kullanın. TABLO DEĞİŞTİRME DROP CONSTRAINT yan tümce ile.

Kümelenmiş bir dizini silmek ve sonuç taşımak üzere DROP INDEX deyim tablo başka bir dosya grubu veya bölümü şeması için MOVE TO seçeneği belirtin.

Important noteImportant Note:

Tanımlanan sözdizimi <drop_backward_compatible_index> bir sonraki sürümünde will be removed SQL Server. Yeni geliştirme iş dizinleri silmek için bu sözdizimini kullanmaktan kaçının ve bu özelliği kullanan uygulamalar değiştirmek planlama.Altında belirtilen sözdizimi kullanın. <drop_relational_or_xml_index> Bunun yerine. Geriye dönük olarak uyumlu sözdizimi'ni kullanarak XML dizin bırakamazsınız.

Topic link iconTransact-SQL sözdizimi kuralları

DROP INDEX
{ <drop_relational_or_xml_or_spatial_index> [ ,...n ] 
| <drop_backward_compatible_index> [ ,...n ]
}

<drop_relational_or_xml_or_spatial_index> ::=
        index_name ON <object> 
    [ WITH ( <drop_clustered_index_option> [ ,...n ] ) ]

<drop_backward_compatible_index> ::=
    [ owner_name. ] table_or_view_name.index_name

<object> ::=
{
    [ database_name. [ schema_name ] . | schema_name. ] 
        table_or_view_name
}

<drop_clustered_index_option> ::=
{
    MAXDOP = max_degree_of_parallelism
    | ONLINE = { ON | OFF }
  | MOVE TO { partition_scheme_name ( column_name ) 
            | filegroup_name
            | "default" 
            }
  [ FILESTREAM_ON { partition_scheme_name 
            | filestream_filegroup_name 
            | "default" } ]
}

Bağımsız değişkenler

  • index_name
    Kesilmesine dizin adıdır.

  • veritabanı_adı
    Veritabanının adıdır.

  • schema_name
    Hangi şema adı tablo veya görünüme ait.

  • table_or_view_name
    Tablo veya Görünüm dizini ile ilişkili adıdır.Kayma dizinler yalnızca tablolar desteklenir.

    Bir rapor dizinleri bir nesne üzerinde görüntülemek için , kullanmak sys.Indexes kataloğunu görüntüleyin.

  • <drop_clustered_index_option>
    Denetimleri, kümelenmiş dizin seçeneklerini.Bu seçenekler, diğer dizin türlerinde kullanılamaz.

  • MAXDOP = max_degree_of_parallelism
    Geçersiz kılar parallelism en büyük ölçüde yapılandırma seçeneği Dizin operasyonun süresi.Daha fazla bilgi için bkz:parallelism seçeneği en büyük ölçüde.Bir paralel planı yürütme kullanılan işlemci sayısını sınırlamak için MAXDOP kullanın.En fazla 64 işlemci ' dir.

    Important noteImportant Note:

    MAXDOP kayma dizinler veya XML dizinler için izin verilmez.

    max_degree_of_parallelism aşağıdaki gibi olabilir:

    • 1
      Paralel planı oluşturma bastırır.

    • >1
      Işlemci için belirtilen bir paralel dizin işleminde kullanılan en fazla sayısını sınırlar.

    • 0 (varsayılan)
      Işlemci veya daha az geçerli sistem iş yükünün alarak fiili numarasını kullanır.

    Daha fazla bilgi için bkz: Parallel ındex işlemi yapılandırma.

    Not

    Paralel dizin işlemleri yalnızca kullanılabilir SQL Server Enterprise Developer ve değerlendirme sürümleri.

  • ÇEVRIMIÇI AÇıK = | DEVRE DIŞI
    Temel tabloları ve ilişkili dizinler için dizini işlemi sırasında sorguları ve veri değişikliği kullanılabilir olup olmadığını belirtir.Varsayılan değer KAPALı'dır.

    • AÇIK
      Uzun süreli tablo kilitli tutulur.Bu, sorgular veya devam etmek için bir temel alınan tablo güncelleştirmelerini sağlar.

    • DEVRE DIŞI
      Tablo kilidi uygulanır ve tablo Dizin operasyonun süresi için kullanılamaz.

    Kümelenmiş dizinler düşürdüğünüzde ONLINE seçeneği yalnızca belirtilebilir.Daha fazla bilgi için Açıklamalar bölümüne bakın.

    Not

    Çevrimiçi bir dizin işlemleri yalnızca kullanılabilir SQL Server Enterprise Developer ve değerlendirme sürümleri.

  • MOVE TO { partition_scheme_name**(column_name)** | filegroup_name | "default"
    Şu anda bulunan veri satırlarını taşımak için bir konum belirtir yaprak düzey kümelenmiş dizin.Verileri bir yığın, formu yeni konuma taşınır.Bir bölümleme düzeni veya dosya grubu yeni konumu olarak belirtebilirsiniz, ancak bölümleme düzeni veya dosya grubu varolmalıdır.MOVE TO dizin oluşturulmuş görünümler veya kümelenmemiş dizin için geçerli değil.Bir bölümleme düzeni veya dosya grubunu belirtilmemişse, sonuç tablo aynı bölümleme düzenini ya da dosya grubu için bir kümelenmiş dizin tanımlandığı şekliyle bulunur.

    MOVE TO kullanarak bir kümelenmiş dizin kesilirse, temel tablo üzerinde herhangi bir kümelenmemiş dizinler yeniden oluşturulur, ancak özgün dosya gruplarını veya bölüm düzenlerini içinde kalırlar.Temel tablo, farklı bir dosya grubu ya da bölümleme düzeni taşınırsa, yeni konumunu temel tablo (yığın) ile kesişeceğini kümelenmemiş dizin taşınmaz.Kümelenmemiş dizin ile kümelenmiş dizin önceden hizalanmış olsa bile, bu nedenle, bunlar artık öbek ile hizalı.bölümlenmiş dizin hizalama hakkında daha fazla bilgi için bkz: Bölümlenmiş dizinler için özel yönergeleri.

    • partition_scheme_name**(column_name)**
      Sonuç için konumu olarak bir bölümleme düzeni belirtir tablo.bölümleme düzeni zaten yürütmek yoluyla da oluşturulmuş olması gerekir BÖLÜM DÜZENİ OLUŞTURMA or BÖLÜM DÜZENİNİ DEĞİŞTİR.Hiçbir yere belirtilir ve tablo bölümlendirilir, tablonun aynı bölümleme düzeni varolan kümelenmiş dizin olarak yer alır.

      Sütun düzeni adı, dizin tanımı sütunlar için sınırlandırılmadı.Temel tablo içinde herhangi bir sütun belirlenebilir.

    • filegroup_name
      Sonuç için konumu olarak dosya grubu belirtir tablo.Yok bir konumu varsa ve tablo bölümlendirilir, sonuç tablo aynı dosya grubu kümelenmiş dizin olarak yer alır.dosya grubu varolmalıdır.

    • "varsayılan"
      Sonuç için varsayılan konumu belirtir tablo.

      Not

      Bu bağlamda, varsayılan anahtar değil.It is an identifier for the default filegroup and must be delimited, as in MOVE TO "default" or MOVE TO [default].If "varsayılan" belirtilir QUOTED_IDENTIFIER seçeneği için geçerli oturum küme AÇıK olması gerekir.Varsayılan ayar budur.Daha fazla bilgi için bkz:küme QUOTED_IDENTIFIER (Transact-SQL).

  • {FILESTREAM_ONpartition_scheme_name | filestream_filegroup_name | "varsayılan" }
    FILESTREAM taşımak için bir konum belirtir tablo şu anda kümelenmiş dizin yaprak düzeyini olmasıdır.Verileri bir yığın, formu yeni konuma taşınır.Bir bölümleme düzeni veya dosya grubu yeni konumu olarak belirtebilirsiniz, ancak bölümleme düzeni veya dosya grubu varolmalıdır.FILESTREAM ON, dizin oluşturulmuş görünümler veya kümelenmemiş dizin için geçerli değil.Bir bölümleme düzeni belirtilirse, verileri aynı bölüm düzeninde kümelenmiş dizin için tanımlanan bulunur.

    • partition_scheme_name
      FILESTREAM veriler için bir bölümleme düzeni belirler.bölümleme düzeni zaten yürütmek yoluyla da oluşturulmuş olması gerekir BÖLÜM DÜZENİ OLUŞTURMA or BÖLÜM DÜZENİNİ DEĞİŞTİR.Hiçbir yere belirtilir ve tablo bölümlendirilir, tablonun aynı bölümleme düzeni varolan kümelenmiş dizin olarak yer alır.

      MOVE TO için bir bölümleme düzeni belirtirseniz, aynı bölümleme düzeni FILESTREAM ON için kullanmanız gerekir.

    • filestream_filegroup_name
      FILESTREAM veriler için bir FILESTREAM dosya grubu belirtir.Yok bir konumu varsa ve tablo olan bölümlenmiş değil, verileri varsayılan FILESTREAM dosya grubu bulunmaktadır.

    • "varsayılan"
      FILESTREAM veriler için varsayılan konumu belirtir.

      Not

      Bu bağlamda, varsayılan anahtar değil.It is an identifier for the default filegroup and must be delimited, as in MOVE TO "default" or MOVE TO [default].QUOTED_IDENTIFIER seçeneği "varsayılan" belirtilmezse, geçerli oturum için AÇıK olması gerekir.Varsayılan ayar budur.Daha fazla bilgi için bkz:küme QUOTED_IDENTIFIER (Transact-SQL).

Remarks

Kümelenmemiş bir dizin de çıkarılır dizin tanımı meta veriler kaldırılır ve dizin veri sayfası'nı (B-ağacı) veritabanı dosyalarından kaldırılır.Kümelenmiş bir dizin de çıkarılır, dizin tanımı meta veriler kaldırılır ve kümelenmiş dizin yaprak düzey depolanmış veri satırlarını sıralanmamış kaynaklanan içinde depolanan tablo, yığın.Daha önce dizin tarafından kullanılan tüm alanı regained.Bu alan, daha sonra herhangi bir veritabanı nesnesi için kullanılabilir.

Dizin, içinde bulunduğu dosya grubu çevrimdışıysa kesilmesine edemiyor veya küme salt okunur.

Kümelenmiş dizin oluşturulmuş görünümün kesildiğinde, tüm kümelenmemiş dizin ve aynı görünüm otomatik olarak oluşturulan istatistikleri otomatik olarak bırakılır.El ile oluşturulan istatistikleri bırakılır.

The syntaxtable_or_view_name**.**index_name is maintained for backward compatibility.Bir XML dizin veya kayma dizin geriye dönük uyumlu sözdizimi'ni kullanarak kesilmesine edemiyor.

Dizinleri 128 kapsamlarını veya daha fazla düşürülme, Database Engine işlem tamamlandıktan sonra kadar gerçek sayfa deallocations ve bunların ilişkili kilitlerin defers. Daha fazla bilgi için bkz:Bırakma ve büyük nesneleri yeniden oluşturma.

Bazen dizinleri bıraktı ve yeniden düzenlemek veya yeni bir doldurma faktörü değeri uygulamak ya da veri bir yığın yükleme yeniden düzenlemek için dizin gibi yeniden yeniden oluşturulacak.Kullanarak bunu yapmak için DİZİN DEĞİŞTİRözellikle kümelenmiş bir dizin için daha verimli olur.ALTER DIZINI yeniden OLUşTURMAK için kümelenmemiş dizin yeniden oluşturma yükünü önlemek için en iyi duruma getirmeleri vardır.

DROP INDEX ile Seçenekleri'ni kullanma

kümelenmiş dizin düşürdüğünüzde aşağıdaki dizin seçeneklerini ayarlayabilirsiniz: MAXDOP, ÇEVRIMIÇI ve MOVE YAPıLıR.

MOVE TO kümelenmiş dizin bırakın ve başka dosya grubu veya bölümünü düzeninde tek bir işlem sonuç tabloyu taşımak için kullanın.

ÇEVRIMIÇI belirttiğinizde, AÇıK sorgular ve temel veriye yapılan değişiklikler = ve ilişkili kümelenmemiş dizin DROP INDEX işlemi tarafından engellendi.Yalnızca bir kümelenmiş dizin, aynı anda çevrimiçi kesilmesine.ONLINE seçeneği eksiksiz bir açıklaması için bkz: INDIS (Transact-SQL) CREATE.

Çevrimiçi dizini bir görünümü devre dışı bırakılmış ya da içeren bir kümelenmiş dizin bırakamazsınız text, ntext, image, varchar(max), nvarchar(max), varbinary(max), veya xml Yaprak seviyeli verileri satır, sütun.

ONLINE kullanarak ON = ve MOVE TO seçenekleri ek geçici disk alanı gerektirir.Daha fazla bilgi için bkz:Dizin disk alanı gereksinimlerini belirleme.

Bir dizin de çıkarılır sonra oluşan bir öbek görünür sys.Indexes Katalog görünümü NULL ileadı sütun.Tablo adını görüntülemek için , birleştirmek sys.Indexes with sys.Tables on object_id.Örnek sorgusu için örnek d konusuna bakın.

Çok işlemcili bilgisayarlarda çalıştırma SQL Server 2005 Enterprise Edition veya DROP INDEX tarama gerçekleştirir ve yalnızca diğer sorgular gibi kümelenmiş dizin siliniyor ile ilişkili operasyonlar sıralamak için daha fazla işlemci sonraki bir sürümünü kullanabilir. DROP INDEX deyim MAXDOP dizin seçeneği belirterek çalıştırmak için kullanılan bir işlemci sayısına el ile yapılandırabilirsiniz.Daha fazla bilgi için bkz:Parallel ındex işlemi yapılandırma.

kümelenmiş dizin de çıkarılır, sürece, bölümleme şeması değiştirilmiş öbek karşılık gelen bölümler, veri sıkıştırma ayarını korur.Tüm bölümler bölümleme şeması değiştirilirse, sıkıştırılmamış bir duruma yeniden oluşturulur (DATA_COMPRESSION YOK =).Bırakmak için bir kümelenmiş dizin ve Değiştir bölümleme şeması, aşağıdaki iki adımı gerektirir:

  1. Kümelenmiş dizin bırakın.

  2. Tablo, bir ALTER TABLE'ı kullanarak Değiştir...REBUILD ...option specifying the compression option.

kümelenmiş dizin OFFLINE kesildiğinde, kümelenmiş dizinler yalnızca üst düzeyde kaldırılır; bu nedenle, işlem oldukça hızlıdır.kümelenmiş dizin ÇEVRIMIÇI olarak kesildiğinde SQL Server Öbek kez adım 1 ve bir kez adım 2'için iki kez yeniden oluşturur. Veri sıkıştırma hakkında daha fazla bilgi için bkz: Sıkıştırılmış tablolar ve dizinler oluşturma.

XML dizinleri

Seçenekler, düşürdüğünüzde tarif edilemez birXML dizini. Ayrıca, kullanamazsınız table_or_view_name**.** index_name sözdizimi.Birincil XML dizin kesildiğinde, tüm ilişkili ikincil XML dizinler otomatik olarak bırakılır.Daha fazla bilgi için bkz:XML veri türü sütun dizinleri.

Kayma dizinler

Kayma dizinler yalnızca tablolar desteklenir.Kayma bir dizin düşürdüğünüzde, tüm seçenekleri belirtin ya da değiştiremezsiniz kullanın . index_name.Doğru sözdizimi aşağıdaki gibidir:

BIRAKMA DİZİNİ spatial_index_name AÇIK spatial_table_name;

Kayma dizinler hakkında daha fazla bilgi için bkz: Kayma dizinleri (Veritabanı Altyapısı) ile çalışma.

İzinler

DROP INDEX, en azından yürütmek için , tablo veya Görünüm ALTER izni gereklidir.Bu izin, varsayılan değer olarak verilen sysadmin sabit sunucu rolü ve db_ddladmin and db_owner veritabanı rollerini sabit.

Örnekler

C.Dizin siliniyor

Aşağıdaki örnek dizinini siler. IX_ProductVendor_VendorID üzerinde ProductVendor Tablo.

b.Birden çok dizin siliniyor

Aşağıdaki örnekte, tek bir işlemle iki dizini siler.

c.kümelenmiş dizin çevrimiçi bırakarak ve MAXDOP seçeneği ayarlama

Aşağıdaki örnekte, kümelenmiş dizin ile silinir ONLINE seçenek küme için ON ve MAXDOP küme için 8. MOVE TO seçeneği belirtilmiş olduğundan, sonuç tablo aynı dosya grubu dizini olarak depolanır.

Not

Bu örnekte, yalnızca yürütülebilecek SQL Server 2005 Enterprise Edition veya daha yeni.

d.Bırakarak bir kümelenmiş dizin çevrimiçi ve yeni bir dosya grubu için Tablo taşıma

Aşağıdaki örnek, çevrimiçi kümelenmiş dizin siler ve sonuç (yığın) tablo için dosya grubu taşır. NewGroup kullanarak MOVE TO yan tümce. The sys.indexes, sys.tables, and sys.filegroups katalog görünümleri are queried to verify the index and tablo placement in the filegroups before and after the move.

e.Bir birincil anahtar kısıtlaması çevrimiçi siliniyor

DROP ıNDEX'i kullanarak birincil anahtar veya BENZERSIZ kısıtlama oluşturma sonucu olarak oluşturulan dizinler iptal edemezsiniz.Bunlar, ALTER tablo CONSTRAINT DROP deyim ile bırakılır.Daha fazla bilgi için bkz: TABLO DEĞİŞTİRME.

Aşağıdaki örnek, kısıtlama bırakarak bir birincil anahtar kısıtlaması ile kümelenmiş bir dizini siler.The ProductCostHistory tablo has no yabancı anahtar constraints. Olduğu, bu kısıtlamalar, önce kaldırılması gerekir.

f.XML dizin siliniyor

Aşağıdaki örnekte, XML dizin üzerinde düşünceye ProductModel Tablo.

g.Bir tabloda FILESTREAM kümelenmiş dizin siliniyor

Aşağıdaki örnek, çevrimiçi kümelenmiş dizin siler ve sonuç tablo (yığın) ve veri FILESTREAM MyPartitionScheme bölümleme düzeni, her ikisini birden kullanarak MOVE TO yan tümce ve FILESTREAM ON yan tümce.

USE MyDatabase;
GO
DROP INDEX PK_MyClusteredIndex 
    ON dbo.MyTable 
    MOVE TO MyPartitionScheme
    FILESTREAM_ON MyPartitionScheme;
GO