Udostępnij za pośrednictwem


Wydajność (usługa Broker)

Wydajność aplikacji usługa Broker jest zwykle określana przez dwa czynniki:

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

  • Szybkość, z którego aplikacja przetwarza każdą wiadomość.

Te dwa czynniki monitorowania jest kluczem do zrozumienia działania aplikacji.

usługa Broker zawiera zestaw liczników wydajności, które zawierają informacje o swoich działań.usługa Broker również rejestruje poważne błędy do SQL Server Dziennik błędów i aplikacji systemu Windows zdarzenie dziennika. Aby uzyskać więcej informacji dotyczących liczników wydajności, dynamicznego zarządzania widoków i śledzenia zdarzeń dla usługa Broker zobacz Monitorowanie (usługa Broker).

Dostrajanie usługa Broker procedura przechowywana

W większości przypadków dostrajanie procedura przechowywana, który używa usługa Broker nie różni się od dostrajanie drugą procedurą przechowywaną.Istnieje jednak kilka dodatkowe zagadnienia.

Po pierwsze należy użyć klauzula WAITFOR.Wiadomości dostarczone rzadko przewidywalne odstępach czasu.Nawet w przypadku usługa, której wiadomości dostarczone w przybliżeniu tej samej szybkości przetwarzania wiadomości przez procedura przechowywana może być czas, kiedy wiadomości nie są dostępne.W związku z tym, procedury należy użyć klauzula WAITFOR za pomocą instrukcja przyjęcie lub GET grupa konwersacji instrukcja.Bez WAITFOR te instrukcje Wróć natychmiast, gdy brak dostępnych wiadomości w kolejce.W zależności od tego, w celu wykonania procedura przechowywana procedura może następnie pętli ponownie instrukcja niepotrzebnie, używające zasobów lub procedura może zakończyć tylko do ponownego uaktywnienia zaraz po jej zakończeniu, używające większej ilości zasobów niż kontynuować po prostu uruchomić.

Szukanie unpredictability w czasu przy użyciu klauzula WAITFOR przyjęcie lub GET grupa konwersacji instrukcja.Jeśli aplikacja ciągle działa jako usługa tła, nie zostanie określony limit czas w instrukcja WAITFOR.Jeśli aplikacja jest uaktywniany przez usługa Broker lub jest uruchamiany jako zadanie zaplanowane, należy określić krótki limit czas, na przykład 500 milisekund.Aplikacja, która używa instrukcja WAITFOR bezpiecznie obsługuje nieprzewidywalne interwały między wiadomości.Podobnie aktywowanego aplikacja, która kończy pracę po krótki limit czas nie zajmują zasoby, gdy nie ma żadnych wiadomości do przetworzenia.

usługa Broker gwarantuje, że tylko jedno wystąpienie aplikacji na czas mogą odbierać wiadomości w konwersacji, które współużytkują identyfikatora grupa konwersacji.Projektowanie aplikacji, aby wykorzystać grupa konwersacji blokowania przeznaczonych do synchronizacji.Jeśli aplikacja przechowuje stan, warto rozważyć użycie identyfikatora grupa konwersacji zidentyfikować stanu dla komunikacji.Przetwarzanie wielu wiadomości dla grupa konwersacji w tej samej transakcji.Ogólnie rzecz biorąc jednak tylko przetwarzania wiadomości dla grupy pojedynczej konwersacji w danej transakcji.Pomaga to zapewnić, że więcej niż jedno wystąpienie aplikacji może przetwarzać wiadomości, nawet wtedy, gdy jest stosunkowo niewielką liczbę grup konwersacji.

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

Następnie należy zakończyć konwersacji po zakończeniu zadania.usługa Broker zachowuje stan dla każdego aktywnego konwersacji.Mimo że kwoty stanu dla wybranej konwersacji jest niewielka, aplikacji, która nie powoduje zakończenia rozmowy może ponieść obniżoną wydajność w czasie.

Wreszcie Zachowaj transakcji krótkiego.Na przykład jeśli deseń konwersacji dla usługa powoduje powstanie dużej liczby wiadomości na tej samej grupa konwersacji, ograniczanie liczby wiadomości w każdej transakcji może poprawić ogólną wydajność.