Вот есть 2 идентичных запроса:
1
UPDATE dbo.[Transfer]
SET SpendingTransactionId = (
SELECT TOP 1 s.[Index] / 100000
FROM dbo.Spending s
JOIN dbo.[Transaction] tn
ON tn.[Index] = [Transfer].[Index] / 100000
AND tn.[Hash] = s.SourceTransactionHash)
2
UPDATE dbo.[Transfer]
SET SpendingTransactionId = s.[Index] / 100000
FROM dbo.Spending s
JOIN dbo.[Transaction] tn
ON tn.[Hash] = s.SourceTransactionHash
WHERE tn.[Index] = [Transfer].[Index] / 100000
Для устанавливаемого поля (SpendingTransactionId) индекс отключен (Disabled). Для всех остальных полей, которые участвуют в выборке, есть индексы (одно поле 1 индекс).
Как понять какой запрос выполнится быстрее? Estimated execution plan в каждом из случаев показывает 100%. Куча квадратиков, а как оценить какой запрос выполнится быстрее --
Нафиг он вообще нужен этот Estimated execution plan? Как он мне может помочь в оценке?
Может есть какая статья Quik Start или кто хочет за деняжку помочь?
Данных многовато, запустил первый запрос и ждал 2 часа. Решил прибить и запустил сейчас второй.
Update (планы)
| Скрытый текст |
| 1
2
|
| |