SQL

SQL Server – minimalne logowanie

SQLServer_MinimalneLogowanie_00
Follow me

Adrian Chodkowski

SQL geek, Data enthusiast, Consultant & Developer
Adrian Chodkowski
Follow me

Na to czy nasze rozwiązanie jest dostatecznie wydajne ma wpływ bardzo dużo różnych czynników. W przypadku procesów ładujących ETL czy też ELT jednym z kluczowych aspektów na jakie trzeba zwrócić uwagę jest minimalne logowanie. Co to jest i jak należy to testować? Postaram się to wytłumaczyć w ramach niniejszego artykułu – serdecznie zapraszam. Jak wszyscy wiemy baza danych aby zachować konsystencję i spełnić wszelkie postulaty bycia transakcyjną wykorzystuje dziennik transakcyjny (ang. transaction log). To właśnie w tym miejscu znajdują się informacje o niemal wszystkich operacjach modyfikujących jakie zostały wykonane na bazie danych. Jest to niezwykle istotne ze względu na fakt,…
Read more

SQL Server – parę słów o TABLOCK

SQLServer_Tablock_00
Follow me

Adrian Chodkowski

SQL geek, Data enthusiast, Consultant & Developer
Adrian Chodkowski
Follow me

Dziś nieco zmienimy tematykę i chwilowo zostawiamy Azure Data Studio, ale nie ma czym się martwić bo powiemy sobie o niezwykle interesującej wskazówce jaką jest TABLOCK. Użycie tego konkretnego hinta jest powszechne jednakże w tak zwanym międzyczasie narosło na jego temat kilka mitów. Ponadto wiedza na ten temat nie jest zbyt powszechna dlatego też postanowiłem napisać kilka słów, które mam nadzieję okażą się użyteczne. Tak więc zaczynajmy! Na wstępie przedstawmy sobie definicję czym tak naprawdę jest TABLOCK. Otóż jest to wskazówka możliwa do użycia w zapytaniu, która powoduje, że blokada zwana powszechnie lockiem z poziomu wiersza lub strony jest przenoszona…
Read more

Adaptive Query Processing – Memory Grant Feedback

SQLServerMemoryGrantFeedback_00
Follow me

Adrian Chodkowski

SQL geek, Data enthusiast, Consultant & Developer
Adrian Chodkowski
Follow me

Kontynuujemy naszą małą serię związaną z Adaptive Query Processing czyli elastycznym dostosowaniu zapytania w trakcie jego wykonania. Do tej pory udało mi się opisać dwa mechanizmy wchodzące w skład AQP i były to Interleaved Execution oraz Adaptive Join, dziś opowiemy sobie o kolejnym, który został wprowadzony w SQL Server 2017 i ulepszony w wersji SQL Server 2019 o dosyć ciekawie brzmiącej nazwie tj. Memory Grant Feedback, serdecznie zapraszam do lektury. Na wstępie powiedzmy sobie kilka słów o tym czym jest  Memory Grant i od czego zależy. Jak sama nazwa wskazuje jest to nic innego jak przydział pamięci nadawany przez SQL…
Read more

In-memory OLTP – Memory Optimized Table Variables

SQLServer_Inmemoryvariables_00
Follow me

Adrian Chodkowski

SQL geek, Data enthusiast, Consultant & Developer
Adrian Chodkowski
Follow me

Użycie zmiennych tabelarycznych i tabel tymczasowych w SQL Server jest niezwykle popularne. Ludzie na co dzień pracujący z kodem czy to TSQL czy też innym językiem dedykowanym do wytwarzania oprogramowania przywykli do konceptu zmiennej. Obiekt tego typu oprócz przechowywania danych skalarnych pozwala również zachować rezultat w postaci tabeli. W SQL Server tabelaryczna forma zmiennych okryta jest złą sławą i chyba każdy z nas chociaż raz uczestniczył w sesji lub czytał artykuł, który porównywał zmienne tabelaryczne z tabelami tymczasowymi. Wad zmiennych tego typu z całą pewnością jest sporo jednakże nie oznacza to, że nie sprawdzą się one w żadnej sytuacji. Nie…
Read more

10 złych praktyk i niebezpiecznych nawyków w SQL Server

SQLBadHabits_07
Follow me

Adrian Chodkowski

SQL geek, Data enthusiast, Consultant & Developer
Adrian Chodkowski
Follow me

W swojej karierze miałem okazję oglądać już całkiem dużą liczbę mniejszych lub większych implementacji z wykorzystaniem SQL Server. Zdarza mi się również oglądać rozwiązania pisane według myśli technicznej innych deweloperów. Bardzo często spotykam się z kodem TSQL, który jest nie tylko bardzo dobrze napisany pod kątem składni, ale również poukładany według pewnych konwencji nazewniczych. Niestety często oglądam również małe “potworki” gdzie deweloperzy nie trzymają się absolutnie żadnych dobrych praktyk, a to co mieli na myśli pisząc taki, a nie inny kod jest zagadką tak ciężką do rozwiązania, że same próby przyprawiają o ból głowy. Dlatego też postanowiłem, że kilka pomniejszych…
Read more