DBCC SHRINKFILE
ÊÕËõÏà¹ØÊý¾Ý¿âµÄÖ¸¶¨Êý¾ÝÎļþ»òÈÕÖ¾Îļþ´óС¡£
Óï·¨
DBCC SHRINKFILE
    ( { file_name | file_id }
        { [ ,target_size ]
            | [ , { EMPTYFILE | NOTRUNCATE | TRUNCATEONLY } ] 
        }
    )
²ÎÊý
file_name£º ÊÇÒÑÊÕËõÎļþµÄÂß¼Ãû³Æ¡£ÎļþÃû±ØÐë·ûºÏ±êʶ·ûµÄ¹æÔò¡£Óйظü¶àÐÅÏ¢£¬Çë²Î¼ûʹÓñêʶ·û¡£
file_id£º¡¡¡¡ÊÇÒªÊÕËõµÄÎļþµÄ±êʶ (ID) ºÅ¡£ÈôÒª»ñµÃÎļþ ID£¬ÇëʹÓà FILE_ID º¯Êý»òÔÚµ±Ç°Êý¾Ý¿âÖÐËÑË÷ sysfiles¡£
target_size£ºÊÇÓÃÕ××Ö½Ú±íʾµÄËùÒªµÄÎļþ´óС£¨ÓÃÕûÊý±íʾ£©¡£Èç¹ûûÓÐÖ¸¶¨£¬DBCC SHRINKFILE ½«Îļþ´óС¼õÉÙµ½Ä¬ÈÏÎļþ´óС¡£
Èç¹ûÖ¸¶¨ target_size£¬DBCC SHRINKFILE ½«ÊÔͼ½«ÎļþÊÕËõµ½Ö¸¶¨´óС¡£½«ÒªÊͷŵÄÎļþ²¿·ÖÖеÄÒÑʹÓÃÒ³½«ÖØж¨Î»µ½±£ÁôµÄÎļþ²¿·ÖÖеĿÉÓÿռ䡣
¡¡¡¡ÀýÈ磬Èç¹ûÊý¾ÝÎļþΪ 10MB£¬Ôò´øÓРtarget_size Îª 8 µÄ DBCC SHRINKFILE ½«µ¼ÖÂÎļþ×îºó 2 MB ÖÐËùÓÐÒÑÓÃÒ³ÖØзÖÅäµ½ÎļþÇ° 8 MB ÖеÄÈκοÉÓòÛÖС£
¡¡¡¡DBCC SHRINKFILE ²»»á½«ÎļþÊÕËõµ½Ð¡ÓÚ´æ´¢ÎļþÖеÄÊý¾ÝËùÐèÒªµÄ´óС¡£ÀýÈ磬Èç¹ûʹÓà 10MB Êý¾ÝÎļþÖеÄ7 MB£¬´øÓРtarget_size Îª 6 µÄ DBCC SHRINKFILE Óï¾äÖ»Äܽ«¸ÃÎļþÊÕËõµ½ 7 MB£¬¶ø²»ÄÜÊÕËõµ½ 6 MB¡£
EMPTYFILE£º½«ËùÓÐÊý¾Ý´ÓÖ¸¶¨ÎļþÖÐǨÒƵ½Í¬Ò»Îļþ×éÖеÄÆäËüÎļþ¡£Microsoft® SQL Server™ ²»ÔÙÔÊÐí½«Êý¾Ý·ÅÔÚÓÃÓÚ EMPTYFILE Ñ¡ÏîµÄÎļþÉÏ¡£¸ÃÑ¡ÏîÔÊÐíʹÓà ALTER DATABASE Óï¾ä³ýÈ¥Îļþ¡£
NOTRUNCATE £ºµ¼Ö½«ÊͷŵÄÎļþ¿Õ¼ä±£ÁôÔÚÎļþÖС£
¡¡¡¡µ±Óë target_size Ò»ÆðÖ¸¶¨ NOTRUNCATE ʱ£¬ÊͷŵĿռ䲻»áÊͷŸø²Ù×÷ϵͳ¡£
¡¡¡¡DBCC SHRINKFILE µÄΨһӰÏìÊǽ«ÒÑʹÓõÄÒ³´Ó target_size ÐÐÉÏÃæÖØж¨Î»µ½ÎļþµÄÇ°Ãæ¡£µ±Î´Ö¸¶¨ NOTRUNCATE ʱ£¬ËùÓÐÊͷŵÄÎļþ¿Õ¼ä·µ»Ø¸ø²Ù×÷ϵͳ¡£
TRUNCATEONLY£ºµ¼ÖÂÎļþÖеÄÈκÎδʹÓõĿռäÊͷŸø²Ù×÷ϵͳ£¬²¢½«ÎļþÊÕËõµ½ÉÏÒ»´Î·ÖÅäµÄ´óС£¬´Ó¶ø¼õÉÙÎļþ´óС£¬¶ø²»Òƶ¯ÈκÎÊý¾Ý¡£²»³¢ÊÔ½«ÐÐÖØж¨Î»µ½Î´·ÖÅäÒ³¡£Èç¹ûʹÓà TRUNCATEONLY£¬½«ºöÂÔ target_size¡£
¡¾×¢ÒâÊÂÏî¡¿
£¨1£©ÒªÇл»µ½±»ÊÕËõÎļþËùÔÚÊý¾Ý¿â,use db
DBCC SHRINKFILE ÊÊÓÃÓÚµ±Ç°Êý¾Ý¿âÖеÄÎļþ¡£
½«ÉÏÏÂÎÄÇл»µ½Êý¾Ý¿â£¬ÒÔ·¢³öÒýÓøÃÌض¨Êý¾Ý¿âÖÐÎļþµÄ DBCC SHRINKFILE Óï¾ä¡£Óйظü¸Äµ±Ç°Êý¾Ý¿âµÄ¸ü¶àÐÅÏ¢£¬Çë²Î¼û USE¡£
ËùÉú³ÉµÄÊý¾Ý¿â²»ÄܱȠmodel Êý¾Ý¿â¸üС¡£
ʹÓà DBCC SHRINKFILE ÒÔ½«Îļþ¼õСµ½±ÈÆä×î³õ´´½¨Ê±¸üС¡£Ö®ºó£¬ÎļþµÄ×îС´óСÖØÖÃΪÐÂÖ¸¶¨µÄ´óС¡£
ÈôҪɾ³ýÔÚÎļþÖпÉÄܳöÏÖµÄÈκÎÊý¾Ý£¬ÇëÔÚÖ´ÐÐALTER DATABASE ֮ǰִÐÐ DBCC SHRINKFILE(''''''''file_name'''''''', EMPTYFILE)¡£
£¨2£©ÊÕËõʱ²»Óõ¥Óû§
ÒªÊÕËõµÄÊý¾Ý¿â²»±ØÔÚµ¥Óû§Ä£Ê½Ï£»ÊÕËõÎļþʱ£¬Í¬Ê±ÆäËûÓû§¿ÉÒÔÔÚÊý¾Ý¿âÖй¤×÷¡£²»±ØÔÚµ¥Óû§Ä£Ê½ÏÂÔËÐÐ SQL Server ÒÔ¶ÔϵͳÊý¾Ý¿â½øÐÐÊÕËõ¡£
£¨3£©ÊÕËõÈÕÖ¾Îļþ×¢ÒâÊÂÏî
¶ÔÓÚÈÕÖ¾Îļþ£¬SQL Server ʹÓàtarget_size ÒÔ¼ÆËãÕû¸öÈÕÖ¾µÄÄ¿±ê´óС£»Òò´Ë£¬target_size ÊÇÊÕËõ²Ù×÷Íê³ÉºóÈÕÖ¾ÖеĿÉÓÿռä´óС¡£
Ö®ºó£¬Õû¸öÈÕÖ¾µÄÄ¿±ê´óС¿ÉÒÔ½âÊÍΪÿ¸öÈÕÖ¾ÎļþµÄÄ¿±ê´óС¡£DBCC SHRINKFILE ³¢ÊÔÁ¢¼´½«Ã¿¸öÎïÀíÈÕÖ¾ÎļþÊÕËõÖÁÆäÄ¿±ê´óС¡£
Èç¹ûÐéÄâÈÕÖ¾ÖеÄËùÓÐÂß¼ÈÕÖ¾²¿·Ö¶¼Ã»Óг¬³öÈÕÖ¾ÎļþµÄÄ¿±ê´óС£¬¸ÃÎļþ½«³É¹¦½Ø¶Ï£¬DBCC SHRINKFILE Íê³ÉÇÒ²»ÏÔʾÈκÎÏûÏ¢¡£
È»¶ø£¬Èç¹ûÐéÄâÈÕÖ¾ÖеÄÂß¼ÈÕÖ¾²¿·Ö³¬³öÄ¿±ê´óС£¬Ôò SQL Server Êͷž¡¿ÉÄܶàµÄ¿Õ¼ä²¢·¢³öÒ»ÌõÏûÏ¢¡£
¸ÃÐÅÏ¢¸æËßÄúÐèÒªÖ´ÐÐʲô²Ù×÷À´Òƶ¯Îļþĩⳬ³öÐéÄâÈÕÖ¾µÄÂß¼ÈÕÖ¾²¿·Ö¡£
Ö´ÐÐÍê¸Ã²Ù×÷ºó£¬¿ÉÒÔÖØз¢³ö DBCC SHRINKFILE ÃüÁîÒÔÊÍ·ÅÊ£ÓàµÄ¿Õ¼ä¡£ÓйØÊÕËõÊÂÎñÈÕÖ¾µÄ¸ü¶àÐÅÏ¢£¬Çë²Î¼ûÊÕËõÊÂÎñÈÕÖ¾¡£
ÒòΪÈÕÖ¾ÎļþÖ»ÄÜÊÕËõµ½ÐéÄâÈÕÖ¾Îļþ±ß½ç£¬ËùÒÔ²»¿ÉÄܽ«ÈÕÖ¾ÎļþÊÕËõµ½±ÈÐéÄâÈÕÖ¾Îļþ¸üС£¨¼´Ê¹ÏÖÔÚûÓÐʹÓøÃÎļþ£©¡£
ÀýÈ磬¿ÉÒÔ½«Êý¾Ý¿âµÄ 1 GB ÈÕÖ¾ÎļþÊÕËõµ½Ö»ÓÐ 128 MB¡£Óйؽضϵĸü¶àÐÅÏ¢£¬Çë²Î¼û½Ø¶ÏÊÂÎñÈÕÖ¾¡£ÓйØÈ·¶¨ÐéÄâÈÕÖ¾Îļþ´óСµÄ¸ü¶àÐÅÏ¢£¬Çë²Î¼ûÐéÄâÈÕÖ¾Îļþ¡£
£¨4£©ÊÕËõ½á¹û¼¯ÖÐÁÐ
ϱíÃèÊö½á¹û¼¯ÄÚµÄÁС£
DbId£ºSQL Server ÊÔͼÊÕËõµÄÎļþµÄÊý¾Ý¿â±êʶºÅ¡£FileIdSQL Server ÊÔͼÊÕËõµÄÎļþµÄÎļþ±êʶºÅ¡£
¡¡¡¡¡¡¡¡CurrentSizeÎļþµ±Ç°Õ¼ÓÃµÄ 8KB Ò³Êý¡£MinimumSizeÎļþ¿ÉÒÔÕ¼ÓõÄ×îС 8KB Ò³Êý¡£ÕâÓëÎļþµÄ×îС´óС»ò×î³õ´´½¨Ê±µÄ´óСÏà¶ÔÓ¦¡£UsedPagesÎļþµ±Ç°Ê¹ÓÃµÄ 8KB Ò³Êý¡£EstimatedPagesSQL Server ¹À¼ÆÎļþÄܹ»ÊÕËõµ½µÄ 8KB Ò³Êý¡£
ȨÏÞ£ºDBCC SHRINKFILE ȨÏÞĬÈÏÊÚÓè sysadmin ¹Ì¶¨·þÎñÆ÷½ÇÉ«»ò db_owner ¹Ì¶¨Êý¾Ý¿â½ÇÉ«µÄ³ÉÔ±ÇÒ²»¿ÉתÈá£
ʾÀý£º
ÏÂÀý½« UserDB Óû§Êý¾Ý¿âÖÐÃûΪ DataFil1 µÄÎļþÊÕËõµ½ 7 MB¡£Õâ¸öÃû³ÆÊÇÂß¼Ãû³Æ
USE UserDB GO DBCC SHRINKFILE (DataFil1, 7) GO
¡¾ÊÕËõÊý¾ÝÎļþ¡¢ÈÕÖ¾ÎļþµÄÓ°Ïì¡¿
£¨1£©ÊÕËõÊý¾ÝÎļþµÄÓ°Ïì
Êý¾Ý¿âʹÓÃÊý¾ÝÎļþ£¨À©Õ¹ÃûÊÇmdf »ò ndf)À´´æ´¢Êý¾Ý£¬Ê¹ÓÃÈÕÖ¾Îļþ£¨À©Õ¹ÃûÊÇldf£©À´´æ´¢ÊÂÎñÈÕÖ¾£¬Í¨³£Çé¿öÏ£¬Êý¾ÝÎļþ»á³ÖÐøÔö³¤£¬²»»á×Ô¶¯ÊÍ·Å¿ÕÏпռ䣬ÕâÑù»áµ¼ÖÂÓ²ÅÌ¿Õ¼äºÄ¾¡¡£
Èç¹ûÒ»¸öÊý¾Ý¿âµÄÎļþÓкܶà¿ÕÏпռ䣬ÊÕËõÊý¾Ý¿âÎļþÊÇÒ»ÖÖ½â¾öÓ²ÅÌ¿Õ¼ä½ôÕŵÄÖ±½Ó·½Ê½¡£
ÔÀíÓëÓ°Ï죺
¡¡¡¡ÔÚSQL ServerÖУ¬ÎÒÃÇ¿ÉÒÔʹÓàDBCC ShrinkFileÃüÁîÊÕËõÊý¾ÝÎļþ£¬¸ÃÃüÁîÊ×ÏȽ«Îļþβ²¿µÄÇø£¨extent£©Òƶ¯µ½ÎļþµÄ¿ªÍ·£¬Îļþ½áβµÄ¿ÕÏеÄÓ²Å̿ռ䱻ÊͷŸø²Ù×÷ϵͳ¡£
¡¡¡¡ÕâÖÖ²Ù×÷¾ÍÏñ½Ø¶Ï½«ÎļþµÄβ²¿Ò»Ñù£¬ÕâÖÖ·½Ê½²»ÐèÒªÏûºÄºÜ¶àIO¾ÍÄÜÊͷſռ䣻
¡¡¡¡µ«ÊÇ£¬Èç¹û¿ÕÏв¿·Ö²»ÔÚÎļþĩβʱ£¬ÊÕËõ²Ù×÷±ØÐëɨÃèÊý¾ÝÎļþ£¬²¢¶ÔÕýÔÚ¶ÁÈ¡µÄÒ³Ãæ¼ÓËø£¬°ÑÎļþĩβµÄÇøÒƶ¯µ½Îļþ¿ªÍ·£¬ÕâÊÇÒ»¸öIOÃܼ¯Ð͵IJÙ×÷£¬Ó°ÏìÊý¾Ý¿âµÄÐÔÄÜ£»
¡¡¡¡1¡¢ÊÕËõ²Ù×÷²»ÊÇÒ»¸ö¶ÀÕ¼ÐÐΪ£¬ÔÚ×öÎļþÊÕËõʱ£¬ÆäËûÓû§ÈÔÈ»¿ÉÒÔ¶ÔÊý¾Ý¿â½øÐжÁд²Ù×÷¡£
¡¡¡¡2¡¢ÊÕËõ»áËø±í£¬»á×èÈû
¡¡¡¡3¡¢ÔÚÈÎÒâÒ»¸öʱ¼äµãÍ£Ö¹dbcc shrinkfileÃüÁÈκÎÒѾÍê³ÉµÄ¹¤×÷¶¼½«±£Áô¡£
½¨Ò飺
¡¡¡¡ÊÕËõ Êý¾Ý¿â ÊǷdz£ºÄ·ÑserverÐÔÄܵIJÙ×÷£¬Èç¹ûûÓбØÒª²»ÒªÊÕËõ
¡¡¡¡ÊÕËõ Î޷ǾÍÊÇ°ÑÒѾ·ÖÅä¸øÊý¾Ý¿âÎļþ¿Õ¼äÊÕ»ØÀ´£¬µ«ÊÇ£¬ÊÕËõµÄʱºò ÒªÒƶ¯Êý¾ÝÒ³£¬¶øÇÒ¿ÉÄÜÔì³É´óÁ¿µÄËéƬ£¬Ó°ÏìÐÔÄÜ¡£
¡¡¡¡ÈÕÖ¾ÊÕËõºÍÊý¾ÝÎļþÊÕËõ²»Ò»Ñù£¬ÈÕÖ¾ÖеÄÐéÄâÎļþ״̬ Ö»ÓРÔڿɸ´Óàʱºò  ²ÅÄÜÊÕËõ¡£
¡¡¡¡¶øÇÒ ·²ÊÇÓлµÄÈÕÖ¾µÄÈÕÖ¾ÐéÄâÎļþ¶¼ÊǻµÄ²»ÄÜÊÕËõ¡£
£¨2£©ÊÕËõÈÕÖ¾ÎļþµÄÓ°Ïì
ÈÕÖ¾ÎļþÊÕËõ£¬ »ØÊÕ´ÅÅ̿ռ䡣
¡¡¡¡Êý¾ÝÎļþ ¸ù¾ÝÉè¼Æ  Éè¼ÆµÄ´óС£¬Ò»°ãÇé¿ö²»ÓÃÊÕËõ£¬ÊÕËõ¿ÉÄÜ´øÀ´ÐÔÄܵÄÎÊÌâ¡£
ÈÕÖ¾
¡¡¡¡Èç¹û Ñ¡ÔñµÄÈÕÖ¾»Ö¸´Ä£ÐÍÊÇÍêÈ«£¬Èç¹ûûÓÐÈÕÖ¾½Ø¶Ï£¬ÈÕÖ¾Ôö³¤µÄºÜ´ó£¬
½¨Òé
¡¡¡¡±¸·ÝÈÕÖ¾¡£
¡¡¡¡¡¡¡¡backup log db to disk=''''''''±¸·ÝÉ豸''''''''
¡¡¡¡½Ø¶ÏÈÕÖ¾
¡¡¡¡¡¡¡¡backup log db with no_log
¡¡¡¡È»ºóÊÕËõ¡£
¡¡¡¡¡¡¡¡dbcc shrinkfile(2,10)
  ÔÀí²Î¿¼£ºhttps://www.cnblogs.com/gallen-n/archive/2017/03/15/6555283.html
¡¾×î¼Ñʵ¼ù²½Öè-ÊÕËõÊý¾ÝÎļþ¡¿
1¡¢Êµ¼Ê¹¤×÷ÖÐÊÕËõÊý¾ÝÎļþµÄÇé¿ö±ÈÊÕËõ¿âµÄÇé¿ö¶à£¬²»½¨ÒéÖ±½ÓÊÕËõÊý¾Ý¿â
2¡¢ÊÕËõºÜÈÝÒ׳öÏֵȴý£¬ÊÕËõ»á»°¶ÔÓ¦ sys.sysprocesses µÄ×ֶΠwaitresource ÖµÀàËÆΪ15:1:4700649£¬sys.sysprocesses µÄ×ֶΠ lastwaittype ֵΪPAGEIOLATCH_SH»òPAGEIOLATCH_EXµÈ
3¡¢ÊÕËõÊý¾ÝÎļþʱ£¬²»ÒªÒ»´ÎÐÔÈ«²¿ÊÕËõ¡£ ¿ÉÒÔÿ´ÎÊÕËõ5G×óÓÒ£¬±ÈÈçDataFile1ÓÐ32G£¬Ôòÿ´ÎÊÕËõÈçÏÂ
4¡¢Êý¾ÝÎļþµÄ¿ÉÓÿռä¿ÉÒÔ½áºÏsys.master_files ºÍ FILEPROPERTY(name,''''''''SpaceUsed'''''''') À´²é¿´
5¡¢ÊÕËõµÄ100%½ø¶È¿ÉÒÔͨ¹ý sys.dm_exec_requests µÄ×ֶΠpercent_complete À´¿´
6¡¢ÊÕËõÍêºó£¬¼ÇµÃÖؽ¨Ë÷Òý
alter index all on table_name rebuild   with(online=on) Õâ¸ö²ÎÊý¼ÓÁ˲»Ó°ÏìÏßÉÏ
¡¾×î¼Ñʵ¼ù²½Öè-ÊÕËõÈÕÖ¾Îļþ¡¿
²Î¿¼£º"http://www.yesky.com/imagesnew/software/tsql/ts_dbcc_8b51.htm"