12

Я только что создал новую базу данных SQL Server в Azure, а затем открыл ее в Visual Studio 2015, используя ссылку на Azure Portal. Мне пришлось добавить свой IP-адрес в брандмауэр, но в противном случае процесс прошел гладко.Почему SQL Server Object Explorer в Visual Studio настолько медленный?

Однако, когда я пытаюсь взаимодействовать с сервером базы данных с помощью Обозревателя объектов SQL Server, это очень медленно. Расширение любой из папок в моей базе данных (например, папка Tables) занимает от 10 до 30 секунд. База данных совершенно новая, поэтому единственное, что у нее есть, это то, что создает Azure при создании новой базы данных.

Это вторая база данных Azure, которую я создал и попытался просмотреть в Visual Studio, и обе имеют ту же проблему. С первым я подумал, что, возможно, я сделал что-то неправильно во время установки, но на этот раз я сделал все, чтобы сделать все по книге.

Выполнение актуальных запросов к БД из Visual Studio (щелкните правой кнопкой мыши по DB, New Query ..., select * from INFORMATION_SCHEMA.TABLES;) очень быстро, так что это не кажется проблемой для моего подключения к Azure.

Почему так больно медленно? Что я могу сделать, чтобы сделать это быстрее?

Я использую Visual Studio 2015 Update 1 (14.0.24720.00) в Windows 10 (полностью исправлен) и во время создания базы данных я установил флажок, чтобы использовать последнюю версию.

+1

чисто спекулятивный, но список свойств, которые получает неправдоподобным для списка таблицы больше, чем просто имена таблиц. То есть, вероятно, он потянет все столбцы и их типы данных, любые индексы вместе с их определениями, ограничениями и т. Д. Если вы хотите увидеть все, что происходит, подключитесь к экземпляру, на котором вы можете запустить трассировку и проследить ее , Теперь представьте себе весь этот трафик, проходящий через Интернет. TL; DR - использование GUI через Интернет происходит медленно. –

+0

Проводник в Visual Studio, похоже, не захватывает всю информацию. Если я буду расширять папку «Таблицы», например, мне нужно развернуть каждую таблицу отдельно. После расширения я должен также расширить подпапку 'columns'. Это означает, что все данные таблицы не передаются. Кроме того, с новой базой данных вся база данных может быть перенесена на мой локальный компьютер через секунду или два (100 Мбит Интернет). Re: test local, я использую Azure, поэтому мне не нужно изучать, как запускать MS SQL Server локально. ;) –

+1

Занимает ли последующее расширение столбцов (например) много времени или быстро? Кроме того, хотя это может быть небольшой объем данных в совокупности, если это протокол чата, он совершает много поездок в оба конца. –

ответ

9

Проводник объектов SQL Server (SSDT) ​​в Visual Studio строит схему всей базы данных при первом подключении базы данных. Это концепция разработки базы данных на основе моделей, которая обеспечивает такие преимущества, как проверка сценариев в отношении базы данных без необходимости изменения активной базы данных и т. Д. Когда дело доходит до базы данных Azure SQL, где ресурс ограничен уровнем цен в вашей базе данных, производительность выполнения запросов для извлечения модели базы данных может отличаться. Основываясь на наших тестах производительности, уровни цен выше S1/S2 обеспечивают аналогичную интерактивность, как локальный, так и по требованию SQL-экземпляр SQL.

Более подробный, текущий механизм SSDT представляет собой сложное минимальное количество запросов, чтобы свести к минимуму количество операций «туда-обратно» с SQL-сервером/базой данных, поэтому время выполнения каждого запроса больше. Это влияет на интерактивность Обозревателя объектов SQL Server во время выполнения запроса.

Для повышения эффективности команда SSDT пересматривает дизайн для Azure SQLDB, обеспечивая более быстрый опыт взаимодействия, сохраняя при этом преимущество разработки базы данных на основе моделей.

Раскрытие: Я работаю в команде Tools SQL Data как PM

+6

«... когда вы впервые подключаете базу данных ...» «Я испытываю медлительность при каждом взаимодействии, а не только при начальной загрузке. Является ли модель не кэшированной и не обновляется каждый раз, когда я взаимодействую с БД? –

+0

Точнее, модель построена на сеанс VS. Если вы закроете и перезапустите VS, он снова запустит процесс для подключения в реальном времени. Если модель построена из проекта, имеется сохраненный кеш. Это разница между живым подключением и проектом. Как только модель построена, взаимодействия становятся быстрее. –

+2

Для просмотра схемы схемы базы данных и простого обнаружения схемы такие инструменты, как SSMS или Server Explorer в VS, будут быстрее, поскольку эти инструменты следуют другому подходу, где они получают часть информации схемы по запросу на основе вашего взаимодействия, поэтому каждая транзакция намного меньше и быстрее, пока он чат. –

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