2015-09-08 2 views
0

это может быть немного не по теме, но я ищу некоторые правила, как оптимизировать скорость веб-службы. В настоящее время я получаю время отклика от 12 до 18 секунд. Веб-служба подключена к одной базе данных, но получает данные из трех разных таблиц. Я заметил, что если я подключусь к 1 таблице, моя скорость составляет около 2 секунд, чтобы получить все данные.Веб-сервис имеет медленное время отклика

Есть ли доступная документация, которая может помочь мне на пути оптимизации веб-службы (или даже базы данных), чтобы получить большую часть ее скорости?

Некоторые вопросы в этом случае:

  1. подключения к нескольким таблицам делает веб-сервис медленно?
  2. Если это так, было бы лучше разрезать веб-службу и подключаться к каждой таблице отдельно (тестирование показало, что это заняло всего 5 секунд)?
  3. есть другой способ (вместо пункта 2), чтобы ускорить все это, это означало бы для меня также перепроектирование кода, который обрабатывает ответ WS и вернет мне несколько дней в разработке.

благодарит

+2

Ваш асинхронный код? если нет, то вытащить данные из трех отдельных таблиц будет ~ 3 раза медленнее, чем вытащить из одного - асинхронный ожидание google ' –

+0

возможный дубликат [Как достичь высокопроизводительного API REST на Azure с .NET?] (http: // stackoverflow.com/questions/7571784/how-to-achieve-high-performance-rest-api-on-azure-with-net) –

+0

Благодаря @NeilThompson я добавил код ожидания async, но он все еще кажется медленным, новым для ws –

ответ

1

Вам нужен способ, чтобы определить узкие места. Как вы размещаете на Azure, вы можете попробовать Glipse: (в http://getglimpse.com)

Подсказка:

-run ваших запросов к базе данных и включить план профилирования/выполнения, чтобы проверить, есть ли отсутствующий индекс. Попытайтесь написать свой запрос по-другому и сравните план выполнения, чтобы увидеть, есть ли какие-либо улучшения.

Смежные вопросы