SQL oznaczone posty

SQL Saturday#824 Kraków

W dniu 9 lutego 2019 odbyła się po raz trzeci w Polsce, a po raz drugi w Krakowie konferencja SQL Saturday #824, na której poprowadziłem sesję „Cut the tables into partitions v.2”

Agenda SQL Saturday#824
Na SQL Saturday#824 z Kamilem Nowińskim
Czytaj dalej

Zapowiedź mojej sesji na SQL Saturday #824 – „Cut the tables into partitions v.2”

W lutym 2018 r. na spotkaniu warszawskiej grupy Data Comunnity Poland prowadziłem sesję o tematyce partycjonowania „Kroimy tabele na partycje”. Ze względu na duże zainteresowanie postanowiłem powtórzyć tę sesję na SQL Saturday #824 w Krakowie, ale w nieco zmienionej formie. Podczas tej sesji zaprezentowana zostanie jedna z technik optymalizacji baz danych, czyli podział tabel i indeksów bazy danych SQL Server. Pozwala to poprawić wydajność, rozumianą jako szybkość dostępu do danych i ułatwia zarządzanie. Partycjonowanie wiąże się z różnymi mechanizmami, takimi jak przełączanie partycji, okno przesuwne strefy lub eliminacja partycji, które mogą być pomocne w codziennej pracy. Omówimy podstawowe pojęcia, metody podziału, zalety i wady dobrych praktyk. Wspomnę o mitach o podziałach. Wszystko będzie poparte przykładami.

Zapraszam wszystkich na moją sesję „Cut the tables into partitions v.2„, która odbędzie się 9 lutego 2019 r. na konferencji SQL Saturday #824 w Krakowie.

Czytaj dalej

Truncate Table with Partitions

SQL Server 2016 wprowadza modyfikację do instrukcji TRUNCATE TABLE, która pozwala czyścić określoną partycję lub zestaw partycji z tabeli, jednocześnie uzyskując zalety instrukcji TRUNCATE TABLE bez usuwania wszystkich danych z tabeli. Ten nowy mechanizm filtru w instrukcji TRUNCATE TABLE jest uzyskiwany za pomocą opcji WITH PARTITIONS () określającej partycję lub zestawy partycji.  

Przykład użycia:

  • TRUNCATE TABLE dbo.powerSQLPartitionTestTable WITH (PARTITIONS (2)); 
  • TRUNCATE TABLE dbo...
Czytaj dalej

Update w pętli dużej ilości danych tak aby nie przepełnić loga

Bardzo często zdarza się, że trzeba dokonać zmian na wielu milionach rekordów. Wykonując update czy delete na takiej ilości rekordów w ramach jednej transakcji doprowadzamy do sytuacji rozrostu loga transakcyjnego.

Oczywiście jeżeli byśmy takie operacje wykonywali małymi porcjami to powstało by dużo transakcji i po zakończeniu każdej z nich silnik sql serwera wstawiał by ponownie dane do loga transakcyjnego wykorzystując już zwolnione miejsca (Recovery model = SIMPLE)

Poniżej przedstawiam przykładowy kod:

Czytaj dalej

SQL Day 2018

W dniach od 14 do 16 maja odbył się już po raz kolejny SQLDay 2018.

Oto kilka wybranych zdjęć:

Czytaj dalej

Procedura zwracająca nazwę FG na podstawie funkcji, schemy i kolumny partycjonującej

Na co dzień pracując z tabelami i indeksami partycjonującymi stworzyłem procedurę, która na podstawie parametrów wejściowych zwraca nazwę grupy plików, na której założona jest wybrana partycja.

Parametry wejściowe procedury to:

  • @PartitionFunction – nazwa funkcji partycjonującej
  • @PartitionSchema – nazwa schemy partycjonującej
  • @RangeValue – wartość kolumny partycjonującej. Uwaga, obsługiwany jest typ INT . Dla innych typów kolumn partycjonujących należy zmodyfikować kod.
Czytaj dalej
DBBS