【问题标题】:Oracle performance after removing duplicate records删除重复记录后的 Oracle 性能
【发布时间】:2014-11-19 14:30:10
【问题描述】:

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

在删除重复之前和之后是否有测量数据库/表的性能?

【问题讨论】:

  • 如何衡量表现?通过测量您的 Oracle 实例每秒服务的查询总数?还是仅针对 that 表上的一些非常具体的查询?

标签: sql oracle oracle11g oracle-spatial


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

      【解决方案3】:
      • i,从源表创建一个临时表(索引为 当然)
      • ii,在它从临时表(或源,它的平等)中删除重复的行之后
      • iii,见说明 计划好这两张桌子,你就会得到答案

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-11-25
        • 1970-01-01
        • 2015-09-27
        • 2016-12-10
        • 1970-01-01
        • 2021-03-17
        • 1970-01-01
        相关资源
        最近更新 更多