MS SQL 2014 Nyheter

Här kommer en liten sammanfattning av nyheter i SQL 2014, som släpps officiellt den 1 april 2014. Det känns som Microsoft i denna release har fokuserat på ganska mycket på prestanda, i 2012 var det ju ett stort fokus på hög tillgänglighet (AlwaysOn).

Den största nyheten är troligen ”Memory Optimized Tables”, detta innebär i korthet att man kan ha hela tabeller lagrade i minnet, för att optimera prestanda. Där är dock en del ”om och men” med detta och dessa kommer vi säkert att återkomma till i ett framtida inlägg.

Det finns även andra nyheter som är nog så intressanta, t.ex.

* Cardinality Estimatorn, som används för att skapa query plans, är omskriven för att få bättre prestanda (i de flesta fall), man har bland annat gjort om den för att bättre hantera dagens datastorlekar, både för OLTP och OLAP, observera att denna bara är aktiv på databaser med compatibilitylevel 120. (se nedan). Denna kan dock avaktiveras med Traceflag 2312 om man inte vill använda den. (och då använder man version 70, dvs samma som sql 2012)

* Krypterade backuper är en annan nyhet, för de som använder SQLs egen backup, dessa kan krypteras med diverse algoritmer, såsom AES256 och Triple DES. Denna funktionalitet har ju funnits längre i tredjeparts backupverktyg.

* Delayed transaction durability, i motsats till full transaction durability (som är och har varit standard sedan start), väntar med att skriva till log-filen, och returnerar ok till klienten innan något är lagrat på disk, transaktionen lagras istället i en minnesbuffer, och skrivs ner i större block för att öka prestandan, man ska dock ha i åtanke att man kan förlora data om servern går ner innan skriving har skett. Skrivning till disk sker dels om en transaktion med full durability sker, sp_flush_log körs, eller minnesbuffern fylls.

En kul detalj är att från och med SQL 2014, kan man tilldela 128Gb minne i SQL Server Standard, till skillnad mot 64 som det var i 2012 och tidigare.

Att tänka på är att DATABASE COMPATIBILITYLEVEL för SQL 2014 är lägst 100, dvs SQL 2008, har man databaser från SQL 2005 eller äldre (gud förbjude) som ska konverteras måste man göra det i två steg, först till t.ex. SQL 2008 och sen till SQL 2014.

Hur kan man få reda på vilken kompabilitetsnivå dina databaser har idag?

Enkelt;

SELECT name, compatibility_level FROM sys.databases

Det är enkelt att ändra kompabilitetsnivå på en databas, dock bör man kontakta sin programvaruleverantör innan man gör det, då det kan få applikationen som använder SQL att sluta fungera, eller fungera annorlunda.

Det är inte helt otänkbart att vi kommer att gå djupare in på vissa av nyheterna i ett framtida inlägg.

//Pontus