To zaczęło się od this question, ale teraz wydaje się bardziej odpowiednio zapytać, ponieważ zdałem sobie sprawę, że jest to pytanie związane z DTU.Liczba operacji wybierania prostego (id) używa 100% DTU Azure SQL
Zasadniczo trwania:
select count(id) from mytable
EDIT: Dodawanie gdzie klauzula nie wydaje się pomóc.
Czy biorąc między 8 a 30 minut do uruchomienia (podczas gdy to samo zapytanie na lokalnej kopii SQL Server trwa około 4 sekund).
Poniżej przedstawiono zrzut ekranu zakładki MONITOR w portalu Azure po uruchomieniu tego zapytania. Uwaga Zrobiłem to, nie dotykając bazy danych przez około tydzień, a raportowanie Azure użyłem tylko 1% moich DTU.
Kilka dodatkowych rzeczy:
- W tym konkretnym teście, zapytanie zajęło 08: 27s uruchomić.
- Podczas pracy powyższy wykres faktycznie pokazywał linię DTU na poziomie 100% przez pewien okres.
- Baza danych jest skonfigurowana jako Standardowy poziom usług z poziomem wydajności S1.
- Baza danych ma około 3,3 GB i jest to największy stół (liczba ta zwraca około 2 000 000).
Doceniam to może być tylko moje ograniczone zrozumienie, ale jeśli ktoś mógłby wyjaśnić, czy to jest naprawdę oczekiwane zachowanie (czyli prosty licznik tak długo biegać i maxing mój DTUs) byłoby mile widziane.
Odpowiedzi w pierwotnym pytaniu już dotyczą tego, co się dzieje. "Prosta" liczba jest rzeczywiście wymyślna, droga i musi przeskanować cały stół. * Nie rób tego *. Jeśli masz klauzulę WHERE, która korzystała z pól indeksowanych, optymalizator użyłby operacji wyszukiwania indeksu, co skutkowałoby znacznie lepszą wydajnością. Funkcja seek odczytuje indeks B-Tree, aby znaleźć pasujące wiersze przed obliczeniem sumy (tj. Znacznie mniej IO, lepsza prędkość). Jeśli używasz pola o wysokiej selektywności, będziesz musiał przeczytać znacznie mniej stron indeksu. –
Po prostu FTR, "prosta" liczba nie jest wymyślona - to jest to, co muszę zrobić z/bez różnych klauzul gdzie. – chrisb
Czy kiedykolwiek uzyskałeś satysfakcjonującą odpowiedź, dlaczego tak się dzieje? Widzę to samo z S2 (50 DTU) w bazie danych o pojemności 127 GB z pojedynczą tabelą 550 milionów wierszy, a zliczanie (1) trwa blisko godzinę. –