Когда я запускаю следующий запрос на моем локальном SQL Server, он выполняется менее чем за 1 секунду. Однако если я запустил этот запрос на сервере SQL уровня бесплатного пользования AWS, это займет 4 секунды. Обе таблицы содержат 600000 строк.
SELECT
*
FROM
XYZ
WHERE
XYZ.milisecDateTimeBigInt = (SELECT MAX(ABC.milisecDateTimeBigInt)
FROM ABC
WHERE ABC.ID = 1)
Почему происходит задержка в SQL Server уровня бесплатного пользования AWS? Я решил проблему, выполнив следующие действия:
DECLARE @a bigint;
SELECT @a = MAX(ABC.milisecDateTimeBigInt)
FROM ABC
WHERE ABC.ID = 1;
SELECT
*
FROM
XYZ
WHERE
XYZ.milisecDateTimeBigInt = @a
но я все еще хочу знать, почему задержка происходит в 1-м запросе.
Во-первых, на бесплатном уровне AWS есть один ЦП на 1 и 2 ГБ памяти, если я не ошибаюсь, в результате чего ваша локальная машина будет иметь большую аппаратную спецификацию. Так что, если вы запустите план выполнения, вы, вероятно, увидите огромный всплеск памяти.





Разница в статистике (или других связанных с сервером вещах) вызывает другой план запроса?