在 Microsoft SQL Server 2008 R2 中,空 table 使用了多少 space?
How much space does an empty table use in Microsoft SQL Server 2008 R2?
没有人想简单地删除记录,所以我和我的同事讨论了是附加一个 "deleted" 标志(数据类型 bit
)还是创建 [=] 的副本更好25=] 并将 "deleted" 条记录移动到副本中。
因为我们预计删除操作的数量较少 p.a。但是我们数据中的记录量很大,简单的位可能会增长很多,这就是我们讨论重复项的原因 table.
因此出现问题:table 在 SQL Server 2008 R2 中使用了多少 space?
要查看 space table 在 SQL 服务器数据库中使用了多少:
- 在 SQL Server Management Studio 中,select 来自对象资源管理器的 table,并从 对象资源管理器详细信息 查看 菜单。 (关键字快捷键:F7)
这是显示数据库中所有 table 的元数据的屏幕截图。
我希望至少有一页(8 KB)。应该很简单 to test。如果您的 table 包含 LOB,则可能更多。
如果您想了解任何开销,您可能需要手动计算。创建一个数据库,禁用自动增长,将其填满,尝试创建一个 table(希望它失败),获取包括空闲 space 在内的数据库大小,然后启用自动增长,然后创建一个 table,然后再次检查大小,包括免费 space.
我希望这两种情况的答案都是,"So little that we'd have to be considering floppy disk as a potential storage medium for it to matter." 也就是说,8 KB 是 ~64,000 位,但是 keep in mind how bits are stored.
当您创建 table 时,它将是零长度。
当您从 table 中删除时,它不会释放所有使用的 space。
当您截断 table 时,它将释放所有使用的 space.
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
你可以阅读这个:
没有人想简单地删除记录,所以我和我的同事讨论了是附加一个 "deleted" 标志(数据类型 bit
)还是创建 [=] 的副本更好25=] 并将 "deleted" 条记录移动到副本中。
因为我们预计删除操作的数量较少 p.a。但是我们数据中的记录量很大,简单的位可能会增长很多,这就是我们讨论重复项的原因 table.
因此出现问题:table 在 SQL Server 2008 R2 中使用了多少 space?
要查看 space table 在 SQL 服务器数据库中使用了多少:
- 在 SQL Server Management Studio 中,select 来自对象资源管理器的 table,并从 对象资源管理器详细信息 查看 菜单。 (关键字快捷键:F7)
这是显示数据库中所有 table 的元数据的屏幕截图。
我希望至少有一页(8 KB)。应该很简单 to test。如果您的 table 包含 LOB,则可能更多。
如果您想了解任何开销,您可能需要手动计算。创建一个数据库,禁用自动增长,将其填满,尝试创建一个 table(希望它失败),获取包括空闲 space 在内的数据库大小,然后启用自动增长,然后创建一个 table,然后再次检查大小,包括免费 space.
我希望这两种情况的答案都是,"So little that we'd have to be considering floppy disk as a potential storage medium for it to matter." 也就是说,8 KB 是 ~64,000 位,但是 keep in mind how bits are stored.
当您创建 table 时,它将是零长度。 当您从 table 中删除时,它不会释放所有使用的 space。 当您截断 table 时,它将释放所有使用的 space.
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
你可以阅读这个: