Making the Most of SQL Server 2005, Developing World Class Database Applications

Talare:
Kimberly L. Tripp
Blogg: http://www.SQLskills.com/blogs/Kimberly
Brian A. Randell
Blogg: http://www.mcwtech.com/cs/blogs/brianr

Summering
Hela dagen gick ut på att man skulle lära sig hur man ska bygga de mest effektiva databaserna och hur man ska sätta upp SQL Server 2005 på mest effektiva sättet. Kimberly och Brian var mina två favorit-föreläsare vid förra årets tech-ed och de höll lika hög klass i år. På något sätt lyckas de få så otroligt töntiga saker som hur SQL-server hanterar index på filstrukturnivå intressant vilket gjorde att man kunde ta in så mycket som möjligt även om det ibland gick lite utöver ens kunskaper. Dagen var uppdelar i olika delar och jag redorgör för varje del.

Installation and initual configuration
När det gäller installation av SQL Server 2005 så är det en viktig sak som skiljer sig ifrån SQL Server 2000 och det är hur servern använder TempDB. I 2005’an används tempDB väldigt mycket mer än i 2000 och därför blir det viktigt att isolera den så att den om möjligt ligger på en egen disk och den bör även vara uppdelad i minst två stycken fysiska filer. Annars så var det ganska likt innan och de som de sa var mycket viktigt var att man ska isolera transaktionsloggen så att den ligger på en egen disk och att om man kör RAID’at så ska det INTE vara RAID 5 utan helst RAID 10, men även RAID 0 är bättre och på så snabba hårddiskar som möjligt. Anledningen är att det blir väldigt mycket IO-läsningar till transaktionsloggen och då är det viktigt att se till att IO-skrivningen inte blockeas av annat.

Optimal Database Structure, Table structure and design
Här var det inte så mycket nyheter mer än att man fick veta hur viktigt det var att följa 8 kb – regeln när det gäller rowsize, vilket man har förträngt (published_small, unit….😦 ). Det som är viktigt då det är en ganska låg gräns är att verkligen tänka igenom vad man använder för datatyper och varför det ev. är så många kolumner, t.ex. om man ska spara telefon-nummer så är det bättre att använda char(12) än att använda varchar(20) då varchar är slöare och overhead-en på char(12) blir mindre, dock finns det en 20-regel när det gäller strängar. Det är också oftast bättre att lägga till en extra kolumn på relationstabeller för primärnyckel som bör vara IDENTITY än att göra en primärnyckel över flera kolumner. Det diskuterades också om normalisering och vad som egentliger är rätt, 6-7:e normalform som skolböckerna säger eller en effektiv fungerande databas i så nära 3:e normalform som möjligt, gissa vilken som var rätt enligt dem😉

Developing in SQL Server 2005
I och med SQL Server 2005 så har databasutvecklarna fått möjlighet att lägga in .NET kod direkt i sql-servern samt så är XML-stödet fullt utbyggt så nu är inte från om man ska använda T-SQL eller ANSI-SQL utan nu har man så mycket val att man inte vet ut eller in. Grundfilosifin är att använda det som är mest effektivt för applikationen som använder databasen utefter det som T-SQL, CLR (.NET kod) och XML är bäst på, bara för att det går att implementera avancerad kod i sql servern så ska man inte göra det. Även T-SQL har fått en ansiktslyft och innehåller några nya funktioner som verkar väldigt intressanta som t.ex. RANK, CROSS APPLY, TRY CATCH och Common Table Expressions.

Caching
Med SQL SERVER 2005 har vi fått tillgång till en ny funktion som heter Cache Sync som går ut på att applikationen begär vilken data som ska cachas och då övervakar också servern denna data så om datat ändras på servern så skickas det information om det till applikationen. Detta är en cool funktion som INTE ska anvädas om det är massvis med användare utan då bör det skötas på annat sätt. De visade också att det gick att implementera asp.NET cachningen i en vanlig windows-applikation genom system.web, vilket var coolt.

Tuning, Monitoring and Diagnosing System Problems
Det ägnades ganska mycket tid åt denna del om man räknar in index i den och det är en väldigt intressant del då det är det svåraste som finns. Det som verkar lovande i 2005 är att det finns fler lösningar för att kunna analysera en server som går trögt än SQL Profiler, som är bra, men som själv ofta tar mycket kraft ifrån servern. När det gäller monitorering och diagnosering så kan man enkelt säga att det krävs en djupdykning i systemfunktioner och kunskap i hur SQL Server fungerar. Index-delen är som alltid intressant och det mest intressanta jag fick med mig var att man ska skapa non-clustered index på främmande nycklar för de tabeller som används i joins manuellt eftersom de inbyggda funktionerna för att hitta de bästa index’en aldrig gör detta.

Summering
En mycket givande och intressant dag som gör att man vill gå över till SQL Server 2005 och lära sig mycket mer om SQL-server.

Kommentera

Fyll i dina uppgifter nedan eller klicka på en ikon för att logga in:

WordPress.com Logo

Du kommenterar med ditt WordPress.com-konto. Logga ut / Ändra )

Twitter-bild

Du kommenterar med ditt Twitter-konto. Logga ut / Ändra )

Facebook-foto

Du kommenterar med ditt Facebook-konto. Logga ut / Ändra )

Google+ photo

Du kommenterar med ditt Google+-konto. Logga ut / Ändra )

Ansluter till %s


%d bloggare gillar detta: