1
我有一個表叫test
我在其中插入40000條記錄,我拆我的數據庫文件分成兩個文件組是這樣的:當我刪除我的記錄在SQL Server大小的文件不會降低
如您所見,基於循環算法的兩個文件的大小增加了160 mb。 在此之後,我刪除了我的表中的數據。但兩個文件(FileGroup) 的大小保持在160 mb。爲什麼?
我有一個表叫test
我在其中插入40000條記錄,我拆我的數據庫文件分成兩個文件組是這樣的:當我刪除我的記錄在SQL Server大小的文件不會降低
如您所見,基於循環算法的兩個文件的大小增加了160 mb。 在此之後,我刪除了我的表中的數據。但兩個文件(FileGroup) 的大小保持在160 mb。爲什麼?
這是因爲SQL Server假定如果您的數據庫有一次這麼大,它可能需要再次這樣做。爲了節省每次SQL Server想要使用更多磁盤空間時需要從操作系統請求空間的開銷,它只會保留它所擁有的內容並根據需要填充它,除非您手動發出SHRINK DATABASE
命令。
您將需要收縮數據文件來做到這一點。 Sql Server的數據文件幾乎總是沒有空間,所以空間被分配到磁盤上,儘管這個空間沒有被數據使用。一旦文件對於數據來說太小,它將增長文件。如果您想釋放文件中未使用但聲明的空間,則需要在該數據文件上執行縮小操作。 – Igor
文件如何工作,在刪除後縮小文件非常昂貴,因爲所有現有數據都需要重新編寫/重寫。文件在配置的最大/增長範圍內增長。 –
你的意思是當我的數據庫中的數據被刪除時,我不得不縮小我的數據庫? –