Sql server SQL Server:表大小+CSV大小的4倍。为什么?
我已将一个2.5 MB的CSV文件导入MS SQL Server 2014 该文件有150000条记录、9列和大量空值 如果我右键单击SQLServerManagementStudio中的表并转到存储,我会看到“数据空间”是11MBSql server SQL Server:表大小+CSV大小的4倍。为什么?,sql-server,Sql Server,我已将一个2.5 MB的CSV文件导入MS SQL Server 2014 该文件有150000条记录、9列和大量空值 如果我右键单击SQLServerManagementStudio中的表并转到存储,我会看到“数据空间”是11MB 该表没有主键、索引和约束。为什么存储空间是CSV文件的4倍以上?我从未想过大小会一样,但我发现如此大的差异令人费解。索引、保留空间、固定大小字符串CHAR1000列等等…共享您的表结构和EXEC sp_spaceused table_name这实际上只是一个带有一些
该表没有主键、索引和约束。为什么存储空间是CSV文件的4倍以上?我从未想过大小会一样,但我发现如此大的差异令人费解。索引、保留空间、固定大小字符串CHAR1000列等等…共享您的表结构和EXEC sp_spaceused table_name这实际上只是一个带有一些随机数据的测试CSV文件。我一直在用它来测试各种ETL工具在有许多空值时是如何猜测数据类型的。CREATE TABLE[dbo].[Alteryx_test2][row number][bigint]NULL、[date1][datetime]NULL、[date2][datetime]NULL、[date3][datetime]NULL、[float1][float]NULL、[integer1][float]NULL、[NULL_field datetime]NULL、[text1][varchar 21 NULL,[text2][varchar]24在[PRIMARY]exec sp_spaceused上为NULL产生:保留:11336 KB;数据:11328 KB您有很多datetime列。即使值为NULL,这也会使用8个字节。因此您可能必须使用第二个表存储非NULL日期,并从第一个表中删除日期以节省空间。