<¿øÀÎ>

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