В моем обновленном запросе ниже у меня есть два подзапроса. Оба они одинаковы, за исключением столбца, который он выбирает (ColumnA, ColumnB). Один подзапрос дает более 100 000 записей, из которых будет выбран первый ряд.SQL Performance tuning - Обновить запрос
Но есть проблема с производительностью, так как можно объединить два подзапроса в один запрос.
Как совместить это.
UPDATE TABLE1 SET
LOWEST_RATE = (SELECT TOP 1 ColumnA from Table2 WHERE Table2.Currency = Table1.Currency),
DIFF_RATE = (SELECT TOP 1 ColumnB from Table2 WHERE Table2.Currency = Table1.Currency)
Почему вы делаете top 1 без заказа? Вам не гарантируется требуемое значение. – Bobby
Пожалуйста, объясните немного больше об объемах данных. Сколько строк (всего) для таблицы1? и сколько строк (всего) для таблицы2? Вы говорите, что для КАЖДОЙ строки в таблице 1 подзапрос будет сканировать 100 000 строк в таблице2. ["lakh" как термин не всегда понят, поэтому я использовал 100 000] –
Какие индексы существуют в этих таблицах? можем ли мы получить DDL, включая индексы плюс некоторые примеры данных из каждой таблицы, пожалуйста. (небольшой образец в порядке) –