Pengindeksan Pembolehubah Jadual Pelayan SQL: SQL Server 2000 vs Versi Moden
SQL Server 2014 dan ke atas
Dalam SQL Server 2014 dan kemudian, anda boleh menentukan indeks bukan unik secara terus sebaris apabila mengisytiharkan pembolehubah jadual:
<code class="language-sql">DECLARE @T TABLE ( C1 INT INDEX IX1 CLUSTERED, C2 INT INDEX IX2 NONCLUSTERED, INDEX IX3 NONCLUSTERED(C1,C2) );</code>
SQL Server 2016 seterusnya membenarkan penggunaan indeks yang ditapis pada pembolehubah jadual:
<code class="language-sql">DECLARE @T TABLE ( c1 INT NULL INDEX ix UNIQUE WHERE c1 IS NOT NULL )</code>
SQL Server 2000-2012
Dalam SQL Server 2000-2012, pembolehubah jadual hanya boleh diindeks melalui kekangan:
<code class="language-sql">DECLARE @TEMPTABLE TABLE ( [ID] [INT] NOT NULL PRIMARY KEY, [Name] [NVARCHAR] (255) COLLATE DATABASE_DEFAULT NULL, UNIQUE NONCLUSTERED ([Name], [ID]) ) </code>
Secara tradisinya, jadual mempunyai indeks berkelompok atau timbunan tidak berkelompok:
Indeks berkelompok:
Indeks bukan berkelompok:
Melaksanakan indeks pada pembolehubah jadual
Dalam SQL Server 2000-2012, jenis indeks pembolehubah jadual berikut boleh dibuat secara tersirat melalui kekangan:
索引类型 | 能否创建 |
---|---|
唯一聚集索引 | 是 |
非聚集堆上的唯一索引 | 是 |
聚集索引上的唯一非聚集索引 | 是 |
Sebagai contoh, indeks bukan berkelompok bukan unik pada lajur Nama dalam contoh asal boleh disimulasikan oleh indeks unik pada Nama dan ID:
<code class="language-sql">DECLARE @TEMPTABLE TABLE ( [ID] [int] NOT NULL PRIMARY KEY ,[Name] [nvarchar] (255) COLLATE DATABASE_DEFAULT NULL )</code>
Atas ialah kandungan terperinci Bagaimanakah Keupayaan Pengindeksan untuk Pembolehubah Jadual Berubah dalam Pelayan SQL Merentasi Versi Berbeza?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!