Sqlserver filestream 引发文件数剧增

如果不使用checkpoint,文件数会剧增

参考:https://docs.microsoft.com/zh-cn/sql/relational-databases/logs/database-checkpoints-sql-server?view=sql-server-2017

         

文件还没有计算完,已经上亿了

       

       

在开发机上,先清空数据,确保文件流的目录下没有文件

@@@code

TRUNCATE TABLE dbo.Position

CHECKPOINT

     

@@#

然后尝试插入数据

@@@code

INSERT dbo.Position

(

ID,

HourBand,

Data

)

VALUES

(NEWID(), 1, sharedb.[dbo].[f_gbk2Bin]('aa', 2));

@@#

只有一个文件,很正常

修改数据,但实际内容并未修改,

@@@code

UPDATE dbo.Position SET Data=sharedb.[dbo].[f_gbk2Bin]('aa',2)

@@#

 

多出了一个文件

再进行一次无效插入

@@@code

INSERT dbo.Position

(

ID,

HourBand,

Data

)

VALUES

(NEWID(), 1, sharedb.[dbo].[f_gbk2Bin]('aa', 2));

@@#

结果又多了一个文件

文件如下:

         

换一种思路

先重复三次更新,出现4个文件,再执行一次checkpoint,大约10秒后多余文件消失

         

     

posted @ 2019-04-30 16:41  秦秋随  阅读(454)  评论(0编辑  收藏  举报