При сравнении производительности между SQL Azure и SQL Server необходимо учитывать несколько моментов:
- Количество обращений в сеть имеет большее значение в SQL Azure, если ваш клиентУровень / app также отсутствует в Azure.Если в вашем облачном примере это займет 2 мс в оба конца, но 150 мс в оба конца, количество обратных рейсов может действительно быстро возрасти.Иногда размер пакета может быть увеличен, чтобы скрыть задержки в центре обработки данных, где бы вы ни работали.
- Существует также неплохая вероятность того, что вы не получили те же планы запросов на SQL Server иSQL Azure и что это может быть частью того, что вы видите в разнице в производительности.Одним из способов получить представление о вариантах плана запроса в обоих случаях является использование хранилища запросов (которое по умолчанию включено в SQL Azure, но может быть включено в SQL 2016+).Вы можете прочитать об этом здесь: https://docs.microsoft.com/en-us/azure/sql-database/sql-database-operate-query-store. Есть также ежемесячные выпуски клиентского инструмента SSMS, который имеет приятный интерфейс для навигации по хранилищу запросов.Вы можете скачать самую последнюю версию здесь .Если посмотреть на эффективность того, почему запрос работает по-разному, вы сначала начнете с того, что посмотрите, совпадают ли общие формы плана или нет.Если они отличаются, то это может быть фактическим объяснением разницы в производительности.Если они одинаковые, то следующий вариант более вероятен для вас
- Наконец, есть случаи, когда клиенты используют SQL Azure с очень маленьким размером резервирования (например, Basic) и сравнивают его со своимирабочая станция или ноутбук с точки зрения производительности.Базовые и стандартные (S3 или около того) базы данных, как правило, работают менее чем на ядре ЦП.Поэтому, если вы пытаетесь сравнить производительность с вашим локальным компьютером, вы должны помнить, что размер резервирования также может существенно повлиять на производительность.Попытка большего размера (для тестирования) может помочь определить, так ли это на самом деле.Если это так, существуют различные способы повысить производительность запроса (индексирование, рассмотрение того, как написан запрос / что он просит посмотреть, есть ли более простой способ представления вещей и т. Д.), Может быть вариантом для повышения эффективности.запроса, чтобы он выполнялся достаточно эффективно на меньшем уровне производительности (чтобы сэкономить деньги).
Более широкое объяснение того, почему любой общий запрос медленен в SQL, - это гораздо более обширная тема, поэтому, если вы опубликуетеподробности вашего расследования могут помочь людям определить, есть ли у вас проблема с индексированием, что-то, связанное с перехватом параметров, или одна из других наиболее распространенных ошибок, с которыми сталкиваются люди при создании приложений SQL.
Удачи - я надеюсьэто поможет вам сделать следующий шаг, чтобы выяснить проблему с производительностью.