0

我在 Oracle 11g R2 中有一个表,其中包含大约 90,000 条空间(地理)记录。由于用户的不良做法,数百条记录被重复。

无论如何,在删除重复项之前和之后测量数据库/表的性能吗?

4

3 回答 3

2

一个有 90000 条记录的表是很小的表。数以百计的重复不到 1% - 这也是相当少量的“垃圾”。这个数量不会造成很大的性能问题(如果您的应用程序设计良好)。我不认为您可以创建测试来显示“之前”和“之后”之间的性能有任何显着差异。

您也可以删除重复项,然后创建唯一约束以防止将来出现这种情况。

于 2014-11-18T13:27:56.903 回答
1

衡量 Oracle 数据库全局性能的一种方法是通过网格控制(又名企业管理器)的工具,它显示了许多测量值(CPU、IO、内存等)。

另一种方法是在 sqlplus 中运行一些典型的查询(使用 SET TIMING ON),并比较它们在移除之前和移除之后的响应时间。那是假设“性能”是指这些查询的经过时间。

就像 Dmitry 所说的 90,000 行是一个非常小的表,其中只有一小部分重复行。这些重复的存在与否不太可能产生任何明显的差异。

于 2014-11-18T18:44:01.987 回答
0
  • i,从源表创建一个临时表(当然有索引)
  • ii,在它从临时表(或源,它的平等)中删除重复的行之后
  • iii,看看这两个表的解释计划,你就会得到答案
于 2014-11-18T13:12:36.203 回答