Udostępnij za pośrednictwem


SQL Server partii lub zadania planowania

Każde wystąpienie SQL Server jest proces oddzielnego systemu operacyjnego.Każde wystąpienie potencjalnie musi obsługiwać tysiące żądań od użytkowników.Wystąpienia SQL Server Użyj wątków systemu Microsoft Windows lub jeśli skonfigurowane, ich włókna, efektywnie zarządzać tych zadań równoczesnych.Każde wystąpienie SQL Server zawsze działa kilka wątków dla procesów systemowych.Zawiera jeden lub więcej wątków dla każdego serwera Net-Library, wątek sieci do obsługi sieci We/Wy i wątku sygnału dla komunikacji z Menedżera sterowania usługami.

Opis planowania

Każde wystąpienie SQL Server wewnętrzny warstwy, która implementuje środowisko podobną do systemu operacyjnego.Ta warstwa wewnętrzny jest używany do planowania i synchronizowanie równoczesnych zadań bez konieczności wywołanie jądra systemu Windows.Ta warstwa wewnętrznego można również zaplanować włókna lub wątki Windows skutecznie.Każde wystąpienie SQL Server utrzymuje pulę wątków systemu Windows lub włókna dla przetwarzania kwerend użytkownika.Maksymalny rozmiar puli to jest kontrolowane przez Maksymalna liczba wątków opcji konfiguracja serwera.

Aby zrozumieć sposób przetwarzania żądania lub zadanie, jest zrozumieć podstawowe następujące terminy:

  • połączenia
    Połączenie jest ustanawiane, gdy użytkownik jest zalogowany pomyślnie.Użytkownik może następnie przesłać jeden lub więcej Transact-SQL sprawozdania za wykonanie.Połączenie jest zamykane, gdy użytkownik jawnie loguje lub połączenie zostanie przerwane.

  • partia
    SQL partia to zestaw jednej lub więcej Transact-SQL sprawozdania przesyłane z klient do wystąpienie SQL Server dla realizacji.Reprezentuje jednostkę pracy przedłożone Aparat baz danych przez użytkowników.

  • zadanie
    Jednostka pracy, który jest zaplanowane przez reprezentuje zadanie SQL Server.Zadanie partia można zmapować na jedno lub więcej zadań.Na przykład kwerenda równolegle będą wykonywane przez wiele zadań.

  • Wątek systemu Windows
    Każdy wątek Windows reprezentuje mechanizm niezależnej wykonanie.

  • Fiber
    Włókna jest lekkie wątku, który wymaga mniej zasobów niż wątek Windows i można przełączyć kontekst w trybie użytkownika.Jeden wątek systemu Windows mogą być mapowane do wielu włókna.

  • Wątek roboczy
    Wątek roboczy reprezentuje logicznego wątku w SQL Server do wątku Windows jest wewnętrznie mapowane (1: 1) lub jeśli lekkie buforowanie jest włączone, fiber.Mapowanie jest utrzymywana aż wątek roboczy dealokowaniu z powodu presji pamięci lub był bezczynny przez długi czas.Stowarzyszenie zadanie do wątek roboczego jest utrzymywany przez czas trwania zadania.

Zarządzanie połączeniami użytkowników i pracowników wątku zasobów

Lekkie w ich wykorzystania zasobów są wątki i włókna, nadal zajmują zasoby.W systemach z setek lub tysięcy użytkowników połączeń posiadające jeden wątek roboczy każdego połączenia może wykorzystać wystarczającej ilości zasobów, aby zmniejszyć wydajność SQL Server.Ponadto przydzielania dedykowany roboczy dla każdego połączenia użytkownika nie jest wymagane, ponieważ większość połączeń faktycznie spędzają większość ich czas oczekiwania instancje do otrzymanych od klient.Zamiast tego wystąpienie SQL Server używa puli wątków roboczych.Tylko puli wątków musi być wystarczająco duża, aby usługa numer połączenia użytkownika, które są wykonywane partii w tym samym czas w tej instancji.Pozostawiając Maksymalna liczba wątków dzięki opcji na wartość domyślną 0 wystąpienie SQL Server skutecznie mapowania użytkownika połączenia przez kilka wątków roboczych.Gwarantuje to, że nie zajmują zbyt wiele zasobów.

