已经明白指数对于选择的查询是有用的..
我需要从s表的列更新t表中的某些列。这两个表包含数百万行。所以在 ArrivalYrMonth 和上创建索引是好的[生成记录标识符] 列,请参阅以下查询?
或我需要在更新前删除这些索引吗?
我必须删除t.colmn1,t.colmn1,t.colmn1,t.colmn1上的索引
UPDATE t
SET t.clmn1=s.clmn1
, t.clmn2=s.clmn2
, t.clmn3=s.clmn3
, t.clmn4=s.clmn4
FROM [AxE_Data] t
INNER JOIN [Tg-DB].[dbo].[AxE_Stg_Data] s
ON t.[Generated_Record_Identifier] = s.[Generated Record Identifier]
WHERE [ArrivalYrMonth] IN ('201204', '201205', '201206')
请让我知道这些建议......
答案 0 :(得分:0)
您不需要删除它并重新创建它。使用这些命令重建索引
DBCC SHOWCONTIG (TABLE_NAME)--To show your table fragmentation
DBCC INDEXDEFRAG (0,TABLE_NAME,'INDEXNAME')
DBCC DBREINDEX (TABLE_NAME, INDXNAME,0 );
有关详细信息,请参阅http://technet.microsoft.com/en-us/library/ms175008.aspx