Cookies op Tweakers

Tweakers is onderdeel van DPG Media en maakt gebruik van cookies, JavaScript en vergelijkbare technologie om je onder andere een optimale gebruikerservaring te bieden. Ook kan Tweakers hierdoor het gedrag van bezoekers vastleggen en analyseren. Door gebruik te maken van deze website, of door op 'Cookies accepteren' te klikken, geef je toestemming voor het gebruik van cookies. Wil je meer informatie over cookies en hoe ze worden gebruikt? Bekijk dan ons cookiebeleid.

Meer informatie

Door Peter de Boer

Doktersteam

SQL Server 2008: een vooruitblik

Productive

De term Productive moet illustreren dat Microsoft de nodige aandacht heeft besteed aan het verbeteren van de productiviteit van beheerders en ontwikkelaars. Er zijn diverse veranderingen en verbeteringen die hun werk moeten vergemakkelijken.

*Policy based management
Om het beheer van SQL Server-databases en instanties te verbeteren is het Policy-Based Management-framework toegevoegd. Door het instellen van verschillende regels kan een beheerder op diverse niveaus bepalen welke acties de gebruikers van de databases wel of juist niet mogen uitvoeren. De lijst met opties is te lang om op te noemen, maar de mogelijkheden lopen uiteen van de configuratie van de database tot de grootte van tabellen, maar ook naamgeving van objecten. Vrijwel alle instellingen die binnen SQL Server te maken zijn, zijn via policies af te dwingen en te monitoren.

SQL Server 2008 Policy Based Management
SQL Server 2008 Policy Based Management

Naast het beheer via policies kunnen beheerders ook gebruik maken van de command line-interface Powershell. Deze wordt tijdens de setup van SQL Server geïnstalleerd. Met de powertools van SQL Server 2008 kunnen overigens ook 2000- en 2005-databases beheerd worden.

*Verbeteringen voor developers
Met de komst van SQL Server 2008 is eindelijk het langverwachte Entity Framework beschikbaar. Waar diverse andere leveranciers al jaren een werkend product hebben, probeert nu ook Microsoft hiermee op de object relational mappers-trein te springen. Het EF zou oorspronkelijk met Visual Studio 2008 en het .Net-framework 3.5 meegeleverd worden, maar uiteindelijk is de release dus aan SQL Server 2008 gekoppeld.

Veel ontwikkelaars die regelmatig t-sql code moeten kloppen, zullen enthousiast worden van de introductie van IntelliSense binnen SQL Server Management Studio. Net als binnen Visual Studio kunnen commando's en objectnamen door Management Studio automatisch worden aangevuld. Naast IntelliSense is er syntaxcontrole toegevoegd, die wel wat wegheeft van de spellingcontrole in Word.

Intellisense in SQL Server 2008 management studio
IntelliSense in SQL Server 2008 management studio

Syntaxcontrole in SQL Server 2008 Management Studio
Syntaxcontrole in SQL Server 2008 management studio

Ten slotte is de t-sql-debugger weer terug. In SQL Server 2000 was het mogelijk om t-sql-code in stored procedures te debuggen met de Query Analyzer. In de 2005-versie is deze mogelijkheid tot ongenoegen van veel ontwikkelaars verwijderd, waardoor het gebruik van Visual Studio onvermijdelijk werd. Gelukkig is Microsoft verstandig geweest en heeft het bedrijf de debugmogelijkheden weer toegevoegd aan de management studio van SQL Server 2008.

*Transact-SQL verbeteringen
De querytaal t-sql is in de 2008-release ook niet ongemoeid gelaten. Met table valued parameters is het mogelijk geworden om complete records uit een tabelstructuur door te geven aan een user-defined functie of stored procedure. Met de verbeterde ondersteuning van objectafhankelijkheden is nu eenvoudiger en vooral accurater een overzicht te maken van aan elkaar gerelateerde objecten.

SQL Server 2008 kent een aantal nieuwe datatypen. Twee aparte datatypen voor tijden en datums zullen voor veel ontwikkelaars erg welkom zijn. Tot op heden was het immers niet mogelijk een datum zonder tijd of juist een tijd zonder datum op te slaan. Daarnaast is datetime2 toegevoegd voor een grotere precisie, en datetimeoffset is een datumtijdtype dat rekening houdt met tijdzones.

*Offline systemen
Voor systemen die niet altijd met de centrale database verbonden zijn is het synchronisation framework in het leven geroepen. Hiermee kunnen applicaties eenvoudig offline gehaald worden, waarna ze gesynchroniseerd worden als de verbinding weer beschikbaar is. Hiervoor wordt gebruik gemaakt van functionaliteit die Change Tracking wordt genoemd.

*Filestream
Voor het opslaan van binaire bestanden waren altijd twee verschillende mogelijkheden. Een bestand kan in een blob in de database worden opgeslagen of gewoon op schijf worden gezet, waarna een verwijzing naar de bestandslocatie in de database wordt opgenomen. Aan beide oplossingen kleven voor- en nadelen. Zo is het opslaan van een blob in de database niet erg efficiënt. Daarnaast is het opslaan van een blob erg database-specifiek, en is het niet eenvoudig een database met blobs te migreren naar een ander platform.

