小编Int*_*rel的帖子

执行alter table的数据文件和日志文件的巨大磁盘空间

我的 SQL Server 数据库上的文件大小有一个大问题。

让我把一切都放在上下文中:

在一个空数据库上,我正在创建一个新表:

CREATE TABLE mytable
(
    id int identity(1,1) NOT NULL, 
    description varchar(255) NOT NULL
);
Run Code Online (Sandbox Code Playgroud)

=> 在磁盘上,我有 datafile=8192K 和 logfile=8192k

我将 1'000'000 行插入到我的表中,如下所示:

INSERT INTO mytable(description)
    SELECT TOP (1000000) 
        'test test test test test test test test test test test'
    FROM sys.all_objects AS o1
    CROSS JOIN sys.all_objects AS o2
    CROSS JOIN sys.all_objects AS o3;
Run Code Online (Sandbox Code Playgroud)

=> 在磁盘上,我有 datafile=73M 和 logfile=376M

我正在更改描述列,将其数据类型更改为nvarchar

ALTER TABLE mytable 
    ALTER COLUMN description nvarchar(255) NOT NULL;
Run Code Online (Sandbox Code Playgroud)

=> 在磁盘上,我有 datafile=204M 和 …

sql-server sql-server-2019

7
推荐指数
1
解决办法
315
查看次数

标签 统计

sql-server ×1

sql-server-2019 ×1