SQL Server 2016 and what’s cool!

“Een paar jaar geleden was ik bij een klant die in productie draaide op een CTP (Community Technology Preview) release van SQL Server. Hun verantwoording was dat SQL Server ‘proven-technology’ was, zelfs een CTP release. Dat klinkt bijna alsof SQL Server ondertussen wel zo’n beetje ‘af’ is. Niets is echter minder waar. Ondertussen is SQL Server 2016 CTP2 beschikbaar voor iedereen. Wederom komt er een grote release uit met veel gave nieuwe features. Hieronder licht ik een tipje van de sluier op voor drie nieuwe features. Overige features en Business Intelligence features volgen in latere posts”, aldus Peter ter Braake, docent bij Vijfhart.

Temporal Queries

Vanaf SQL Server 2016 kunnen we met SQL Server in de tijd reizen. Eigenlijk vraag je in een SELECT statement altijd om de huidige waarde van een kolom uit een record. Maar wat als je wilt weten hoe dat record er gister of vorig week uitzag? Uiteraard zijn er in de loop van de tijd veel ‘custom’ oplossingen bedacht voor dit soort vraagstukken. Vanaf nu kun je het aan SQL Server overlaten.

Om te beginnen moet je drie nieuwe kolommen aanmaken in de tabel waarvoor je tijdreizen wilt aanzetten. Bovendien geef je expliciet op dat je system_versioning wilt. Een voorbeeld staat in screenshot 1.

screenshot1

SQL Server maakt automatisch een tweede tabel aan waar historische records in worden aangemaakt. U hoeft verder functioneel niets te doen. Bij inserts of updates worden de kolommen SysStartTime, SysEndTime en period automatisch gevuld. Ook worden de oude versies van de records automatisch naar de historietabel gekopieerd.

Met lezen uit de database verandert eigenlijk ook niets. Gewone SELECT statements leveren zoals altijd actuele records op. Er is echter nieuwe syntax toegevoegd aan de FROM clause om historische data te lezen. In screenshot 2 vind je 4 voorbeelden.

screenshot2

 

Live Query Statistics

Eén van de belangrijkste tools voor Query performance troubleshooting zijn de query plannen die u kunt bekijken in SSMS. Tot nu toe had u daar twee opties voor. De eerste is het Estimate plan bekijken. Dit is de output van de compiler die je te zien krijgt zonder dat de query zelf echt is uitgevoerd. Je kunt ook het Actual execution plan bekijken. De query is nu daadwerkelijk uitgevoerd en het plan is verrijkt met actuals in plaats van alleen maar estimates.

Hoewel de execution plannen veel informatie geven, blijft het toch vaak lastig om ze te lezen en goed te interpreteren. In SQL Server 2016 is er een derde optie om naar deze plannen te kijken: live tijdens het uitvoeren van de query. Grafisch zie je welke operator wanneer actief is, hoeveel procent van het werk al gedaan is en wanneer een operator klaar is, inclusief de tijd die de operator nodig had. Op deze manier wordt nog duidelijker gevisualiseerd wat er eigenlijk allemaal gebeurt en krijg jenog meer input om je performance troubleshooting succesvol te maken.

Query Store

Hoewel de live query statistics zeker gaan helpen bij tuning, lost het een belangrijk issue niet op: waarom is een query nu traag terwijl hij het voorheen wel deed. Wat is er anders? In DMV’s kan ik de query en het executionplan vinden zoals ze nu zijn. Niet zoals ze misschien gister waren. En het plan van gister kan anders zijn door bijvoorbeeld andere indexen of andere statistieken. Bovendien overleven DMV’s een herstart van de server niet. Relevante informatie kan dus echt weg zijn.

Met de nieuwe Query store worden de DMV’s op basis van een schedule uitgelezen en in de database opgeslagen. Je kunt dus historisch kijken naar queries en de plannen. Daarmee kun je zien welk plan voor een query gebruikt werd in het verleden en dat vergelijken met het huidige plan. Eventueel kun je forceren dat het oude plan weer gebruikt gaat worden.

In screenshot3 zie je hoe je de Query Store kunt aanzetten.screenshot3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Screenshot 4 geeft aan hoe je gemakkelijk bij de opgeslagen informatie kunt. De opties onder Query Store in SSMS geven ook de mogelijke use cases aan voor de query store. Uiteraard kun je de informatie ook met T-SQL uit de database halen.

screenshot4

 

       

Tot slot

Dit zijn slechts drie van de features die je kunt verwachten in SQL Server 2016. Deze features alleen zijn genoeg reden om uit te kijken naar SQL Server 2016. Maar stay tuned! Binnenkort nog meer..

Door: Peter ter Braake, docent bij Vijfhart

Onderwerpen
Actieve filters: Wis alle filters
Pageloader
PRIVACY VOORWAARDEN

Jouw persoonsgegevens worden opgenomen in onze beschermde database en worden niet aan derden verstrekt. Je stemt hiermee in dat wij jou van onze aanbiedingen op de hoogte houden. In al onze correspondentie zit een afmeldmogelijkheid