我在 Oracle 11g R2 中有一个表,其中包含大约 90,000 条空间(地理)记录。由于用户的不良做法,数百条记录被重复。
无论如何,在删除重复项之前和之后测量数据库/表的性能吗?
我在 Oracle 11g R2 中有一个表,其中包含大约 90,000 条空间(地理)记录。由于用户的不良做法,数百条记录被重复。
无论如何,在删除重复项之前和之后测量数据库/表的性能吗?
一个有 90000 条记录的表是很小的表。数以百计的重复不到 1% - 这也是相当少量的“垃圾”。这个数量不会造成很大的性能问题(如果您的应用程序设计良好)。我不认为您可以创建测试来显示“之前”和“之后”之间的性能有任何显着差异。
您也可以删除重复项,然后创建唯一约束以防止将来出现这种情况。
衡量 Oracle 数据库全局性能的一种方法是通过网格控制(又名企业管理器)的工具,它显示了许多测量值(CPU、IO、内存等)。
另一种方法是在 sqlplus 中运行一些典型的查询(使用 SET TIMING ON),并比较它们在移除之前和移除之后的响应时间。那是假设“性能”是指这些查询的经过时间。
就像 Dmitry 所说的 90,000 行是一个非常小的表,其中只有一小部分重复行。这些重复的存在与否不太可能产生任何明显的差异。