我希望这不是一个愚蠢的问题。我环顾四周,找不到任何像我这样的问题,但是......
我有一个包含人员数据的表,我们知道其中存在重复项。该表包含超过 30k 条目,并且正在不断增长。预计最大容量约为 100k。 我正在运行一个过程来找出重复的条目,但是,这是但是...重复的条目是“相似”的条目,而不是完全重复的条目。
标准如下:如果属于同一组且名称相似,我们认为重复。
同一组只是与另一个表的联接,正确索引等。该部分工作正常。
相似名称是指忽略大小写、修剪并忽略内部空格的相同名称。所以“joHn smith”(初始空格)等于“JOHN SMITH”(中间和最后空格)并且等于“john smith”(初始、中间和最后空格)。
我的初始策略非常慢:我有一个视图和一个存储解析视图的策略。存储会将重复的条目一一删除,因为重复的删除很复杂并且会影响其他几个表。
存储的工作效率或多或少,但视图很糟糕。
该视图将表与人员连接到其自身,并且计划显示,当然,问题在于每次比较时对人员表的完整扫描:
strcmp(替换(lcase(修剪(
s
。name
)),'',''),替换(lcase(修剪(t
。name
)),'',''))= 0
请注意 s。和T。参考同人的表。
有什么建议吗?
非常感谢。
我会做的是这样的:
粗略来说,复杂度如下:
我认为...