Nei*_*ght 3 sql-server diskspace nvarchar sql-server-2008-r2
如果我声明一个列nvarchar(max),我明白这将分配2Gb的空间,但是一旦我将更改保存到表中,它是否会立即占用2Gb的磁盘空间?或者,是否注意到此列将允许在列中填充2Gb数据?
据我了解,在需要之前不会分配空间.
请尝试以下查询:
CREATE TABLE SizeTest (
MyID int primary key
)
INSERT INTO SizeTest SELECT 1
UNION SELECT 2
UNION SELECT 3
UNION SELECT 4
UNION SELECT 5
EXEC sp_spaceused 'SizeTest'
ALTER TABLE SizeTest ADD MyBigText nvarchar(max)
EXEC sp_spaceused 'SizeTest'
UPDATE SizeTest SET MyBigText = 'This is big text' WHERE MyID = 1
EXEC sp_spaceused 'SizeTest'
DROP TABLE SizeTest
Run Code Online (Sandbox Code Playgroud)
通过执行此语句,您应该为所有三个sp_spaceused调用获取以下内容:
name rows reserved data index_size unused
SizeTest 5 16 KB 8 KB 8 KB 0 KB
Run Code Online (Sandbox Code Playgroud)
绝不分配2GB.
| 归档时间: |
|
| 查看次数: |
1217 次 |
| 最近记录: |