我写了个脚本你看看 是这样的对不对declare @StartSize int DECLARE @EndSize int declare @step intSET @StartSize=537802 SET @EndSize=40000*2 set @step=50while @n<=@EndSize begin set @StartSize=@StartSize-@step DBCC SHRINKFILE (1 , @StartSize)WAITFOR DELAY 5 secondend
declare @StartSize int DECLARE @EndSize int declare @step intSET @StartSize=537650 SET @EndSize=537550 set @step=50while @StartSize<=@EndSize begin set @StartSize=@StartSize-@step DBCC SHRINKFILE (1 , @StartSize)
WAITFOR DELAY '00:00:03' end 我执行这个语句是直接一闪而过...没有任何效果
name rows reserved data index_size unused
STOCK 2720144809 170584496 KB 169145272 KB 1382808 KB 56416 KB
SALES 2761741296 114223816 KB 113301496 KB 879560 KB 42760 KB
TRANS 80095062 10007264 KB 3216056 KB 6616032 KB 175176 KB
ORDER 171336977 13644464 KB 8439864 KB 5172096 KB 32504 KB
Item 287137970 39221512 KB 38983240 KB 218384 KB 19888 KB
SUM_SALES 127987380 2757568 KB 2697848 KB 30088 KB 29632 KB
看下我用sp_spaceused'tb'出来的结果
name rows reserved data index_size unused
STOCK 2720144809 170584496 KB 169145272 KB 1382808 KB 56416 KB
SALES 2761741296 114223816 KB 113301496 KB 879560 KB 42760 KB
TRANS 80095062 10007264 KB 3216056 KB 6616032 KB 175176 KB
ORDER 171336977 13644464 KB 8439864 KB 5172096 KB 32504 KB
Item 287137970 39221512 KB 38983240 KB 218384 KB 19888 KB
SUM_SALES 127987380 2757568 KB 2697848 KB 30088 KB 29632 KB
看下我用sp_spaceused'tb'出来的结果
看了你的这个数据。
你也就是 TRANS 和ORDER 表删了几G数据,
当然 收缩不了多少空间了。。
然后也没必要收缩,,你每天有数据的话,几G数据 很快就填充了。
-- 麻烦楼主,贴一下这个结果SELECT df.[file_id]
,df.[size]
,(CAST(df.[size] AS BIGINT) * 8 / 1024.0) AS [ziseMB]
,(size-FILEPROPERTY(df.name,'SpaceUsed'))/128.0 as free_space_MB
,df.max_size,
df.[growth],
df.is_percent_growth
,df.[name]
,df.physical_name
FROM sys.database_files df
LEFT JOIN sys.filegroups f
ON df.data_space_id = f.data_space_id
CROSS APPLY(
select name,suser_sname(owner_sid) AS ownerName,d.create_date,recovery_model_desc
from sys.databases d WHERE d.name=DB_NAME()
) r1
1 68846392 537862.4375 498565.0625 -1 128 0 DATA F:\DataFile\DATA.mdf
2 435056 3398.875 3358.640625 268435456 10 1 DATA_log D:\DataFile\DATA_log.ldf
3 3840 30 29.9375 -1 1280 0 DATA201105 F:\DataFile\DATA201105.ndf
4 3072 24 23.9375 -1 1280 0 DATA201106 F:\DataFile\DATA201106.ndf
5 3840 30 29.9375 -1 1280 0 DATA201107 F:\DataFile\DATA201107.ndf
6 2178176 17017 7750.875 -1 1280 0 IMPORT D:\DataFile\IMPORT.ndf
7 128 1 0.9375 -1 1280 0 DATA201001 F:\DataFile\DATA201001.ndf
8 128 1 0.9375 -1 1280 0 DATA201002 F:\DataFile\DATA201002.ndf
9 128 1 0.9375 -1 1280 0 DATA201003 F:\DataFile\DATA201003.ndf
10 128 1 0.9375 -1 1280 0 DATA201004 F:\DataFile\DATA201004.ndf
11 256 2 1.875 -1 1280 0 DATA201101 F:\DataFile\DATA201101.ndf
12 768 6 5.9375 -1 1280 0 DATA201102 F:\DataFile\DATA201102.ndf
13 896 7 6.9375 -1 1280 0 DATA201103 F:\DataFile\DATA201103.ndf
14 768 6 5.9375 -1 1280 0 DATA201104 F:\DataFile\DATA201104.ndf
15 128 1 0.9375 -1 1280 0 DATA201005 F:\DataFile\DATA201005.ndf
16 128 1 0.9375 -1 1280 0 DATA201006 F:\DataFile\DATA201006.ndf
17 128 1 0.9375 -1 1280 0 DATA201007 F:\DataFile\DATA201007.ndf
18 128 1 0.9375 -1 1280 0 DATA201008 F:\DataFile\DATA201008.ndf
19 3840 30 29.9375 -1 1280 0 DATA201108 F:\DataFile\DATA201108.ndf
20 3072 24 23.9375 -1 1280 0 DATA201109 F:\DataFile\DATA201109.ndf
21 3328 26 25.9375 -1 1280 0 DATA201110 F:\DataFile\DATA201110.ndf
22 3072 24 23.9375 -1 1280 0 DATA201111 F:\DataFile\DATA201111.ndf
23 3328 26 19.75 -1 1280 0 DATA201112 F:\DataFile\DATA201112.ndf
24 1158040 9047.1875 8557.5625 -1 1280 0 DATA201201 F:\DataFile\DATA201201.ndf
25 1120016 8750.125 0 -1 1280 0 DATA201202 F:\DataFile\DATA201202.ndf
26 1202536 9394.8125 8.125 -1 1280 0 DATA201203 F:\DataFile\DATA201203.ndf
27 1202816 9397 7.6875 -1 1280 0 DATA201204 F:\DataFile\DATA201204.ndf
28 1280760 10005.9375 2.8125 -1 1280 0 DATA201205 F:\DataFile\DATA201205.ndf
29 1259152 9837.125 4.25 -1 1280 0 DATA201206 F:\DataFile\DATA201206.ndf
30 1315504 10277.375 1.6875 -1 1280 0 DATA201207 F:\DataFile\DATA201207.ndf
31 1337272 10447.4375 0.625 -1 1280 0 DATA201208 F:\DataFile\DATA201208.ndf
32 1288080 10063.125 1.375 -1 1280 0 DATA201209 F:\DataFile\DATA201209.ndf
33 1247784 9748.3125 3.4375 -1 1280 0 DATA201210 F:\DataFile\DATA201210.ndf
34 1192056 9312.9375 6.0625 -1 1280 0 DATA201211 F:\DataFile\DATA201211.ndf
35 1221600 9543.75 2.75 -1 1280 0 DATA201212 F:\DataFile\DATA201212.ndf
36 1573784 12295.1875 5.875 -1 1280 0 DATA201301 F:\DataFile\DATA201301.ndf
37 1103360 8620 5.625 -1 1280 0 DATA201302 F:\DataFile\DATA201302.ndf
38 1518080 11860 1.3125 -1 1280 0 DATA201303 F:\DataFile\DATA201303.ndf
39 1539840 12030 6.9375 -1 1280 0 DATA201304 F:\DataFile\DATA201304.ndf
40 1619200 12650 8.75 -1 1280 0 DATA201305 F:\DataFile\DATA201305.ndf
41 1624320 12690 1.125 -1 1280 0 DATA201306 F:\DataFile\DATA201306.ndf
42 1644800 12850 8.625 -1 1280 0 DATA201307 F:\DataFile\DATA201307.ndf
43 1693440 13230 3.8125 -1 1280 0 DATA201308 F:\DataFile\DATA201308.ndf
44 1656320 12940 7.625 -1 1280 0 DATA201309 F:\DataFile\DATA201309.ndf
45 1697720 13263.4375 0.0625 -1 1280 0 DATA201310 F:\DataFile\DATA201310.ndf
46 1463040 11430 5.9375 -1 1280 0 DATA201311 F:\DataFile\DATA201311.ndf
47 1702400 13300 5.1875 -1 1280 0 DATA201312 F:\DataFile\DATA201312.ndf
48 1900800 14850 1.3125 -1 1280 0 DATA201401 F:\DataFile\DATA201401.ndf
49 1649920 12890 16.8125 -1 1280 0 DATA201402 F:\DataFile\DATA201402.ndf
50 1864960 14570 1.25 -1 1280 0 DATA201403 F:\DataFile\DATA201403.ndf
51 1832960 14320 2.75 -1 1280 0 DATA201404 F:\DataFile\DATA201404.ndf
52 1804800 14100 8.3125 -1 1280 0 DATA201405 F:\DataFile\DATA201405.ndf
53 1251840 9780 4 -1 1280 0 DATA201406 F:\DataFile\DATA201406.ndf
54 3840 30 29.9375 -1 1280 0 DATA201407 F:\DataFile\DATA201407.ndf
1 68846392 537862.437500 498565.062500 -1 128 0 DATA F:\DataFile\DATA.mdf
这个文件就是我想解决的文件....不知道为啥这么大了...
DATA这个文件空闲的空间应该是来源于
name rows reserved date index_size unused
PPPitemDaily 216030747 40619624 KB 24553648 KB 15750096 KB 315880 KB
PPPDailyCount 1174286172 288415120 KB 238117104 KB 50248104 KB 49912 KB这两个表被我truncate了. 这里面记录的东西使用率不是很高,我干掉了
收缩报了什么错 还没说吧。
-- 收缩语句,会执行很慢的(数据会大量的在移动)
DBCC SHRINKFILE (1 , 102400) --将fileid为2收缩到100GB
GO
DBCC SHRINKFILE (1 , 102400) --将fileid为1收缩到100GB
GO
收缩报了什么错 还没说吧。
-- 收缩语句,会执行很慢的(数据会大量的在移动)
DBCC SHRINKFILE (1 , 102400) --将fileid为2收缩到100GB
GO
DBCC SHRINKFILE (1 , 102400) --将fileid为1收缩到100GB
GO
先释放空间,然后点收缩对吗?
上次出错,我顺手就点了...忘记切图了.
537,862 最小为39464
我就填写成 缩小到39464那肯定死的人多了,收缩是极其消耗资源的操作,并且导致整个库最多只读,严重情况下无法访问。还是那句,每次100~500M,用个while循环反而快很多
我写了个脚本你看看 是这样的对不对declare @StartSize int
DECLARE @EndSize int
declare @step intSET @StartSize=537802
SET @EndSize=40000*2
set @step=50while @n<=@EndSize begin
set @StartSize=@StartSize-@step
DBCC SHRINKFILE (1 , @StartSize)WAITFOR DELAY 5 secondend
我只是不确定 收缩数据库是这样写的咩DBCC SHRINKFILE (1 , @StartSize)
1代表的应该就是那个DATA
primery, data, YYYYMM(文件组)
这三个. 现在开始清理时候 名叫data的文件 大概是525G 但是实际大小只有200G多点, 我就想把这个文件弄小的.
这个DATA文件包括的表太多了....
DECLARE @EndSize int
declare @step intSET @StartSize=537650
SET @EndSize=537550
set @step=50while @StartSize<=@EndSize
begin
set @StartSize=@StartSize-@step
DBCC SHRINKFILE (1 , @StartSize)
WAITFOR DELAY '00:00:03'
end
我执行这个语句是直接一闪而过...没有任何效果
从 SYSOBJECTS 可以得到所有的用户表名,在 Excel 中用公式生成 SQL 脚本很方便的。
如果要区分文件,只需关联上 SYSINDEXES、SYSFILES 表。