gpt4 book ai didi

sql-server - Microsoft SQL Server 2008 R2 中的空表占用多少空间?

转载 作者:行者123 更新时间:2023-12-05 01:01:10 25 4
gpt4 key购买 nike

没有人想简单地删除记录,所以我的同事和我讨论了是附加“已删除”标志(数据类型 bit)更好,还是创建表的副本并将“已删除”记录移到副本中更好。

由于我们预计每年会有少量的删除操作。但是我们的数据中有大量的记录,简单的位可能会增长很多,这就是我们讨论重复表的原因。

因此问题是:SQL Server 2008 R2 中的空表使用多少空间?

最佳答案

创建表时,它将为零长度。
当您从表中删除时,它不会释放所有已用空间。
当您截断表时,它将释放所有已用空间。

CREATE TABLE Test(ID int, Name nchar(4000))
GO

EXEC sp_spaceused N'Test'

INSERT INTO Test(ID, Name) VALUES(1, 'a')

EXEC sp_spaceused N'Test'

DELETE FROM dbo.Test

EXEC sp_spaceused N'Test'

TRUNCATE TABLE dbo.Test

EXEC sp_spaceused N'Test'

DROP TABLE Test

输出:
name    rows    reserved    data    index_size  unused
Test 0 0 KB 0 KB 0 KB 0 KB
Test 1 16 KB 8 KB 8 KB 0 KB
Test 0 16 KB 8 KB 8 KB 0 KB
Test 0 0 KB 0 KB 0 KB 0 KB

你可以阅读这个:

https://dba.stackexchange.com/questions/9141/sql-server-sp-spaceused-gives-zero-rows-but-big-datasize-for-cleaned-table

关于sql-server - Microsoft SQL Server 2008 R2 中的空表占用多少空间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28719185/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com