Web
Site
Search
Home
Agenda
Links
Bloggers
Over PASS Nederland
User benefits
Geregistreerd... en dan?
Sponsoring
Artikelen
Cursussen en certificering
SQL Server 2000
SQL Server 2005
Examenrecensies
Archief nieuwsbrieven
2005
Nieuwsbrief 1 / 09-10-2005
2006
Nieuwsbrief 2 / 16-01-2006
Nieuwsbrief 3 / 11-03-2006
Nieuwsbrief 4 / 11-04-2006
Nieuwsbrief 5 / 08-05-2006
Nieuwsbrief 6 / 18-06-2006
Nieuwsbrief 7 / 27-08-2006
Nieuwsbrief 8 / 20-10-2006
Nieuwsbrief 9 / 22-12-2006
2007
Nieuwsbrief 10 / 04-02-2007
Nieuwsbrief 11 / 05-03-2007
Nieuwsbrief 12 / 02-04-2007
Nieuwsbrief 13 / 01-05-2007
Nieuwsbrief 14 / 01-06-2007
Nieuwsbrief 15 / 02-09-2007
Nieuwsbrief 16 / 04-10-2007
Nieuwsbrief 17 / 05-11-2007
Nieuwsbrief 18 / 06-12-2007
2008
Nieuwsbrief 19 / 12-01-2008
Nieuwsbrief 20 / 14-02-2008
Nieuwsbrief 21 / 02-05-2008
Nieuwsbrief 22 / 16-06-2008
Nieuwsbrief 23 / 01-08-2008
Nieuwsbrief 24 / 13-11-2008
Nieuwsbrief 25 / 01-12-2008
2009
Nieuwsbrief 26 / 07-02-2009
Nieuwsbrief 27 / 09-03-2009
Nieuwsbrief 28 / 01-04-2009
Nieuwsbrief 29 / 04-06-2009
Nieuwsbrief 30 / 02-09-2009
Nieuwsbrief 31 / 06-10-2009
Nieuwsbrief 32 / 07-11-2009
Nieuwsbrief 33 / 04-12-2009
Forum
onze sponsors
Forum
Login
|
Register
Forum
Unanswered
Active Topics
Forums
Search
Forums
>
Forums
>
Performance (SIG)
Subject: SQL 2005 Create Index with Include Option?
Prev
Next
You are not authorized to post a reply.
Author
Messages
Oldest First
Newest First
Arjan Fraaij
Posts:110
25-10-2007 08:26:35
Alert
Hallo,
Voor een klant wordt aangegeven om over te gaan op SQL2005 vanwege performance problemen met SQL2000.
De aangegeven reden dat zij zouden moeten overstappen is dat SQL2005 de include option ondersteund bij het aanmaken van een index.
CREATE
NONCLUSTERED
INDEX
[Index]
ON
[dbo]
.
[tabel]
(
[A]
,
[B]
)
INCLUDE ([C],[D])
Wie heeft hier ervaring mee?
Wat levert het op?
Zijn er nadelen aan verbonden?
MvG,
Arjan
Markus Bohse
Posts:19
25-10-2007 11:27:50
Alert
Het lijkt me erg onwaarschijnlijk dat alleen de mogelijkheid voor indexes met included columns de performance problemen gaat oplossen.
De idee achter included columns is dat je makkelijker een covering index kan creeeren terwijl niet de included columns niet onderdeel van de sortering zijn en dus ook niet aan fragmentatie bijdragen.
Je zou in SQL 200 ook al een index kunnen aanmaken die alle 4 kolommen bevat, met als enige verschil dat wanneer de columnen 3 en 4 vaak gewijzigd worden, dat je beter een lagere Fillfactor kan kiezen om fragmentatie te voorkomen.
De belangrijkste vraag is denk ik of het mogelijk is om covering indexes te creeeren voor al de queries die nu performance problemen veroorzaken. Queries die meer dan 4 of 5 kolommen opvragen komen hiervoor bijna niet in vraag, omdat de extra kosten voor opslag in mijn ogen te groot worden.
Misschien kan je wat meer vertellen over wat voor performance problemen zich voordoen. Zijn het maar enkele queries of is er meer aan de hand.
In het laaste geval zijn included columns zeker niet de oplossing.
Markus
Arjan Fraaij
Posts:110
25-10-2007 12:48:48
Alert
Markus,
Bedankt voor je reactie, mijn idee was inderdaad ook al waarom de additionele kolommen ook niet in de SQL2000 Index op te nemen. Wat is het verschil tussen dit te doen in SQL 2000 of de INCLUDE van SQL2005?
Is het soms zo dat wanneer je een Unique Clusterd Index creeërt met de include optie dat de included kolommen niet per definitue uniek hoeven te zijn in de record regel? Ben even te lui om op MSDN naar de beschrijving van include te kijken.
Het advies om over te stappen naar SQL 2005 is op meerdere punten gebaseerd (memory enhancement ed) echter dit punt word als een van de mean reasons aangegeven. Mijn gedachte was inderdaad ook al wat Markus aangaf om de SQL2000 indexes uit te breiden.
Gr,
Arjan
Hugo Kornelis
Posts:46
01-11-2007 20:21:37
Alert
Hoi Arjan,
Het belangrijkste voordeel van INCLUDE ten opzichte van gewoon extra kolommen in de index, is dat bij INCLUDE het maximum van 900 posities in de index niet meer telt en dat je zelfs "grote" datatypes (xml, varchar(max), etc) kunt opnemen. Daarnaast heb je een hele kleine besparing op de ruimte in de intermediate levels van de index structuur, maar dat is zo weinig dat het amper de moeite waard is. De opmerking van Markus over minder fragmentatie als de included columns geregels wijzigen is wel terecht.
Wat betreft UNIQUE of NONUNIQUE - als je in een bestaande UNIQUE index een extra kolom toevoegt blijft de index altijd UNIQUE; als je aan een NONUNIQUE index een kolom toevoegt kán de index UNIQUE worden.
Met vriendelijke groeten,
Hugo Kornelis (SQL Server MVP)
Arjan Fraaij
Posts:110
02-11-2007 08:25:14
Alert
Hallo Hugo,
Bedankt voor je reactie, maakt het voor mij weer wat duidelijker.
Gr,
Arjan
You are not authorized to post a reply.
Algemeen
--Forum regels
PASS Nederland
--Aankondigingen
--Bijeenkomsten
--PASS Nederland Algemeen
Forums
--DBA
--Ontwikkelen
--Business Intelligence
--Metadata (SIG)
--Performance (SIG)
--High Availability (SIG)
--XML (SIG)
--Algemeen
SQL Server
Forums
>
Forums
>
Performance (SIG)
> SQL 2005 Create Index with Include Option?
ActiveForums 3.6
Copyright (c) 2012 PASS Nederland
Privacy Statement
Terms Of Use