Paul van Oordt  SQL Services

Freelance SQL Server specialist en troubleshooter, Utrecht / Antwerpen

0627400408 - WhatsApp - info@vanoordt.nl
LinkedIn - curriculum vitae
vanoordt.nl - English
nieuwsbrief

SQL Server werkzaamheden

Hieronder staat meer informatie over de diverse deelgebieden van SQL Server waarop ik als freelancer opdrachten uitvoer.

performance tuning

De kans is aanzienlijk dat een SQL Server-toepassing vroeger of later performance-problemen gaat vertonen. Het gebruik en de data nemen toe, en queries die eerder goed werkten, duren opeens veel te lang of geven time-out errors. Extra resources toevoegen kan duur zijn, zeker in de cloud of in het geval van per-core SQL Server licenties. Het goede nieuws is dat de performance van SQL Server doorgaans met enige inspanning sterk te verbeteren is.

De prestaties van SQL Server worden door zeer veel factoren beïnvloed. Performance tuning omvat uiteenlopende taken als optimaliseren van fysieke resources (geheugen, disk, processor), het vinden van de duurste queries, analyseren van query-plannen, het herschrijven van queries, het adequaat indexeren van tabellen, configureren van server- en database-settings, etc., etc.

Een performance tuning opdracht duurt typisch 1 à 2 dagen, afhankelijk onder andere van de complexiteit van de databases en queries, en van de mate waarin de klant zelf modificaties kan doorvoeren en/of monitoren. Kennisoverdracht is bijna altijd een deel van het traject.

Zie ook: Wat moet je weten over SQL Server performance-problemen?

training

Vanaf 1999 heb ik als Microsoft Certified Trainer (MCT) 10 jaar lang met enige regelmaat klassikale database-cursussen verzorgd voor Compu'Train. Doorgaans is daarbij gebruik gemaakt van het Official Curriculum (MOC). Incidenteel geef ik een op maat gemaakte cursus voor een eindklant, en met enige regelmaat een in-house SQL Server crash course waarbij de inhoud van de cursus vooral ter plekke wordt bepaald door de deelnemers. Het gaat dan bijvoorbeeld om een aantal ontwikkelaars van een software-leverancier, die al een behoorlijke kennis van SQL Server hebben, maar waarbij de kennis vaak fragmentarisch is, soms een beetje verouderd en matig door echt begrip gesteund. Dit zijn intensieve maar erg leuke dagen, zowel voor de cursisten als voor mij.

In veel van de trajecten die ik uitvoer zit bovendien een training on the job aspect. Ik werk graag met één of meerdere medewerkers van de klant die 'mij op de vingers kijken', en die zo een vliegende start kunnen maken. Dit komt vaak voor bij performance tuning en troubleshooting, maar bijvoorbeeld ook bij het maken van een eerste opzet van een database of datawarehouse. Kennisoverdracht juich ik altijd toe en mijn ervaring in talloze klassikale- en praktijksituaties is dat vrijwel iedereen gemotiveerd en leergierig is.

databases ontwerpen en implementeren

Relationeel modelleren is voor iedere databasespecialist een genoegen. Het omvat het maken van een genormaliseerd datamodel en het creëren van de objecten in een SQL Server database. Het gaat erom een structuur van tabellen en constraints te maken die de mogelijkheid heeft de data zonder redundantie of ongewenste afhankelijkheden op te slaan en waarbij data-integriteit maximaal gewaarborgd is. Ook performance kan daarbij al een aandachtspunt zijn, al is dat meestal volgens het principe: een goed gestructureerde database is een goed presterende database.

In talloze opdrachten die ik heb uitgevoerd komt datamodelleren en het implementeren van een database-structuur voor. Ook heb ik vele cursussen gegeven over Gegevensmodellering en het implementeren van SQL Server.

Zie ook mijn aanbevelingen voor SQL Server ontwikkeling.

T-SQL programmeren

Transact-SQL is de server-side programmeertaal voor SQL Server. Het is een uitgebreide, krachtige taal waarin de businesslogica van een database-applicatie geprogrammeerd kan worden, en die intensief wordt gebruikt bij datamigraties en soms bij ETL. T-SQL omvat naast de declaratieve SQL taal, en Microsofts uitbreidingen daarop, o.a. procedurele constructies en variabelen. T-SQL bevat ook een groot aantal voorgedefinieerde procedures en functies. Ik werk sinds 1999 met deze taal in vele opdrachten, waaronder enkele zeer omvangrijke. Daarvoor werkte ik al enige jaren met de tegenhanger van Oracle: PL/SQL. T-SQL bevat ook een geavanceerde ontwikkelomgeving: SQL Server Management Studio.

