columnstore Index (Transact-sql) oluştur
Columnstore dizin üzerinde belirtilen bir tablo oluşturur. Columnstore dizin sıkıştırılmış kümelenmemiş dizin türüdür. Columnstore dizin tablo başına sınırı yoktur. Tabloda veri önce dizin oluşturulabilir. Tablo columnstore dizini güncelleştirilemiyor. Columnstore dizinler hakkında daha fazla bilgi için bkz: Sütun Deposu Dizinleri. Columnstore dizin yapısı hakkında daha fazla bilgi için bkz: Sütun Deposu Dizinleri.
[!NOT]
İlişkisel bir dizin oluşturma hakkında daha fazla bilgi için bkz: Index (Transact-sql) oluştur. xml dizin oluşturma hakkında daha fazla bilgi için bkz: xml Index (Transact-sql) oluştur. Kayma dizin oluşturma hakkında daha fazla bilgi için bkz: KAYMA Index (Transact-sql) oluştur.
Transact-SQL Sözdizim Kuralları
Sözdizimi
CREATE [ NONCLUSTERED ] COLUMNSTORE INDEX index_name
ON <object> ( column [ ,...n ] )
[ WITH ( <column_index_option> [ ,...n ] ) ]
[ ON {
{ partition_scheme_name ( column_name ) }
| filegroup_name
| "default"
}
]
[ ; ]
<object> ::=
{
[database_name. [schema_name ] . | schema_name . ]
table_name
{
<column_index_option> ::=
{
DROP_EXISTING = { ON | OFF }
| MAXDOP = max_degree_of_parallelism
}
Bağımsız değişkenler
KÜMELENDİRİLMEMİŞ
Mantıksal sıralama tablosu belirtir, columnstore bir dizin oluşturur. Kümelenmiş columnstore dizinler desteklenmez.COLUMNSTORE
Dizin columnstore dizin olacağını gösterir.index_name
Dizinin adıdır. Dizin adları bir tablo veya görünüm içinde benzersiz olmalıdır, ancak bir veritabanı içinde benzersiz olmaları gerekmez. Dizin adları kuralları izleyin gerekir tanımlayıcıları.column
Dizin dayandığı sütun veya sütunları olan. Columnstore dizin 1024 sütunları sınırlıdır.ON partition_scheme_name**(column_name)**
Bölümlenmiş bir dizin bölümleri olan eşlenen filegroups tanımlayan bölüm düzenini belirtir. Bölüm düzeni yürüterek veritabanı içinde varolmalıdır create PARTITION düzeni. column_namehangi karşı bölümlenmiş bir dizin bölümlenmesi sütun belirtir. Bu sütunun veri türü, uzunluk, aynı olmalıdır ve hassas bağımsız bölüm işlev partition_scheme_namekullanıyor. column_nameDizin tanımı sütunlarda sınırlı değildir. Columnstore dizin böldüğünüzde Veritabanı Altyapısızaten belirtilmezse, bölümleme sütununda dizin, bir sütun ekler.Eğer partition_scheme_nameya filegroupbelirtilen ve tablo bölümlenmiş, dizin aynı bölümleme sütununda, tablo kullanarak aynı bölüm düzenini yerleştirilir.
Dizinler bölümleme hakkında daha fazla bilgi için bkz: Bölümlenmiş tablolar ve dizinler.
ONfilegroup_name
Belirtilen dizin belirtilen filegroup oluşturur. Hiçbir konumu belirtilir ve tablo veya görünümü olmayan bölümlenmiş dizini aynı filegroup temel tablo veya Görünüm kullanır. Filegroup önceden mevcut olmalıdır.on "varsayılan''
Belirtilen dizin varsayılan filegroup oluşturur.Bu kapsamda, terim varsayılan bir anahtar kelime değildir. Bu varsayılan filegroup tanımlayıcısı ve, içinde olarak ayrılmış gerekir "varsayılan" ya da on varsayılan**[]**. Eğer "varsayılan" belirtilmişse, quoted_ıdentıfıer seçeneği geçerli oturum için on olmalıdır. Bu, varsayılan ayardır. Daha fazla bilgi için, bkz. set QUOTED_IDENTIFIER (Transact-sql).
<nesne>:: =
Dizin oluşturulacak tam veya nonfully nitelikli nesnedir.
database_name
Veritabanının adıdır.schema_name
Tablonun ait olduğu şemanın adıdır.table_name
İndekslenecek tablonun adıdır.
<column_index_option>:: =
Dizin sütun oluştururken kullanılacak seçenekleri saklamak belirtir.
DROP_EXISTING
Belirtir adlı, preexisting dizin bırakılan ve yeniden. Varsayılan değer OFF'tur.- ON
Varolan dizin bırakılan ve yeniden. Belirtilen dizin adı şu anda varolan bir dizini ile aynı olmalıdır; Ancak, Dizin tanımı değiştirilebilir. Örneğin, farklı sütunlar veya dizin seçeneklerini belirtebilirsiniz.
- OFF
Belirtilen dizin adı zaten varsa bir hata görüntülenir. DROP_EXISTING kullanarak dizin türü değiştirilemez. Geriye dönük uyumlu sözdiziminde ile DROP_EXISTING DROP_EXISTING ile'için eşdeğerdir = on.
- ON
MAXDOP =max_degree_of_parallelism
Geçersiz kılan Maksimum ölçüde parallelism sunucu yapılandırma seçeneği yapılandırmakdizini işlem süresi için yapılandırma seçeneği. Paralel plan yürütmede kullanılan işlemci sayısını sınırlamak için MAXDOP kullanın. En fazla değer 64 işlemcidir.max_degree_of_parallelismaşağıdakilerden biri olabilir:
1
Paralel plan üretimini baskılar.>1
Paralel dizin işlemi için belirtilen veya geçerli sistem yüküne göre daha az kullanılan işlemci sayısını sınırlar.0 (varsayılan)
Geçerli sistem iş yüküne bağlı olarak gerçek işlemci sayısını veya daha azını kullanır.
Daha fazla bilgi için, bkz. Parallel ındex işlemi yapılandırma.
[!NOT]
Paralel dizin işlemleri her Microsoft SQL Server sürümünde bulunmaz. Sürümü tarafından desteklenen özellikleri listesi için SQL Serverbakın SQL Server 2012 Sürümleri Tarafından Desteklenen Özellikler.
Açıklamalar
Dizinler üzerinde geçici bir tablo oluşturulabilir. Tablo bırakılan veya oturumu sona dizinler bırakılır.
Ortak iş veri türlerini bir columnstore dizini dahil edilebilir. Aşağıdaki veri türleri bir columnstore dizini dahil edilebilir.
char ve varchar
ncharand nvarchar (except varchar(max) and nvarchar(max))
decimal(ve numeric) (18 Basamak büyük bir hassasiyetle hariç.)
int, bigint, smallint, and tinyint
float(vereal)
bit
money ve smallmoney
Tüm tarih ve Saat veri türleri (dışında datetimeoffset2'den büyük ölçekli)
Aşağıdaki veri türlerini columnstore dizininde yer alamaz.
binary ve varbinary
ntext, text, and image
varchar(max) ve nvarchar(max)
uniqueidentifier
rowversion(vetimestamp)
sql_variant
decimal(ve numeric) 18 basamak büyük bir hassasiyetle
datetimeoffsetÖlçek ile 2'den büyük
clr türleri ( hierarchyid ve kayma türleri)
xml
Temel kısıtlamalar
Columnstore dizin:
Birden fazla 1024 sütun olamaz.
Kümelenmiş olamaz. Yalnızca dizinler kümelendirilmemiş columnstore mevcuttur.
Benzersiz bir dizin olamaz.
Bir görünüm oluşturulamıyor veya görünümü dizine.
Seyrek sütun içeremez.
Birincil anahtar veya yabancı anahtar olarak davranamaz.
Kullanılarak değiştirilemez ALTER INDEXdeyimi. Bırakma ve yerine columnstore dizin yeniden oluşturun. (Sen-ebilmek kullanma ALTER INDEXdevre dışı bırakabilir ve bir columnstore dizini yeniden.)
Tarafından ile oluşturulamaz INCLUDEanahtar.
İçeremez ASCya DESCdizin sıralama anahtar. Columnstore dizinler sıkıştırma algoritmaları göre sıralanır. Sıralama performans avantajları çoğunu ortadan kaldırabilir.
Columnstore dizinler aşağıdaki özellikleri ile birlikte kullanılamaz:
Sayfa ve satır sıkıştırması ve vardecimaldepolama biçimi (bir columnstore dizini zaten farklı bir biçimde sıkıştırılır.)
Çoğaltma
Değişiklik izleme
Değişiklik verilerini yakalama
FILESTREAM
Performans yararları ve kısıtlamaları columnstore dizinler hakkında daha fazla bilgi için bkz: Sütun Deposu Dizinleri.
İzinler
Tabloda ALTER izni gerektirir.
Örnekler
A.Basit bir kümelendirilmemiş dizin oluşturma
Aşağıdaki örnek, basit bir tablo ve kümelenmiş bir dizin oluşturur ve columnstore dizin oluşturma sözdizimi gösterilmiştir.
CREATE TABLE SimpleTable
(ProductKey [int] NOT NULL,
OrderDateKey [int] NOT NULL,
DueDateKey [int] NOT NULL,
ShipDateKey [int] NOT NULL);
GO
CREATE CLUSTERED INDEX cl_simple ON SimpleTable (ProductKey);
GO
CREATE NONCLUSTERED COLUMNSTORE INDEX csindx_simple
ON SimpleTable
(OrderDateKey, DueDateKey, ShipDateKey);
GO
CREATE TABLE SimpleTable
(ProductKey [int] NOT NULL,
OrderDateKey [int] NOT NULL,
DueDateKey [int] NOT NULL,
ShipDateKey [int] NOT NULL);
GO
CREATE CLUSTERED INDEX cl_simple ON SimpleTable (ProductKey);
GO
CREATE NONCLUSTERED COLUMNSTORE INDEX csindx_simple
ON SimpleTable
(OrderDateKey, DueDateKey, ShipDateKey);
GO
B.Tüm seçenekleri kullanarak basit bir kümelendirilmemiş dizin oluşturma
Aşağıdaki örnek, basit bir tablo ve kümelenmiş bir dizin oluşturur ve columnstore dizin oluşturma sözdizimi gösterilmiştir.
CREATE NONCLUSTERED COLUMNSTORE INDEX csindx_simple
ON SimpleTable
(OrderDateKey, DueDateKey, ShipDateKey)
WITH (DROP_EXISTING = ON,
MAXDOP = 2)
ON "default"
GO
CREATE NONCLUSTERED COLUMNSTORE INDEX csindx_simple
ON SimpleTable
(OrderDateKey, DueDateKey, ShipDateKey)
WITH (DROP_EXISTING = ON,
MAXDOP = 2)
ON "default"
GO
Bölümlenmiş tabloları kullanarak daha karmaşık bir örnek için bkz: Sütun Deposu Dizinleri.
Ayrıca bkz.
Başvuru
sys.column_store_dictionaries (Transact-sql)
sys.column_store_segments (Transact-sql)
PARTITION FUNCTION (Transact-sql) oluştur
PARTITION düzeni (Transact-sql) oluştur