0

我正在开发适用于 SQL Server 的程序。

对于将数据存储在数据库表中,以下哪种方法是正确的?

  1. 在一张表中存储多行(1000 万条记录)

  2. 在几个表中存储更少的行(500000 条记录)(exp:每年创建一个表)

4

3 回答 3

1

这取决于您访问数据的频率。如果您不使用旧记录,那么您可以归档这些记录。拆分表是不可取的,因为它可能会使您在获取数据时感到困惑。

于 2013-02-14T10:30:43.620 回答
1

我会说将所有数据存储在一个表中,但在旧数据上实现一个表分区。对数据进行分区将提高查询性能。

以下是一些参考资料:

http://www.mssqltips.com/sqlservertip/1914/sql-server-database-partitioning-myths-and-truths/

http://msdn.microsoft.com/en-us/library/ms188730.aspx

http://blog.sqlauthority.com/2008/01/25/sql-server-2005-database-table-partitioning-tutorial-how-to-horizo​​ntal-partition-database-table/

请注意,此表分区功能仅在企业版中可用。

于 2013-02-14T10:45:06.080 回答
0

这要看情况!你打算用这些数据做什么?如果您多次查询此数据,则将数据拆分为(例如)年份表可能是更好的解决方案。这样,您将获得更好的性能,因为您必须查询较小的表。但另一方面。使用更大的表和良好的查询,您甚至可能看不到性能问题。如果您只需要存储这些数据,最好只使用 1 个表。

顺便说一句,要将这些数据加载到数据库中,您可以使用 BCP(批量复制),这是一种插入大量行的快速方法。

于 2013-02-17T10:03:37.537 回答