Analiza zapytań 1C za pomocą SQL Server Profiler

  1. Oznaki wyboru nieoptymalnego planu kwerend DBMS
  2. NESTED LOOPS
  3. SKANUJ
  4. SZUKAJ ... GDZIE

Wcześniej rozważałem powody nieoptymalnych żądań pracy w 1C . Jednak te działania czasami nie pomagają w walce o poprawę wydajności systemu. W tym przypadku konieczne jest odwołanie się do narzędzi analizy poza systemem na poziomie DBMS do programu SQL Server Profiler . Wcześniej rozważałem   powody nieoptymalnych żądań pracy w 1C

Aplikacja SQL Server Profiler to graficzny interfejs użytkownika do śledzenia SQL, za pomocą którego programista 1C może monitorować wystąpienie aparatu bazy danych lub komponentu Analysis Services. Dzięki temu narzędziu możemy analizować plan wykonania zapytania w trybie krok po kroku. Aplikacja umożliwia zbieranie i zapisywanie danych o każdym zdarzeniu w pliku lub tabeli do późniejszej analizy.

Oznaki wyboru nieoptymalnego planu kwerend DBMS

Z reguły MS SQL wybiera optymalny plan zapytania dla 1C, ale czasami DBMS jest błędny. Może to być spowodowane, na przykład, nieistotnymi statystykami lub wysokim obciążeniem systemu. Programista 1C, aby pomóc optymalizatorowi zbudować poprawny plan zapytań, należy sprawdzić konfigurowanie rutynowych operacji na SZB MS SQL . Wśród znaków nieoptymalnej konstrukcji planu zapytania dla 1C mogą być następujące konstrukcje:

  • NESTED LOOPS
  • SKANOWANIE (SKANOWANIE TABELI, SKAN INDEKSU, SKANOWANIE INDEKSU KLASYCZNEGO)
  • SZUKAJ ... GDZIE

NESTED LOOPS

Algorytm łączenia zagnieżdżonych pętli jest w istocie prostym wyszukiwaniem dwóch tabel i wyników pasujących wierszy. Ten typ łączenia jest nieprawidłowy dla tabeli głównej z dużą liczbą rekordów. Jednak ten typ połączenia jest najłatwiejszy i jest często używany, gdy MS SQL DBMS nie może wybrać innej opcji połączenia. Ogólnie rzecz biorąc, NESTED LOOPS jest ważny, gdy w tabeli głównej znajduje się nie więcej niż dwa rekordy i najprawdopodobniej będzie działać szybciej w takiej sytuacji.

SKANUJ

Zeskanuj tabelę lub indeks. Ta funkcja obejmuje - SKANOWANIE TABELI, SKAN INDEKSU, SKANOWANIE INDEKSU KLASY. Szybkość tej metody jest bardzo zależna od liczby rekordów w systemie. Jednak samo skanowanie nie jest błędem. Skanowanie może mieć negatywny wpływ w przypadkach, gdy tabela zawiera dużą liczbę rekordów, a zapytanie zwraca małą liczbę rekordów. W istocie DBMS marnuje zasoby.

SZUKAJ ... GDZIE

Skanowanie analogowe (SCAN), z wyjątkiem tego, że część tabeli jest skanowana, zgodnie z ustalonym stanem.