【问题标题】:utl_match comparing many recordsutl_match 比较多条记录
【发布时间】:2017-05-31 21:03:44
【问题描述】:

我有 2 个表 - 一个有 100 万条记录,另一个有 40000 条记录。

如果另一个表上有类似的字符串,我需要比较表中的每条记录。

问题是这个过程很慢

我需要优化这个程序

用于表格 ( select first_name||' '||last_name as fullname from employee ) 循环

选择计数(*) INTO num_coincidencias 从表 b WHERE utl_match.jaro_winkler_similarity(b.name ,tablea .fullname) > 98

dbms_output.put_line(num_coincidencias); 结束循环;

【问题讨论】:

    标签: oracle performance jaro-winkler utl-match


    【解决方案1】:

    您确实意识到您正在进行 400 亿次比较?无论您使用哪种方法,这都需要很长时间。

    把它变成SQL语句会消除上下文切换,我不知道你的电脑是否有资源在一条SQL语句中完成所有操作:

      SELECT COUNT (*) c, a.first_name || ' ' || a.last_name full_name
        FROM employee a CROSS JOIN tableb b
       WHERE UTL_MATCH.jaro_winkler_similarity (b.first_name, a.first_name || a.last_name) > 98
    GROUP BY a.first_name || ' ' || a.last_name
    

    【讨论】:

      猜你喜欢
      • 2018-11-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-30
      相关资源
      最近更新 更多