13

nvarchar(max) データ型列を持つテーブルがあります。この列のデータの最大長は 37000 です。nvarchar(4000) は使用できません。この列のインデックスを作成するにはどうすればよいですか? 私のデータはペルシャ語の Unicode テキストです。

4

2 に答える 2

19

1-「INCLUDE」で使用できます

IF OBJECT_ID('tempdb..#example') IS NOT NULL 
BEGIN
    DROP TABLE #example
END

CREATE TABLE #example (id INT PRIMARY KEY IDENTITY(1,1), name VARCHAR(MAX))

CREATE NONCLUSTERED INDEX IDX_NC_temp_example_name ON #example(id) INCLUDE(name)

2-または「CHECKSUM」メソッドの使用を検討できます。これは、ハッシュインデックスの構築、特に長い文字列のインデックス作成のインデックス作成速度を向上させることを目的としています(あなたが持っているように)。詳細を読んで例を見つけることができます:http://msdn.microsoft.com/en-us/library/ms189788.aspx

于 2012-09-09T05:52:45.177 に答える
3

最善の方法はDROP_EXISTING = ON、既存のインデックスを使用して再構築を行う を使用することです。

ここに例があります

CREATE NONCLUSTERED INDEX IDX_NC_temp_example_name ON #example(id) INCLUDE(name)
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = ON, SORT_IN_TEMPDB = ON, DROP_EXISTING = ON, ONLINE = ON, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 80) ON [PRIMARY]
于 2016-03-09T00:19:35.763 に答える