Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.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_Oracle_Large Data Volumes_Large Data - Fatal编程技术网

Sql server 我如何设计一个能够存储非常大数据的表?

Sql server 我如何设计一个能够存储非常大数据的表?,sql-server,oracle,large-data-volumes,large-data,Sql Server,Oracle,Large Data Volumes,Large Data,我需要在Oracle中设计一个表,它将在一天内存储2-5 TB的数据。它可以增长到200TB,当超过200TB时,记录将被清除 将其保留在OLTP中是可行的选择,还是需要将其转移到数据仓库数据库中? 请告知我在设计此表或数据库的架构时应牢记的注意事项 另外,如果它是SQL server,请提供建议,因为我可以使用任何一个数据库。我将首先查看您的磁盘子系统,并确保它能够处理您每天要处理的2-5 TB负载。Oracle和SQL Server都内置了分区。在SQL Server中,您还可以使用压缩来最

我需要在Oracle中设计一个表,它将在一天内存储2-5 TB的数据。它可以增长到200TB,当超过200TB时,记录将被清除

将其保留在OLTP中是可行的选择,还是需要将其转移到数据仓库数据库中? 请告知我在设计此表或数据库的架构时应牢记的注意事项


另外,如果它是SQL server,请提供建议,因为我可以使用任何一个数据库。

我将首先查看您的磁盘子系统,并确保它能够处理您每天要处理的2-5 TB负载。Oracle和SQL Server都内置了分区。在SQL Server中,您还可以使用压缩来最小化磁盘上的存储(不确定Oracle)


这将主要用于OLAP或OLTP吗?

这种规模将您置于VLDB领域(非常大的数据库)。 在那个高度,情况根本不同

如果您的申请没有充分的责任要求,您的问题将无法得到回答。您需要针对应用程序应该对数据执行的操作进行性能设计

我的建议是让有经验的人上船,否则你几乎100%肯定会失败

如果您使用Oracle,它提供了几种您需要非常小心使用的分区类型。出于管理目的(移动数据、构建索引、恢复数据)以及查询性能,您需要分区:

  • 范围分区,例如按日期范围
  • 列表分区,用于存储数据片段,如国家('SE','US','GB'))
  • 散列分区。基于哈希函数将数据存储在其中一个分区中
  • 或上述任何组合
此外,您还需要有人知道如何构建和配置具有真正令人敬畏的I/O吞吐量的monster机器。您需要超过1GB/s,当您还需要存储200 TB时,这并不便宜。实际上,如果这200 TB只是表数据,则需要将其加倍或加倍,才能创建索引、聚合表、备份等


很抱歉,我无法为您提供一个可供使用的解决方案,但我想确保您了解,您不仅仅是在构建一个高于平均大小的数据库。它是巨大的

你可能会得到更好的答案,我只是确认Oracle也支持表和索引压缩,一天2-5 TB?无论压缩与否,我都会远离索引。如果需要查询,请复制到OLAP结构。当然是分区。