是否在sql Server 2000中更新之前删除索引

时间:2013-08-21 09:02:17

标签: sql-server sql-server-2008 sql-server-2005 sql-server-2008-r2 sql-server-2000

已经明白指数对于选择的查询是有用的..

我需要从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')

请让我知道这些建议......

1 个答案:

答案 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