Dostrajanie wydajności przy użyciu wykluczania kolumn

Często zdarza się, że analizy zawierają nieużywane kolumny. Kolumny, które nie są wymagane, ale pozostają wybrane, znacznie obniżają wydajność. W tym temacie opisano, jak poprawić wydajność poprzez usunięcie wszelkich kolumn, które nie są wymagane.

Identyfikowanie nieużywanych kolumn

Uwzględnianie w analizie kolumn, które są wykluczone z widoku (na przykład Year), wpływa negatywnie na wydajność poprzez:
  • zwiększenie objętości danych, które muszą zostać pobrane z bazy danych;
  • zwiększenie liczby kolumn do pobrania i przetworzenia;
  • wymuszenie w analizie obliczania wyników na wielu poziomach agregacji.

Na poniższym rysunku pokazano prosty raport z liczbą klientów według regionu i roku.

Opis "GUID-39B953E5-433E-4991-B3BA-BB1064CE8D83-default.jpg" znajduje się poniżej
.jpg"

Wyświetlony raport to wykres przedstawiający liczbę klientów według regionu. Można zauważyć, że kolumna Year jest wykluczona.

Opis "GUID-CFF82673-4988-4185-915E-0F1AA5027E42-default.jpg" znajduje się poniżej
.jpg"

Zapytanie logiczne z nieużywaną kolumną "Rok"

Mimo że kolumna Year nie jest wyświetlana w widoku, jest ona nadal zaznaczona jako część zapytania logicznego.

Opis "GUID-104759F4-A6F4-4366-ACD6-472BA2931E18-default.jpg" znajduje się poniżej
.jpg"

Uwzględnianie w analizie kolumny Year ma następujące skutki:
  • Pobieranie i przetwarzanie dodatkowych kolumn.
  • Pobieranie i przetwarzanie dodatkowych wierszy, ponieważ liczba wierszy klientów jest wybierana nie tylko według regionu, ale także według roku.
  • Wymagana jest dodatkowa agregacja.

Zapytanie fizyczne z nieużywaną kolumną "Rok"

Podczas sprawdzania zapytania fizycznego można zidentyfikować obszary, w których wydajność jest obniżona.

Opis "GUID-D9F85168-B448-49BE-9261-78270C01784C-default.jpg" znajduje się poniżej
.jpg"

W tym przykładzie pokazano instrukcję SELECT count distinct z reguły agregacji liczby klientów. W niektórych sytuacjach ma to również wpływ na raporty z regułą agregacji "Suma". W zapytaniu wygenerowanym w tym scenariuszu użyty jest również zestaw grupujący. Na poziomie bazy danych może to oznaczać wybieranie wielu (milionów) wierszy, a następnie grupowanie ich według kategorii Year i Region, a także Region. Może to powodować niepotrzebne wykorzystywanie znacznych zasobów bazy danych.

Usuwanie nieużywanych kolumn

Należy usunąć kolumnę Year i przeanalizować wpływ tego działania na generowane zapytania logiczne i fizyczne.

Zapytanie logiczne po usunięciu kolumny "Rok"

Teraz zapytanie logiczne nie zawiera kolumny Year, a co ważniejsze, usunięta została agregacja raportu.

Opis "GUID-A28E8FC3-37ED-4350-866C-A9BC58356833-default.jpg" znajduje się poniżej
.jpg"

Zapytanie fizyczne po usunięciu kolumny "Rok"

Zapytanie fizyczne jest teraz znacznie prostsze, ponieważ nie zawiera zestawów grupujących; zdecydowanie zmniejszyła się też liczba wybranych rekordów.

Opis "GUID-96421968-C978-4383-853C-EAACB0079CEB-default.jpg" znajduje się poniżej
.jpg"

Sprawdzenie analizy nieefektywnych raportów, a przede wszystkim zwykłe usunięcie zbędnych, nieużywanych kolumn, pozwala osiągnąć znaczny wzrost wydajności. Wygenerowane zapytanie fizyczne jest o wiele prostsze i powoduje zwrócenie mniejszej liczby rekordów, co pozwala skrócić przetwarzanie.