Uzyskaj szczegółowe dane wyjściowe zadania agenta SQL

16

Mamy zadanie agenta programu SQL Server, które uruchamia plan konserwacji w celu ponownego indeksowania całej bazy danych na serwerze. Ostatnio to się nie udało, ale historia zadań nie zapewnia wystarczających informacji do zdiagnozowania problemu.

W historii zadań stwierdza się, że zadanie nie powiodło się. Zadanie zostało wywołane przez użytkownika foo \ bar. Ostatnim krokiem do uruchomienia był krok 1 (Przebuduj indeks).

W oknie szczegółów znajduje się wiele wiadomości w następującej formie:

Executing query "ALTER INDEX [something] ON [a...".: 0% complete  End Progress  Progress: 2015-03-15 22:51:23.67     Source: Rebuild Index Task

Działająca instrukcja SQL jest obcinana i zakładam, że dane wyjściowe instrukcji również są obcinane, co uniemożliwia mi określenie, która konkretna instrukcja się nie powiodła i dlaczego. Czy jest jakiś sposób na wyodrębnienie pełnego tekstu tych wiadomości?

toryan
źródło
1
Myślę, że @kin dobrze odpowiada na twoje pierwsze pytanie, ale moim zdaniem jest to bardziej problem z debugowaniem. Jeśli wiesz, że indeks nie działa, spróbuję ustalić, dlaczego ten konkretny indeks nie działa. Czy widzisz używany kod SQL? Czy to jest w przechowywanym proc? Możesz zrobić kilka rzeczy, aby to zawęzić. Utwórz zadanie tylko z tym indeksem. Uruchom śledzenie SQL podczas działania tego zadania. Przechwyć używany sql, a następnie spróbuj odtworzyć problem.
Sir Swears-a-lot

Odpowiedzi:

18

Czy jest jakiś sposób na wyodrębnienie pełnego tekstu tych wiadomości?

Możesz to zrobić na 2 sposoby - Przejdź do kroku pracy i wybierz kartę Zaawansowane:

za. Dane wyjściowe do pliku (<== Moja preferowana metoda)

wprowadź opis zdjęcia tutaj

b. „Zaloguj się do tabeli” i „Uwzględnij dane wyjściowe kroku w historii” (<== Na msdb..sysjobhistorydłuższą metę musisz przyciąć, ponieważ wiadomości są przechowywane jako nvarchar(max)zamiast nvarchar(1024))

wprowadź opis zdjęcia tutaj

Aby zobaczyć dodatkowe zarejestrowane informacje, musisz skorzystać z tej procedury składowanej sp_help_jobsteplog lub możesz msdb.dbo.sysjobstepslogsbezpośrednio przeszukać tabelę.

Więcej informacji tutaj

Kin Shah
źródło
Na zdrowie, spróbuję. tylko dla poinformowania, poprawna nazwa tej tabeli to msdb.dbo.sysjobstepslogs („logi” zamiast „log”). Próbowałem edytować odpowiedź, ale edytowanie pojedynczych znaków jest niedozwolone.
toryan
1
@toryan np. Zredagowałem swoją odpowiedź. Jeśli uważasz, że odpowiedziałem na twoje pytanie, proszę głosować / oznaczyć jako odpowiedź.
Kin Shah,
1
Ponownie uruchomiłem zadanie i tym razem wygenerowało tylko jeden błąd, który został zapisany w tabeli zgodnie z opisem. Niestety tekst zapytania był nadal obcięty - czy jest jakiś sposób, aby uzyskać więcej informacji?
toryan
Wątpię. Czy możesz wypróbować metodę pliku wyjściowego 1 zgodnie z opisem w mojej odpowiedzi?
Kin Shah,
1
@toryan Miałem ten sam problem - rejestrowanie było nadal obcinane, nawet przy wyjściu do tabeli (metoda (b) powyżej) i czytaniu sysjobstepslogs. Takie było zalecenie większości internetowych dyskusji tego problemu. Ale metoda (a), wysyłana do pliku, NIE miała tego problemu: pliki tekstowe pokazują mi rejestrowanie wszystkich kroków zadania, w końcu bez obcięcia! (W moim przypadku moje kroki zadania to DTEXECpolecenia uruchamiające pakiety SSIS.) Tylko wada: widoczny jest tylko ostatni przebieg, chyba że dołącza się do pliku. Zamiast dołączać, wolę żyć z obcięciem na wcześniejszych biegach.
Doug_Ivison
2

Możesz uzyskać pełny tekst:

  1. Idź do pracy
  2. Kliknij prawym przyciskiem myszy select properties
  3. Idź do pracy
  4. Wybierz stepi kliknij editprzycisk
  5. Wybierz advanced. Tutaj możesz zobaczyć ścieżkę dziennika.

Teraz wystarczy podążać ścieżką.

Parassharma1990
źródło