12

Właśnie utworzyłem nową bazę danych SQL Server na platformie Azure, a następnie otworzyłem ją w Visual Studio 2015 za pomocą łącza w portalu Azure. Musiałem dodać mój adres IP do zapory, ale w przeciwnym razie proces przebiegał sprawnie.Dlaczego Eksplorator obiektów SQL Server w Visual Studio jest tak wolny?

Jednak, gdy próbuję wejść w interakcję z serwerem bazy danych za pomocą Eksploratora obiektów programu SQL Server, jest on bardzo powolny. Rozwijanie któregokolwiek z folderów w mojej bazie danych (np. Tables) zajmuje od 10 do 30 sekund. Baza danych jest zupełnie nowa, więc jedyne, co ma, to to, co tworzy Azure, gdy tworzy nowy DB.

Jest to drugi utworzony przez Azure DB i próbowałem wyświetlić w Visual Studio i oba mają ten sam problem. Z pierwszym pomyślałem, że być może zrobiłem coś nie tak podczas instalacji, ale tym razem upewniłem się, że zrobię wszystko w książce.

Uruchamianie rzeczywistych zapytań względem bazy danych z poziomu Visual Studio (kliknij prawym przyciskiem myszy DB, New Query ..., select * from INFORMATION_SCHEMA.TABLES;) jest bardzo szybkie, więc nie wydaje się być problemem z moim połączeniem z Azure.

Dlaczego jest tak boleśnie powolny? Co mogę zrobić, aby przyspieszyć?

Używam Visual Studio 2015 Update 1 (14.0.24720.00) na Windows 10 (całkowicie załatany) i podczas tworzenia bazy danych zaznaczyłem pole, aby użyć najnowszej wersji.

+1

czysto spekulacyjnych, ale lista właściwości, które dostaje idące na liście tabeli jest więcej niż tylko nazwy tabel. Oznacza to, że prawdopodobnie ciągnie wszystkie kolumny i ich typy danych, wszelkie indeksy wraz z ich definicjami, ograniczeniami itp. Jeśli chcesz zobaczyć wszystko, co się dzieje, połącz się z instancją, na której możesz uruchomić śledzenie i śledzić go . Teraz wyobraź sobie cały ten ruch w Internecie. TL; DR - używanie GUI przez Internet jest powolne. –

+0

Eksplorator w Visual Studio nie wydaje się przechwytywać wszystkie informacje. Jeśli na przykład rozwinę folder "Tabele", będę musiał rozwinąć każdą tabelę osobno. Po rozwinięciu muszę również rozwinąć podfolder 'kolumny'. Oznacza to, że wszystkie dane tabeli nie są przesyłane. Ponadto, dzięki zupełnie nowej bazie danych cała baza danych może zostać przesłana do mojego komputera lokalnego w drugim lub w drugim (internet o przepustowości 100MBit). Odp .: testuj lokalnie, używam platformy Azure, więc nie muszę się uczyć lokalnie. ;) –

+1

Czy kolejne rozwijanie kolumn (na przykład) zajmuje dużo czasu, czy jest to szybkie? Ponadto, chociaż może to być niewielka ilość danych w zbiorach, jeśli jest to protokół czatu, odbywa się wiele podróży w obie strony. –

Odpowiedz

9

Eksplorator obiektów serwera SQL (SSDT) ​​w Visual Studio tworzy model schematu całej bazy danych po pierwszym połączeniu bazy danych. Jest to koncepcja opartego na modelach rozwoju baz danych, który zapewnia korzyści, takie jak sprawdzanie poprawności skryptów w stosunku do bazy danych bez potrzeby modyfikowania żywej bazy danych itp. Jeśli chodzi o Azure SQL DB, gdzie zasób jest ograniczony przez warstwę cenową bazy danych, wydajność wykonywania zapytań do pobrania modelu bazy danych może się różnić. Na podstawie naszych testów wydajności poziomy cen powyżej S1/S2 zapewniają podobną interaktywność, co lokalna lub wbudowana wersja SQL.

Bardziej szczegółowo, obecny mechanizm SSDT polega na złożeniu minimalnej liczby zapytań w celu zminimalizowania liczby operacji w obie strony za pomocą serwera SQL/bazy danych, stąd czas realizacji każdego zapytania jest dłuższy. Wpływa na interaktywność SQL Server Object Explorer podczas wykonywania kwerendy.

Aby ulepszyć, zespół SSDT zmienia projekt platformy Azure SQLDB, aby zapewnić szybsze interakcje z zachowaniem korzyści wynikających z rozwoju baz danych opartych na modelach.

Disclosure: Pracuję w zespole Narzędzia danych SQL jako PM

+6

"' ... kiedy łączysz bazę danych po raz pierwszy ... '" Doświadczam powolności przy każdej interakcji, nie tylko przy początkowym obciążeniu. Czy model nie jest buforowany i zamiast niego aktualizowany za każdym razem, gdy wchodzę w interakcję z bazą danych? –

+0

Dokładniej, model jest zbudowany na sesję VS. Jeśli zamkniesz i zrestartujesz VS, to ponownie rozpocznie proces dla połączenia na żywo. Jeśli model jest zbudowany z projektu, jest zapisana pamięć podręczna. Różnica między połączeniem na żywo a projektem. Po zbudowaniu modelu interakcje stają się szybsze. –

+2

W celu łatwiejszego przeglądania schematów bazy danych i prostego odnajdywania schematów, narzędzia takie jak SSMS lub Server Explorer w VS będą szybsze, ponieważ te narzędzia stosują inne podejście, pobierając część informacji o schemacie na żądanie w zależności od interakcji, więc każda transakcja jest znacznie mniejsza i szybciej, gdy jest rozmowny. –

Powiązane problemy