2

在我的项目中(在 JAVA 中),我必须从 db 中选择一些数据。如果数据不存在,我将插入它并再次选择它。我做了两个测试:

1.SELECT-INSERT-SELECT 空表中的数据(150 000 行)。
2.SELECT-INSERT-SELECT 数据(150 000 行)来自填充了 500 万行垃圾(未使用)行的表。

在结果中,我看到第二种情况快了 15% 到 25%。
有人可以解释为什么吗?

4

2 回答 2

0

以上两种情况你查询的是同一张表还是两张不同的表?

如果它们是不同的表,我怀疑第二个表有列索引,而第一个没有。

于 2013-08-19T07:21:48.837 回答
0

你运行了多少次这个测试?

我假设 1) 可能由于表增长而变慢。

您可以使用使用 sp_spaceused 监控 thsi

请参阅 http://www.mssqltips.com/sqlservertip/2794/report-to-capture-table-growth-statistics-for-sql-server/

于 2013-08-19T07:12:49.477 回答