Podstawy optymalizacji zapytań 1C | Wszystko o programowaniu na 1C: Enterprise

  1. Ogólne zasady optymalizacji kodu 1C
  2. Co wymaga optymalizacji bez przerwy?
  3. Jak zoptymalizować duże zagnieżdżanie podzapytań i ich związków?
  4. Algorytm optymalizacji:
  5. Jak ocenić wynik kodu optymalizacji 1C?
  6. Podoba ci się artykuł? Zamów teraz i otrzymuj aktualizacje swojej poczty e-mail:

Program jest bardzo wolny, nie można czekać na dokument lub otworzyć rekordu Program jest bardzo wolny, nie można czekać na dokument lub otworzyć rekordu? Faktury i akty są tworzone przez godzinę? Nieład! Za mało rąk opanowało 1C. Cóż, jeśli twój super programista jest właśnie na wakacjach, wkrótce wróci i naprawi sytuację, ale co z tymi firmami, których lista pracowników nie oznacza programisty? Istnieją dwie opcje: albo cierpieć, czekając na każdy dokument (szczerze mówiąc, nie ma żadnej opcji), albo zaprosić programistę 1C z zewnątrz. Jak on może pomóc? Przede wszystkim specjalista przeanalizuje program pod kątem poprawności napisanego kodu i zapytań, a mianowicie optymalizacja kodu 1C pozwala zwiększyć szybkość systemu.

Ogólne zasady optymalizacji kodu 1C

Nie musisz przepisywać całego programu lub próbować naprawiać czegoś, co na pierwszy rzut oka naprawdę nie lubisz. W rzeczywistości konieczne jest znalezienie najbardziej znanych 20% nieefektywności, które prowadzą do tak wielu katastrofalnych rezultatów. Musisz dokładnie wiedzieć, co dokładnie wymaga optymalizacji w 1C.

Co wymaga optymalizacji bez przerwy?

Istnieje mała lista problemów, które wymagają wykrycia i korekty w pierwszej kolejności, jeśli program jest powolny.

  1. Duże zagnieżdżanie podzapytań.

1C tworzy bardzo wygodną funkcjonalność zagnieżdżonych podzapytań i ich związków. Dlatego często są używane irracjonalnie. Są one konieczne, jeśli konieczne jest wykonanie złożonych obliczeń etapami, dlatego często można spotkać następujące konstrukcje:

Ale tutaj fakt, że optymalizator serwera, niezależnie od używanego DBMS, nie jest brany pod uwagę, nie zawsze ma możliwość poprawnej optymalizacji określonej opcji zapytania. Rezultatem będzie bardzo niska prędkość podczas przetwarzania przez system. Zwróć uwagę na obciążenie serwera podczas przetwarzania w normalnych granicach. Wniosek: kody 1C wymagają optymalizacji.

Jak zoptymalizować duże zagnieżdżanie podzapytań i ich związków?

To proste: musisz naprawić zapytanie, porzucić istniejącą strukturę, utworzyć kilka niezależnych podzapytań, zapisać wyniki swojej pracy w bazie danych tabel tymczasowych.

Algorytm optymalizacji:

Szukasz najbardziej problematycznego zapytania? Pobierz tekst zapytania we wbudowanym języku 1C? Zduplikowane sytuacje dzięki funkcjonalności Konsoli zapytań - przeanalizuj tekst zapytania

Tutaj takie konstrukcje muszą zostać przepisane?

Tutaj takie konstrukcje muszą zostać przepisane

Konieczne jest wykorzystanie skuteczności tabel tymczasowych, otrzymujemy:

Konieczne jest wykorzystanie skuteczności tabel tymczasowych, otrzymujemy:

Utworzona tabela tymczasowa jest umieszczana w głównym zapytaniu:

Utworzona tabela tymczasowa jest umieszczana w głównym zapytaniu:

Jeśli chcesz scalić żądania w pojedyncze żądanie wsadowe.

Jak ocenić wynik kodu optymalizacji 1C?

Sprawdź szybkość żądania. Jeśli teraz prędkość nie odpowiada żądanej, kontynuujemy analizę i uproszczenie.

  1. Zidentyfikowano niespójności między indeksami a istotnymi warunkami zapytania.

Jeśli DBMS powoli wykonuje zapytanie, możliwe jest, że indeksy nie pasują do wszystkich warunków zapytań w bazie danych. Dlatego musimy porównać wskaźniki i warunki. Warunki obowiązują w następujących sekcjach:

Każdy warunek ma swój własny indeks. Idealnym indeksem jest indeks, dla którego muszą być spełnione następujące istotne warunki:

  • Indeks zawiera wszystkie pola wymienione w warunku;
  • Te pola znajdują się na samym początku indeksu;
  • Te pola idą w rzędzie, tj. pola, które nie uczestniczą w warunkach zapytania, nie są „zaklinowane” między nimi;
  • Zapytanie nie wybiera żadnych innych pól niż te zawarte w samym indeksie. To wymaganie jest opcjonalne, jeśli wybrany indeks jest zgrupowany.
  1. Nieprawidłowy sposób manipulowania prędkością wirtualnych parametrów tabeli.

Przykład nieefektywnego użycia:

Wersja zoptymalizowana:

  1. Nieużywanie „EXPRESS” podczas wprowadzania pól typu złożonego.

Wprowadzenie „EXPRESS” eliminuje łączenie tabel, co po prostu nie jest już konieczne.

  1. Niepotrzebne pola przez symbol „.”.

Przykład: jeśli wykonasz żądanie w ten sposób, to po jego wykonaniu zostanie utworzone dodatkowe połączenie lewe z tabelą Kontrahenci.

Musisz przepisać to tak:

Aby uzyskać bardziej szczegółowe badanie optymalizacji zapytań i kodu 1C, radzę również pobrać i przestudiować tutaj. ten przewodnik .

Podoba ci się artykuł? Zamów teraz i otrzymuj aktualizacje swojej poczty e-mail:

Podobny

Drukuj artykuł

Jak zoptymalizować duże zagnieżdżanie podzapytań i ich związków?
Podoba ci się artykuł?
Faktury i akty są tworzone przez godzinę?
Cóż, jeśli twój super programista jest właśnie na wakacjach, wkrótce wróci i naprawi sytuację, ale co z tymi firmami, których lista pracowników nie oznacza programisty?
Jak on może pomóc?
Co wymaga optymalizacji bez przerwy?
Jak zoptymalizować duże zagnieżdżanie podzapytań i ich związków?
Pobierz tekst zapytania we wbudowanym języku 1C?
Jak ocenić wynik kodu optymalizacji 1C?
Podoba ci się artykuł?