Настройка производительности на соответствие строк между двумя столбцами таблиц - PullRequest
0 голосов
/ 10 декабря 2018

У меня есть две таблицы:

Таблица 1: Является ли отфильтрованная или я могу сказать, что промежуточная таблица содержит отфильтрованные записи, возможно, в миллионах или в отдельных записях.

Таблица 2: Таблица со всеми вставленными данными, насчитывающая более ста миллионов записей.

Примечание. Обе таблицы имеют более 40 столбцов и имеют индекс по необходимым столбцам..

Ниже приведены примеры данных для понимания требования.

create table pattern1 ---This is staging table
(
  col1 varchar(100)
);

insert into pattern1 values('John Mak'),('Omont Boy'),('Will Smith'),('Mak John');

create table pattern2
(
 col1 varchar(100)
);  

insert into pattern2  values('John Mak'),('Smith Will'),('Jack Don');

Ожидаемый результат :

 col1
 ----------
 John Mak
 Smith Will

Объяснение ожидаемого результата:Результат сопоставления должен в результате отображаться в любой последовательности, например Smith Will и Will Smith.

Запрос :

SELECT p2.* 
FROM Pattern2 P2
INNER JOIN Pattern1 P1 ON P2.col1 LIKE '%'||P1.col1||'%' 
--May required more than one columns here to match strings.

Приведенный выше запрос занял более 20 минут и продолжает работать с сотнями миллионов записей.Любые другие подходящие строки поиска?

...