Обычные проблемы с отладкой тайм-аута SQL Server применимы, даже если вы находитесь в облаке.
Принципиальное отличие, которое я обнаружил, заключается в том, что SQL Azure, как правило, медленнее, чем выделенный локальный сервер, как с точки зрения скорости запросов, так и скорости передачи данных обратно в веб-приложение.
- Запомните индексы: они вам понадобятся!
- Включите трассировку и попытайтесь получить фактический запрос, который выполняется. Оцените план запроса (см. http://www.sql -server-performance.com / 2006 / query-execute-plan-analysis / ) и посмотрите, есть ли что-нибудь очевидное, что можно сделать с помощью структуры таблицы.
- Убедитесь, что ваш экземпляр SQL Azure находится в том же центре обработки данных, что и ваши веб-роли. Передача большого количества данных происходит медленно (и дорого!) Между центрами обработки данных.
- Старайтесь избегать шаблонов, когда большое количество данных извлекается из базы данных, только для фильтрации в веб-приложении. Скорее, убедитесь, что база данных выполняет «тяжелую работу».
Вы также можете обнаружить, что при выполнении лотов запросов ваше соединение SQL Azure может быть ограничено. Ссылка на это здесь: http://msdn.microsoft.com/en-us/library/windowsazure/ff394106.aspx#throttling - однако, так как это дает совершенно другой код ошибки, я подозреваю, что здесь не такая ситуация.