Een goede T-SQL ontwikkelaar is allereerst in staat complexe declaratieve (set based) SQL statements te schrijven, weet daarnaast wanneer aanvullende procedurele constructies nodig zijn, en heeft een grondige kennis van de primitieven van de taal. Een goede programmeur in welke taal dan ook werkt netjes en systematisch en kan zeer goed abstract denken. Programmeren lijkt makkelijk, en de eerste 80% is vaak ook makkelijk... Mijn academische studie Toegepaste Logica is aan het werk als programmeur niet vergooid.

Zie ook mijn aanbevelingen voor SQL Server ontwikkeling.

database administration & troubleshooting

Regelmatig verricht ik allerhande DBA werkzaamheden, zoals installatie en configuratie, upgrades, het inrichten van backup- en andere onderhoudsroutines, configureren van database-security en dataconversie. Backup en ander onderhoud is soms simpel te doen met één of twee maintenance plannen, maar kan ook complexer zijn en met een T-SQL script worden gerealiseerd. Backup kan omvatten backup encryption of backup naar Microsoft Azure BlobStorage. Het komt regelmatig voor dat ik SQL Server implementaties, migraties of consolidaties plan en voorbereid. Daaronder valt ook het kiezen van SQL Server edities en licenties.

Ook troubleshooting van onverwachte situaties is soms nodig. Bijvoorbeeld wanneer een database opeens suspect is, als replicatie zomaar stopt of het SQL Server proces niet meer wil starten. Het zijn gelukkig uitzonderingen en echt ervaring krijg je met dit soort problemen nooit. Als ik er mee te maken krijg, dan weet ik dat de kans groot is dat ik de oplossing vind.

scalability en high availability

Belangrijke aspecten van een SQL Server implementatie zijn schaalbaarheid en beschikbaarheid. Oplossingen voor scalability kunnen worden onderscheiden in scaling-up (meer werklast op dezelfde server) en scaling-out (verdelen van de werklast over verschillende servers). Scaling-out kan bijvoorbeeld middels replicatie, door het scheiden van transactieverwerking en rapportage, door logshipping en ook door Availability Groups of mirroring, eventueel in combinatie met database snapshots.

Overigens zie ik vaak een te enthousiast gebruik van scaling-out-opties. Het introduceert hoe dan ook complexiteit en het is dus altijd raadzaam heel goed te onderzoeken of scaling-up ook voldoet. Zo niet dan is het zaak de scaling-out zo simpel mogelijk te houden. Dus liever transactionele dan merge-replicatie, liever Availability Group met readable secondary of log shipping dan complexe ETL routines. Er kan veel met SQL Server. Het kiezen van het juiste middel is cruciaal.

High availability kan gerealiseerd worden onder andere door failover clustering en (Basic) Availability Groups of database mirroring. Met alle technieken heb ik meer of minder hands-on ervaring.

business intelligence

Microsoft SQL Server bevat naast de relationele database hulpmiddelen voor ETL, multidimensional databases en reporting.

SQL Server Analysis Services (SSAS) is de tool waarin multi-dimensionele OLAP databases kunnen worden gemaakt, die zowel logisch als fysiek geoptimaliseerd zijn voor querying en analyse. Zoals SQL de vraagtaal is voor relationele databases, zo heeft ook het multi-dimensionele model een vraagtaal: MDX.

In een aantal (grote en kleine) projecten heb ik intensief met Analysis Services en MDX gewerkt. Ook heb ik ervaring met het gebruik van Excel pivot tables (draaitabellen) voor het creëren van slice and dice functionaliteit, al dan niet als front-end voor Analysis Services.

Indien rapportage gescheiden is van transactieverwerking, is het regelmatig overzetten van data aan de orde. SQL Server Integration Services, de ETL-tool van Microsoft, valt buiten mijn expertise. Wel heb ik zeer uitgebreide ervaring met het uitvoeren van ETL taken in Transact-SQL.

SQL Server Reporting Services (SSRS) is Microsofts tool voor web-based reporting. In het verleden heb ik in diverse projecten met SSRS gewerkt en er cursus over gegeven. Op dit moment kan ik op hoog niveau adviseren over het gebruik van SSRS, maar is het maken van rapporten geen deel van mijn aanbod.

 

 

 
 
 
 
 
 

 

(c) Paul van Oordt, vanoordt.nl
 

vanoordt.nl Laatst gewijzigd: 19 december 2022