Konfigurowanie SQL Server dla włókna

Opcja konfiguracja serwera buforowanie lekkie kontroluje, czy wystąpienie SQL Server używa wątków systemu Windows lub włókna.Wartością domyślną jest 0.Wskazuje, że wystąpienie SQL Server planuje Windows wątek dla wątek do wartości zestaw w Maksymalna liczba wątków opcji.Jeśli buforowanie lekkie jest zestaw 1, SQL Server używa włókna zamiast Windows wątków.To jest nazywane tryb włókien.tryb włókien wystąpienie SQL Server przydziela jeden wątek Windows na harmonogram SQL, a następnie przydziela jeden fiber na wątku do wartości zestaw w Maksymalna liczba wątków opcji.An instance of SQL Server uses the same algorithms to schedule and synchronize tasks when it is using either Windows threads or fibers.SQL Server Express does not support fibers.Aby uzyskać więcej informacji, zobacz Za pomocą lightweight buforowania. Nie zaleca się używanie tryb włókien Planowanie operacji rutynowych.Jest to ponieważ zmniejszają wydajność, blokując regularnych zalet przełączania kontekstu, a niektóre składniki SQL Server nie funkcja poprawnie tryb włókien.Aby uzyskać więcej informacji, zobacz buforowanie lekkie.

Jak działa partii lub zadania planowania

Gdy aplikacja połączy się z Aparat baz danych, jest przypisany identyfikator (SPID) sesja.Wszystkie informacje, które muszą być utrzymywane dla życia połączenia jest zarządzany w wewnętrznych struktur danych skojarzony identyfikator SPID.Jako wystąpienie SQL Server partie odbiera od klientów, dzieli partia na jedno lub więcej zadań, a następnie kojarzy każdego zadania z dostępnych wątek z puli wątków roboczych.Wątek roboczy jest powiązany zadania istnienia zadania.Wątek roboczy działa wniosek na skojarzone harmonogram SQL.Jeśli nie ma żadnych wolnych wątków i Maksymalna liczba wątków wartość nie została osiągnięta, wystąpienie SQL Server przydziela nowy wątek roboczy dla nowej partia.Jeśli nie ma dostępnych nie wolnych wątków lub włókna i Maksymalna liczba wątków wartość została już osiągnięta, wystąpienie SQL Server blokuje nowe zadanie, aż wątek roboczy jest zwalniane.

Po pracownik jest skojarzony z zadaniem, pozostaje skojarzony z zadaniem do momentu jej wykonaniu, na przykład, aż do ostatniego zestawów wyników generowanych przez partia została zwrócona do klient.W tym czas, wątek roboczy jest zwalniane i łączyć się z zadań skojarzonych z następnej partia.

Aparat baz danych Aktywnie muszą wykonywać pracę na połączenie tylko z czas partia zostanie odebrany aż wyniki zostały zwrócone do klient.W tym okresie może być razy, gdy partia nie jest wymagane przetwarzanie aktywne.Na przykład może istnieć czas, gdy Aparat baz danych oczekiwania dla operacji odczytu do pobierania danych wymaganych dla bieżącej kwerendy lub oczekiwania dla innej partia zwolnić blokada.Zadania pracownika skojarzenia jest utrzymywane, nawet wtedy, gdy zadanie jest zablokowany na niektórych zasób.

Gdy Aparat baz danych uruchamia proces zadania skojarzone z partia, planuje wątek roboczego skojarzonego z zadaniem do wykonania pracy.Po pracownik wątek zakończeniu pracy nad zadaniem, wystąpienie SQL Server wywołuje wątek roboczego do następnego zadania jest gotowy do pracy.SPID pozostaje stała dla połączenia dla życia połączenia.Długotrwały połączeń może być ich poszczególnych partia zadania wykonywane przez wiele różnych wątków.Na przykład zadań od pierwszego partia mogą być wykonywane przez worker1, ale zadania z drugim partia może być wykonywany przez worker2.Niektóre sprawozdania mogą być przetwarzane równolegle.przypadek partia może mieć wiele zadań wykonywanych przez wiele wątków jednocześnie czas.