Er zijn ook voordelen aan het opslaan van de bestanden in de database. De toegangsbeveiliging wordt door de database geregeld, het verplaatsen van de omgeving naar een nieuwe server -met hetzelfde databaseplatform - is een kwestie van het kopiëren van het databasebestand, en de relationele integriteit kan, in tegenstelling tot bij de opslag van losse bestanden, wel goed geregeld worden.

De hier genoemde voor- en nadelen zijn niet compleet en zijn tot op de dag van vandaag voer voor verhitte discussies tussen voor- en tegenstanders van beide methodes. Met de komst van SQL Server 2008 wordt echter een derde opslagmethode voor binaire bestanden geïntroduceerd: de filestream. Met filestreams worden bestanden opgeslagen op het bestandssysteem, maar de ontwikkelaar kan een bestand benaderen alsof het een blob is. Het bestand op het filesystem maakt ook integraal onderdeel uit van de database. Zaken als rechten, backups en het synchroon houden van de bestanden worden dan ook volledig door SQL Server geregeld. De performance is door het gebruik van Win32-streaming-api's gelijk aan die van normale opslag op schijf, en de grootte van de bestanden wordt slechts beperkt door de beschikbare hoeveelheid schijfruimte. Filestream lijkt dus de geëigende methode voor het opslaan van bestanden.

Voor ontwikkelaars die nog wel blobs willen blijven gebruiken, is de Remote Blob-api toegevoegd. Hiermee wordt het eenvoudiger om de blobs op een externe server of een nas-systeem op te slaan. Microsoft heeft een whitepaper beschikbaar waarin de verschillende mogelijkheden voor het opslaan van bestanden tegenover elkaar worden gezet.

*Geografische informatie
Met de introductie van SQL Server 2008 komt ook de ondersteuning voor spatial data, oftewel geografische gegevens. SQL Server is hiermee overigens aan de late kant. Verschillende concurrenten zoals Oracle en MySQL bieden al in meer of mindere mate ondersteuning voor geografische data.

Voor het werken met geografische gegevens zijn twee nieuwe datatypes geïntroduceerd, geometry en geography, waarbij de eerste een vlakke wereld als uitgangspunt heeft, en de tweede werkt met een bolvormige omgeving. Het geometry-datatype voldoet aan de standaard van het Open Geospatial Consortium.

Het datatype geometry kan gebruikt worden om de locatie en omtrek van polygonen op te slaan, terwijl het geography-type geschikt is om bijvoorbeeld data van gps-systemen te bewaren. Beide types kunnen volledig geïndexeerd worden.

De introductie van spatial-ondersteuning biedt interessante mogelijkheden. Zo is het mogelijk om gegevens op een kaart te plotten of alle vestigingen van een winkelketen binnen een bepaalde straal met een enkele query op te halen.

Voorbeeld van het gebruik van spatial data.
Voorbeeld van het gebruik van spatial data.

*Hierarchy ID
Vrijwel iedere ontwikkelaar zal wel eens gegevens volgens een hiërarchisch ouder-kind-model hebben moeten opslaan. De meest gebruikte structuur hiervoor is waarschijnlijk een tabel met een ID en een ParentID. Met behulp van een recursieve functie is het vervolgens mogelijk de gegevens gestructureerd op te halen.

Met de komst van SQL Server 2008 wordt het werken met deze boomstructuren een stuk eenvoudiger. Microsoft heeft hiervoor een clr-functie genaamd Hierarchy ID toegevoegd. Door het gebruik van deze nieuwe techniek is het opvragen van een ouder niet moeilijker dan SELECT child.GetAncestor (n), waarbij n voor het gewenste niveau staat. Er is een video beschikbaar die de werking van Hierarchy ID tot in detail uitlegt.

*Integrated full text search
Full Text Indexing was in vorige versies van SQL Server als aparte service opgenomen. In de 2008-versie is deze functie volledig geïntegreerd in de databaseserver zelf. De third party-plugins - bijvoorbeeld voor het doorzoeken van pdf-bestanden - worden nog wel in een apart proces geladen. Op de Msdn-site is een uitgebreid artikel over de nieuwe mogelijkheden van Full Text Indexing in SQL Server 2008 te vinden.

Verder mogen ook de invoering van sparse columns, waarbij null-waarden geen fysieke ruimte innemen, en het opheffen van de 8000-karakterlimiet voor user defined functions zeker niet onvermeld blijven.

Wat vind je van dit artikel?

Geef je mening in het Geachte Redactie-forum.

Apple iPad Pro (2021) 11" Wi-Fi, 8GB ram Microsoft Xbox Series X LG CX Google Pixel 5a 5G Sony XH90 / XH92 Samsung Galaxy S21 5G Sony PlayStation 5 Nintendo Switch Lite

Tweakers vormt samen met Hardware Info, AutoTrack, Gaspedaal.nl, Nationale Vacaturebank, Intermediair en Independer DPG Online Services B.V.
Alle rechten voorbehouden © 1998 - 2021 Hosting door True