ホームページ > データベース > mysql チュートリアル > SQL Server のテーブル変数のインデックス作成機能はバージョンごとにどのように変更されましたか?

SQL Server のテーブル変数のインデックス作成機能はバージョンごとにどのように変更されましたか?

Barbara Streisand
リリース: 2025-01-12 21:41:47
オリジナル
443 人が閲覧しました

How Have Indexing Capabilities for Table Variables Changed in SQL Server Across Different Versions?

SQL Server テーブル変数のインデックス作成: SQL Server 2000 と最新バージョン

SQL Server 2014 以降

SQL Server 2014 以降では、テーブル変数を宣言するときに、一意でないインデックスを直接インラインで指定できます。

<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 では、テーブル変数でフィルターされたインデックスを使用できるようになりました。

<code class="language-sql">DECLARE @T TABLE
(
c1 INT NULL INDEX ix UNIQUE WHERE c1 IS NOT NULL
)</code>
ログイン後にコピー

SQL Server 2000-2012

SQL Server 2000 ~ 2012 では、テーブル変数は制約を通じてのみインデックス付けできます。

<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>
ログイン後にコピー

伝統的に、テーブルにはクラスター化インデックスまたは非クラスター化ヒープがあります:

  • クラスター化インデックス:

    • 一意のインデックスまたは非一意のインデックスを使用できます (SQL Server は重複に対して一意の識別子を追加します)。
    • 制約を使用して CLUSTERED/NONCLUSTERED を指定することでオーバーライドできます。
  • 非クラスター化インデックス:

    • 一意のインデックスまたは非一意のインデックスを使用できます (SQL Server は非一意のインデックスに対して行ロケーターを追加します)。
    • はクラスター化インデックスと同様にオーバーライドすることもできます。

テーブル変数へのインデックスの実装

SQL Server 2000 ~ 2012 では、次のタイプのテーブル変数インデックスを制約を通じて暗黙的に作成できます。

索引类型 能否创建
唯一聚集索引
非聚集堆上的唯一索引
聚集索引上的唯一非聚集索引

たとえば、元の例の Name 列の一意でない非クラスター化インデックスは、名前と ID の一意のインデックスによってシミュレートできます。

<code class="language-sql">DECLARE @TEMPTABLE TABLE (
     [ID] [int] NOT NULL PRIMARY KEY
    ,[Name] [nvarchar] (255) COLLATE DATABASE_DEFAULT NULL 
)</code>
ログイン後にコピー

以上がSQL Server のテーブル変数のインデックス作成機能はバージョンごとにどのように変更されましたか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート