Kilka znanych dobrych praktyk DBA w DWH

Poniżej przedstawiam kilka dobrych ogólnie znanych praktyk kierowanych do administratorów baz danych MS SQL Server związanych z utrzymaniem środowiska. Tworzenie i utrzymywanie standaryzowanego środowiska – jeżeli tylko mamy taką możliwość starajmy się doprowadzić do ujednolicenia konfiguracji używanych serwerów MS SQL Server. Należy również starać się używać tego samego systemu Windows Server OS i wersji i wydań SQL Server. Podobnie należy starać się utrzymywać wszystkie swoje zadania utrzymania baz danych i zadania SQL Agent tak samo (przyjęta konwencja nazewnicza, konta techniczne itp.). Jeśli Dowiedz się więcej

SQL SERVER 2019 – Błąd przy uruchamianiu serwisów Polybase – The request failed or the service did not respond in a timely fashion

Podczas instalacji SQL Server 2019 dwa serwisy: SQL Server PolyBase Engine SQL Server PolyBase Data Movement nie uruchamiały się. Był generowany błąd „The request failed or the service did not respond in a timely fashion„ Przyczyn tego błędu może być kilka: 1. Wygaśnięcie hasła dla konta, na którym uruchomiona była usługa 2. Zmiana hasła dla konta, na którym była uruchomiona usługa bez aktualizacji poświadczeń dla usługi 3. Nieprawidłowa konfiguracja protokołów sieciowych W tym wypadku była to nieprawidłowa konfiguracja protokołów sieciowych. Należy uruchomić Dowiedz się więcej

Nowy CU13 dla SQL Server 2017

Pojawił się nowy zestaw skumulowanych poprawek CU w wersji 13 dla MS SQL Server 2017. Aktualizuje składniki usług SQL Server i Analysis do następujących kompilacji: Składnik Wersja kompilacji Wersja pliku SQL Server 14.0.3048.4 2017.140.3048.4 Analysis Services 14.0.239.1 2017.140.239.1 Więcej informacji uzyskać można na stronie Microsoft https://support.microsoft.com/pl-pl/topic/kb4466404-aktualizacja-skumulowana-13-dla-programu-sql-server-2017-12b5beef-45d1-12e4-5091-b4396902af77

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.powerSQLPartitionTestTable WITH (PARTITIONS (1,3,6))  TRUNCATE TABLE dbo.powerSQLPartitionTestTable WITH (PARTITIONS (1,2, 4 TO 6));  TRUNCATE TABLE dbo.powerSQLPartitionTestTable WITH (PARTITIONS (4 TO Dowiedz się więcej

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:

Odbudowa indeksu na wybranej partycji

W SQL Server można wykonać odbudowę indeksu dla wybranej partycji. Nie trzeba już przebudowywać całego indeksu na całej wybranej tabeli partycjonowanej. Oczywiście we wcześniejszych wersjach mając SQL Server 2012 w codziennym procesie zasilania korzystając z danych ETL, stosowano dość powszechną praktykę: Wyłączenie indeksów w tabeli docelowej (przynajmniej indeksy nieklastrowe) Wstawienie nowych danych Przebudowa NCI Praca w ten sposób jest zwykle optymalna, ponieważ SQL Server nie musi aktualizować NCI podczas importowania danych. Wyobraź sobie jednak, że mamy siedem lat danych. Oznacza to 7 Dowiedz się więcej