我有一张表已经增加到超过100万条记录......今天(全部有效)

我需要加快速度......表格分区会成为答案吗?如果是这样,我可以在构建查询时获得一些帮助吗?

该表有4个bigint值键,所有这些键都有索引的主键和用户ID上的索引desc,其他值最大值为139(现在只有10,000多个用户)

任何帮助或指示都将受到赞赏:)

有帮助吗?

解决方案

您可能只需要调整查询和/或索引。 100万条记录不应该导致你的问题。我有一张有几亿条记录的桌子。能够保持相当高的性能。我发现SQL Server探查器对这些东西非常有帮助。它可以在SQL Server Management Studio中使用(但不幸的是,不是快速版本)。你也可以 Query>包括实际执行计划,以查看查询期间花费时间的图表。

其他提示

在考虑分区之前,您应该调查索引和查询工作负载。如果已完成大量插入操作,则聚簇索引可能会碎片化。

即使您使用的是SQL Server Express,您仍然可以使用此免费工具进行配置: Microsoft SQL Server 2005的Profiler / 2008 Express Edition

我同意其他评论。使用相当小的数据库(最大的表1MM记录),如果优化查询并且其余代码不使用冗余查询滥用数据库,则数据库中的任何活动都不太可能提供明显的负载。这是一个了解数据库查询和其他代码之间相互作用的好机会。

在这里查看我在sql表分区上的实验[ http://faiz.kera.la/2009/08/02/does-partitioning-improve-performance-for-sql-tables/] 。希望这对你有所帮助......对于你的情况,1M不是一个相当大的数字。可能需要对查询进行微调,而不是进行分区。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top