У меня есть одна таблица (Table1) с некоторой информацией и идентификатором строки
У меня есть другая таблица (Table2) с дополнительной информацией и идентичным идентификатором строки (в середине отсутствует дополнительный символ).
Я изначально присоединился к столам на
t2.StringID = substring(t1.StringID,0,2)+substring(t1.StringID,4,7)
Но это было слишком медленно, поэтому я решил создать новый столбец в Таблице 1, который уже сопоставлен с PrimaryID в Таблице 2, а затем проиндексировать этот столбец.
Итак, чтобы обновить этот новый столбец, я делаю это:
select distinct PrimaryID,
substring(t2.StringID,0,2)+
substring(t2.StringID,4,7)) as StringIDFixed
into #temp
from Table2 t2
update Table1 tl
set t1.T2PrimaryID = isnull(t.PrimaryID, 0)
from Table1 t11, #temp t
where t11.StringID = t.StringIDFixed
and t1.T2PrimaryID is null
Он создает временную таблицу за несколько секунд, но обновление работает уже 25 минут, и я не знаю, будет ли оно когда-либо завершено.
Таблица 1 имеет 45 мм строк, Таблица 2 имеет 1,5 мм
Я знаю, что это большой объем данных, но, тем не менее, я чувствую, что это не должно быть так сложно.
Это Sybase IQ 12,7
Есть идеи?
Спасибо.