У меня есть две таблицы Table1
и Table2
где мне нужно найти все строки, которая удовлетворяет условию Fuzzy_Qgram (приблизительно оптимизация согласования) между Table1.LastName
и Table2.LastName
Есть ли альтернатива перекрестное соединение в TSQL
Вот мой запрос:
Select * from Table1
Cross Join
Table2
Where Fuzzy_Qgram(Table1.LastName,Table2.LastName)> =1.5
в этом запросе Каждая строка в Table1
будет умножается с каждой строкой в Table2
в и строки, которые удовлетворяют Fuzzy_Qgram(Table1.LastName,Table2.LastName)> =1.5
, будут возвращены.
Исполнение запроса очень медленно, так как у меня есть более чем 300 000 строк в Table1
и 3000 строк в Table2
Есть ли альтернатива Cross Join
для таких запросов для более эффективного и быстрого оптимизации?
Ваш fn скалярный, и я ожидал бы проблемы там. Не могли бы вы переместить «нечеткую» логику, например? Крест применяется? – OzrenTkalcecKrznaric
Нет, 'Table2' - это * вид *, а не таблица. Извините, ошибка ввода. – user42995
@Ozren Tkalčec Krznarić: Да, он возвращает скалярное значение, на которое я применяю условие – user42995