In-band bulk import met SqlServer

Door GrimaceODespair op maandag 16 december 2013 01:53 - Reacties (4)
CategorieŽn: C#, SqlServer, Views: 2.725

Telkens als ik grote hoeveelheden data moet importeren in SQLServer, zoek ik het even opnieuw op, en kom ik er ook weer telkens opnieuw achter dat dat kan met BCP (command line) of met BULK INSERT (SQL commando). En beide opties hebben hetzelfde nadeel: het leent zich niet voor een dynamisch systeem, omdat je ( A ) het schema van de tabel in een format file nodig hebt en ( B ) de data in een bestand moet gooien. Bovendien duurt het altijd weer even voordat je de juiste configuratie-opties op de commandline hebt achterhaald.

Aangezien ik me niet zomaar kan neerleggen bij dergelijke beperkingen, vroeg ik me af of het misschien mogelijk was om de fysieke bestanden te vervangen door named pipes. Dat zou namelijk mogelijkheden openen om dergelijk imports niet "out-of-band" te doen, maar rechtstreeks in C#-code.

Een kleine speurtocht later bleek het antwoord op die vraag gedeeltelijk "ja". Dat antwoord was voldoende voor een proof of concept dat uiteindelijk resulteerde in een NuGet package.

Lees verder »

Performance counters in C#

Door GrimaceODespair op maandag 14 oktober 2013 02:14 - Reacties (6)
CategorieŽn: C#, Windows, Views: 4.225

Windows performance counters zijn een (misschien vooral door mezelf) erg misbegrepen topic en goede, begrijpbare codevoorbeelden zijn moeilijk te vinden. Daarom deze kleine utility class, waarmee het mogelijk is op een intuÔtieve manier enkele standaardmetingen te verrichten.

De class kan na creatie als volgt aangeroepen worden:

code:
1
2
3
4
using (perfCounters.Monitor())
{
  // do some task
}



Van de code binnen de using wordt dan automatisch bijgehouden hoe vaak ze wordt aangeroepen, hoe vaak dat gebeurt per seconde en hoe lang de code gemiddeld duurt.

Lees verder »