Udostępnij przez


Wydajność (Service Broker)

Wydajność aplikacji Service Broker jest zwykle określana dwa czynniki:

  • Liczba wiadomości przychodzące w określonym terminie z czas.

  • Szybkość, z jaką aplikacja przetwarza każdą wiadomość.

Monitorowanie tych dwóch czynników jest klucz do zrozumienia wydajność aplikacji.

Service Broker zawiera zestaw liczników wydajności, które zawierają informacje o swojej działalności.Service Broker rejestruje poważne błędy do SQL Server Dziennik błędów i aplikacji systemu Windows zdarzenie możnaAby uzyskać więcej informacji na liczników wydajności, dynamiczne zarządzanie widokami i śledzenia zdarzeń Service Broker, zobacz Monitorowanie (Service Broker).

Dostrajanie Service Broker procedura przechowywana

W większości przypadków dostrajania procedura składowana, która używa Service Broker nie różni się od dostrajania z drugą procedurą przechowywaną.Istnieją jednak kilka dodatkowe zagadnienia.

Po pierwsze należy użyć klauzula WAITFOR.Rzadko nadejociu odstępach przewidywalne.Nawet w przypadku usługa gdzie nadejściu wiadomości w przybliżeniu taką samą stawkę, że procedura składowana przetwarza wiadomości może być czas, kiedy wiadomości nie są dostępne.Dlatego procedury należy użyć klauzula WAITFOR instrukcją odbioru lub za pomocą instrukcja GET grupy KONWERSACJI.Bez WAITFOR instrukcje te zwracają natychmiast, gdy brak dostępnych wiadomości w kolejce.W zależności od wykonania procedura składowana procedury mogą następnie pętli wstecz instrukcja niepotrzebnie, używające zasobów lub procedura może zakończyć tylko do ponownego uaktywnienia wkrótce potem zużywających większej ilości zasobów niż kontynuowaniem wystarczy uruchomić.

Pozwalać na nieprzewidywalność w czasu przy użyciu klauzula WAITFOR instrukcja odbioru lub uzyskać grupy KONWERSACJI.Jeśli aplikacja działa w sposób ciągły jako usługa tła, nie zostanie określony czas-out w instrukcja WAITFOR.Aplikacja uaktywniona przez Service Broker lub jest uruchamiany jako zadanie zaplanowane, określić krótki czas-out, na przykład 500 milisekund.Aplikacja używająca instrukcja WAITFOR łagodnie obsługuje nieprzewidywalne interwały między wiadomości.Podobnie, aktywowany aplikację, która kończy pracę po krótkim czas-out nie zużywa zasoby, gdy żadne komunikaty do przetwarzania.

Service Broker gwarantuje, że tylko jedno wystąpienie aplikacji w czas mogą odbierać wiadomości w konwersacji, które współużytkują identyfikator grupa konwersacji.Projektowanie aplikacji, aby skorzystać z grupa konwersacji blokowanie synchronizacji.Aplikacja zachowuje stan, należy rozważyć przy użyciu identyfikatora grupa konwersacji zidentyfikować stanu dla konwersacji.Przetwarzanie wielu wiadomości dla grupa konwersacji w tej samej transakcji.Na ogół jednak przetwarzać tylko wiadomości w jednej grupa konwersacji w danej transakcji.Pomaga to zapewnić więcej niż jedno wystąpienie aplikacji może przetwarzać wiadomości, nawet wtedy, gdy liczba konwersacji grup jest stosunkowo niewielka.

Ponadto Unikaj przechowywania wiadomości.Utrzymywanie tabela oddzielnych dziennik, który zapisuje najważniejsze informacje z wiadomości zwiększa wydajność.Służy do przechowywania wiadomości tylko w zdarzenie że aplikacja wymaga dokładnego wiadomości wysłanych i odebranych.

Następnie koniec konwersacji, po zakończeniu zadania.Service Broker zachowuje stan dla każdego aktywnego konwersacji.Chociaż kwota stan dla wybranej konwersacji jest niewielka, aplikacji, która nie kończy konwersacji ucierpi obniżoną wydajność nad czas.

Wreszcie Zachowaj krótkich transakcji.Jeśli deseń konwersacji usługa obejmuje dużą liczbę wiadomości w tej samej grupa konwersacji, ograniczenie liczby wiadomości w każdej transakcji może poprawić ogólną wydajność.