
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”






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”
Podczas instalacji SQL Server 2019 dwa serwisy:
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ć SQL Server Configuration Manager i w SQL Server Network Configuration\Client Protocols oraz w SQL Native Client 11.0 Configuration \Client Protocols włączyć TCP/IP oraz Named Pipes.
Po tej czynności wystarczy zrestartować usługi SQL Server a następnie ponownie uruchomić usługi Polybase
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:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
use Foo go declare @i int =1 declare @x int=0 set rowcount 50000; -- będzie wykonywał update tylko na 50000 rekordów while @i>0 begin UPDATE Foo.dbo.Tabela SET kolumna = wartosc WHERE {predykat} set @i=@@ROWCOUNT set @x=@x+@i end set rowcount 0 |