W Kreatorze BI pojawiły się nowe funkcje SQL: bitrix24.bi_queries_t() i bi_explain_query(). Te narzędzia zostały zaprojektowane, aby śledzić historię zapytań i zrozumieć przyczyny wolnego ładowania raportów, zwiększając możliwości zarządzania danymi.
Funkcje te umożliwiają identyfikację filtrów używanych w zapytaniach oraz ilości przetwarzanych danych. Jeśli zapytanie działa wolno, można je zoptymalizować, dostosowując filtry lub zmniejszając liczbę kolumn.
W tym artykule się dowiesz:
Zobacz historię zapytań SQL
Funkcja SQL bitrix24.bi_queries_t(). Ta funkcja pomaga analizować historię zapytań SQL wykonanych w Kreatorze BI. Wyświetla tabelę ze szczegółami: wykonane zapytania, ilość załadowanych danych i inne istotne informacje.
Aby wyświetlić historię zapytań:
- Otwórz Kreator BI i przejdź do sekcji SQL > SQL Lab.
- Wybierz schemat bitrix24.
- Wprowadź następujące zapytanie SQL i kliknij Run:
SELECT * FROM TABLE(bitrix24.bi_queries_t())
.
Domyślnie zapytanie wyświetla tabelę z ostatnimi 1000 wykonanymi zapytaniami. Aby ograniczyć liczbę wierszy, użyj operatora LIMIT. Na przykład, aby zobaczyć ostatnie dziesięć zapytań, użyj:
SELECT * FROM TABLE(bitrix24.bi_queries_t())
LIMIT 10;
Analiza tabeli pomaga zidentyfikować zapytania spowalniające wydajność raportu i sposoby ich optymalizacji. Na przykład, jeśli ładowanie raportu trwa długo, przyjrzyj się najnowszym zapytaniom i zwróć uwagę na ich liczbę oraz czas wykonywania. Jeśli danych jest zbyt dużo, spróbuj dodać filtr dat, aby ograniczyć wybór i przyspieszyć ładowanie.
Informacje w tabeli częściowo pokrywają się z danymi z sekcji statystyk użycia zapytań w Kreatorze BI, ale dostarczają więcej parametrów do analizy.
W kolumnach tabeli znajdziesz szczegółowe informacje o każdym wykonanym zapytaniu:
Nazwa kolumny | Opis |
---|---|
TIMESTAMP | Dokładna data i czas wykonania zapytania. Pomaga zidentyfikować okresy szczytowego obciążenia. |
QUERY_ID |
Unikalny identyfikator zapytania. Używany z bi_explain_query() do analizy szczegółów konkretnego zapytania.
|
BI_ENTITY | Docelowy zestaw danych. Pomaga zrozumieć, które dane powodują powolne zapytania. |
QUERY_RESULT | Status wykonania. Wskazuje, czy zapytanie zakończyło się pomyślnie, czy wystąpił błąd. |
SIZE_BYTES | Rozmiar danych załadowanych przez zapytanie. Duże zestawy danych mogą wymagać optymalizacji. |
ROWS | Liczba zwróconych wierszy. W przypadku zbyt wielu wierszy warto dodać filtr, aby poprawić wydajność. |
USED_DATE_FILTER | Zastosowany filtr zakresu dat (jeśli istnieje). Sprawdź, czy zapytanie jest ograniczone do wymaganego okresu. |
SELECTED_COLS_CNT | Liczba wybranych kolumn. Wiele kolumn może spowalniać zapytanie. Wybierz tylko niezbędne. |
SERVER_FILTERS_CNT | Liczba filtrów zastosowanych po stronie serwera. Brak filtrów może powodować wolniejsze działanie zapytań. |
SERVER_FILTERS_INFO | Szczegóły dotyczące użytych filtrów. Pozwala zweryfikować poprawność wyboru danych. |
CACHE_SIZE_BYTES | Rozmiar danych ładowanych z pamięci podręcznej. Zapytania z pamięci podręcznej są realizowane szybciej, ponieważ dane nie są pobierane bezpośrednio z Bitrix24, ale z wcześniej przygotowanej kopii. Domyślnie pamięć podręczna jest ważna przez jedną godzinę. |
DOWNLOAD_MILLS | Czas pobierania danych. Pokazuje, ile czasu zajmuje załadowanie danych. |
PARSE_MILLS | Czas przetwarzania źródłowych danych zapytania przed wysłaniem ich do serwera. Im mniejsze dane źródłowe, tym szybsze przetwarzanie. |
COMPRESS_MILLS | Czas potrzebny na skompresowanie danych źródłowych przed zapisaniem ich w pamięci podręcznej. Im większa ilość danych, tym dłużej trwa ich kompresja. |
DECOMPRESS_MILLS | Czas dekompresji danych z pamięci podręcznej. Większe dane wymagają więcej czasu na dekompresję, co może wpływać na wydajność. |
FROM_CACHE | Wskazuje, czy wyniki zapytania pochodzą z pamięci podręcznej. Dane z pamięci podręcznej są dostępne szybciej. |
QUERY_JSON | Pełna konfiguracja zapytania w formacie JSON, w tym parametry i filtry. |
Analizuj zapytanie SQL
Funkcja SQL bi_explain_query(). Ta funkcja pokazuje, jak zapytanie jest wykonywane w bazie danych MySQL Bitrix24. Pomaga zidentyfikować, które tabele i indeksy są używane, jak dane są łączone i dlaczego zapytanie może działać wolno.
Aby uzyskać szczegółową analizę zapytania, wykonaj następujące kroki:
1. Skopiuj wartości QUERY_ID i TIMESTAMP. Możesz je znaleźć w tabeli historii zapytań (bitrix24.bi_queries_t()). Wykonaj zapytanie SQL: SELECT * FROM TABLE(bitrix24.bi_queries_t())
. Znajdź potrzebny wiersz i skopiuj wartości QUERY_ID i TIMESTAMP.
2. Dodaj parametry i wykonaj zapytanie. Dodaj skopiowane parametry do zapytania: SELECT bi_explain_query('20250319_081208_80250_xqccc', '2025-03-19 08:12:09.418');
i wykonaj je. Dla wygodnej analizy skopiuj wynik do schowka i otwórz go w dowolnym edytorze tekstu.
Otrzymasz szczegółowy plan wykonania zapytania SQL. Pokazuje on, jak serwer przetwarza zapytanie, w tym które tabele i indeksy są używane oraz które operacje mogą powodować spowolnienia. Plan składa się z dwóch części:
Oryginalne zapytanie SQL. W przykładzie zapytanie wybiera dane z tabeli deali i łączy je z innymi tabelami. Pobiera nazwę deala, kategorię, osobę odpowiedzialną, daty rozpoczęcia i zamknięcia, źródło i etap.
Tabela analizy zapytania. Ta część przedstawia kroki wykonywane przez serwer podczas przetwarzania zapytania. Każdy wiersz w tabeli reprezentuje krok w procesie pobierania danych. Tabela zawiera kilka kolumn wyjaśniających szczegóły wykonania zapytania:
Nazwa kolumny | Opis |
---|---|
id | Numer kroku w sekwencji wykonania. Pokazuje kolejność przetwarzania tabel w zapytaniu. |
select_type | Typ zapytania. SIMPLE oznacza, że zapytanie jest proste i nie zawiera podzapytań. |
table | Nazwa tabeli, do której uzyskuje się dostęp na tym etapie. |
type |
Metoda wyszukiwania danych w tabeli:
|
possible_keys | Potencjalne indeksy dostępne dla tej operacji. |
key | Indeks używany przez serwer podczas wykonywania zapytania. Puste pole oznacza, że serwer nie używa indeksów, co może spowalniać zapytanie. |
key_len | Długość klucza indeksu. Krótsze klucze zazwyczaj poprawiają szybkość wyszukiwania. |
ref | Pokazuje pola używane do łączenia tabel (np. według ID deala, kategorii lub etapu). Pomaga zrozumieć sposób łączenia danych. |
rows | Liczba wierszy sprawdzanych na tym etapie. Większa liczba wierszy oznacza wolniejsze zapytanie. |
extra |
Dodatkowe szczegóły wykonania:
Oficjalna dokumentacja MySQL |
W wersji Bitrix24 On-Premise możesz samodzielnie dodać potrzebne indeksy do bazy danych. W wersji chmurowej nie ma możliwości ręcznej modyfikacji indeksów. Jeśli uważasz, że dodanie indeksu przyspieszy zapytania SQL, skontaktuj się z pomocą techniczną.
Jak skontaktować się ze Wsparciem Bitrix24
W skrócie
- Nowe funkcje SQL w Kreatorze BI zwiększają możliwości analizy wydajności zapytań i identyfikacji przyczyn wolnego ładowania raportów.
- Funkcja bitrix24.bi_queries_t() wyświetla historię zapytań SQL, czas ich wykonania i ilość pobranych danych. Pomoże Ci to zrozumieć, które zapytania spowalniają raporty i jak je udoskonalić.
- Funkcja bi_explain_query() dokładnie analizuje sposób, w jaki serwer wykonuje konkretne zapytanie: które tabele i indeksy są używane i co spowalnia działanie zapytania. Analiza ta pozwala przyspieszyć wykonywanie zapytań i zmniejszyć obciążenie bazy danych.