Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server SQL Server:表大小+CSV大小的4倍。为什么?_Sql Server - Fatal编程技术网

Sql server SQL Server:表大小+CSV大小的4倍。为什么?

Sql 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这实际上只是一个带有一些

我已将一个2.5 MB的CSV文件导入MS SQL Server 2014

该文件有150000条记录、9列和大量空值

如果我右键单击SQLServerManagementStudio中的表并转到存储,我会看到“数据空间”是11MB


该表没有主键、索引和约束。为什么存储空间是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日期,并从第一个表中删除日期以节省空间。