<¿øÀÎ>
TableÀÇ Field ³»¿ëÀÌ 80% ÀÌ»ó º¯°æ µÇ¸é Åë°è¾÷µ¥ÀÌÆ®°¡ Update µÇµµ·Ï "ÀÚµ¿" ¼³Á¤ÀÌ µÇ¾î ÀÖÀ½
ÃÖ¾ÇÀÇ °æ¿ì User°¡ ¸¹ÀÌ Á¢¼ÓÀ» ÇÏ¿© Insert,Update µîÀÌ ¸¹ÀÌ ¹ß»ýÇÏ´Â ½Ã°£¿¡ Åë°è ¾÷µ¥ÀÌÆ®¸¦ ¼öÇàÇÏ°Ô µÇ¾î
LockÀ» ¹ß»ýÇÏ°Ô µÊ(»ç¿ëÀÚ°¡ ÀûÀ»¶§´Â Åë°è¾÷µ¥ÀÌÆ®¸¦ ÇÏÁö ¾Ê´Ù°¡ »ç¿ëÀÚ°¡ ¸¹ÀÌ µé¾î³ª°Ô µÇ¸é Åë°è¾÷µ¥ÀÌÆ®¸¦
ÇÑ´Ù°í LockÀÌ ¹ß»ýÇÏ°Ô µÇ´Â »çÇ×ÀÌ ¹ß»ýÇÔ)
<SQL¹®>
Åë°è¾÷µ¥ÀÌÆ®¸¦ ÀÚµ¿¿¡¼ ¼öµ¿À¸·Î º¯°æÈÄ »ç¿ë·®ÀÌ ÀûÀº »õº® ¹× °øÈÞÀÏ ½Ã°£¿¡ ¼öÇà
CREATE TABLE #tmp (tablename varchar(255),indexname varchar(255) null ,autostats varchar(255) null,lastupdate datetime)
declare @tablename varchar(255)
declare @indexName varchar(255)
DECLARE c1 CURSOR READ_ONLY
FOR
select name From dbo.sysobjects WHERE xType = 'U'
OPEN c1
FETCH NEXT FROM c1 INTO @tablename
WHILE (@@fetch_status =0)
BEGIN
insert into #tmp (indexname,autostats,lastupdate)
execute ('EXEC sp_autostats ' +@tablename )
update #tmp
set tablename = @tablename
from #tmp where tablename is null
FETCH NEXT FROM c1 INTO @tablename
END
DEALLOCATE c1
DECLARE c2 CURSOR READ_ONLY
FOR
select tablename,indexname From #tmp order by tablename asc
OPEN c2
FETCH NEXT FROM c2 INTO @tablename ,@indexName
WHILE (@@fetch_status =0)
BEGIN
execute ('UPDATE STATISTICS ' +@tablename + ' '+ @indexName +' with NORECOMPUTE ' ) -- Åë°è¾÷µ¥ÀÌÆ®¸¦ ¼öµ¿À¸·Î º¯°æ
WAITFOR DELAY '00:00:02' -- Á¤»óÀûÀÎ ÇÁ·Î¼¼¼¸¦ À§ÇÏ¿© 5ÃÊ°£ Waiting
FETCH NEXT FROM c2 INTO @tablename ,@indexName
END
DEALLOCATE c2