Ćwiczenie — używanie dystrybucji tabel i indeksów w celu zwiększenia wydajności

Ukończone

Tworzenie tabeli dystrybucji skrótów z klastrowanym indeksem magazynu kolumn

  1. Wybierz centrum Rozwój.

    Centrum rozwoju zostało wyróżnione.

  2. Z menu Programowanie wybierz + przycisk (1) i wybierz pozycję Skrypt SQL (2) z menu kontekstowego.

    Element menu kontekstowego skryptu SQL został wyróżniony.

  3. W menu na pasku narzędzi połącz się z bazą danych SQL Pool, aby wykonać zapytanie.

    Opcja Połącz z jest wyróżniona na pasku narzędzi zapytania.

  4. W oknie zapytania zastąp skrypt następującym kodem:

    CREATE TABLE [wwi_perf].[Sale_Hash]
    WITH
    (
       DISTRIBUTION = HASH ( [CustomerId] ),
       CLUSTERED COLUMNSTORE INDEX
    )
    AS
    SELECT
       *
    FROM
       [wwi_perf].[Sale_Heap]
    
  5. Wybierz pozycję Uruchom z menu paska narzędzi, aby wykonać polecenie SQL.

    Przycisk uruchamiania został wyróżniony na pasku narzędzi zapytania.

    Wykonanie zapytania potrwa do 4,5 minut .

    Uwaga

    CTAS to bardziej dostosowywalna wersja instrukcji SELECT...INTO. SELECT...INTO nie pozwala zmienić metody dystrybucji ani typu indeksu jako część operacji. Nowa tabela jest tworzona przy użyciu domyślnego typu dystrybucji ROUND_ROBIN oraz domyślnej struktury tabeli KLASTROWANEGO INDEKSU MAGAZYNU KOLUMN.

    Z kolei za pomocą funkcji CTAS można określić zarówno rozkład danych tabeli, jak i typ struktury tabeli.

  6. W oknie zapytania zastąp skrypt następującym kodem, aby zobaczyć ulepszenia wydajności:

    SELECT TOP 1000 * FROM
    (
        SELECT
            S.CustomerId
            ,SUM(S.TotalAmount) as TotalAmount
        FROM
            [wwi_perf].[Sale_Hash] S
        GROUP BY
            S.CustomerId
    ) T
    
  7. Wybierz pozycję Uruchom z menu paska narzędzi, aby wykonać polecenie SQL.

    Przycisk uruchamiania został wyróżniony na pasku narzędzi zapytania.

    Powinna być zauważalna poprawa wydajności przy użyciu nowej tabeli skrótów, w porównaniu z pierwszym uruchomieniem skryptu na tabeli Heap. W naszym przypadku zapytanie zostało wykonane w około połowie czasu.

    Czas wykonywania skryptu 6 sekund jest wyróżniony w wynikach zapytania.