У меня есть следующий запрос SQL, чтобы найти данные, которых нет в другой таблице, и из-за последовательностей замены их выполнение занимает более 35 минут?
DECLARE @p0 NVarChar(4) = 'UUID'
DECLARE @p1 NVarChar(1) = ''
DECLARE @p2 NVarChar(1) = 'p'
DECLARE @p3 NVarChar(1) = ''
DECLARE @p4 NVarChar(4) = 'UUID'
DECLARE @p5 NVarChar(1) = ''
DECLARE @p6 NVarChar(1) = 'p'
DECLARE @p7 NVarChar(1) = ''
SELECT
u.ProductUUID, u.id, c.id, c.MappingUUID
FROM
dbo.Product_Data u
LEFT OUTER JOIN
dbo.Mapping_Data c ON REPLACE(REPLACE(c.MappingUUID, @p0, @p1), @p2, @p3) = REPLACE(REPLACE(u.ProductUUID, @p4, @p5), @p6, @p7)
WHERE
c.GN_Paid IS NULL
Операторы 2x replace
потому чтодвух разных префиксов, которые могут встречаться между двумя таблицами:
Таблица 1:
UUID0000000000165019
Таблица 2:
i00165019
Хотя они заканчиваются одним и тем же идентификатором,Я пытался заменить начало и возвращать результаты, но кажется, что это неэффективно, так что интересно, кто-нибудь из вас, гуру, справился с этим и использовал другой метод?
Заранее большое спасибо