onze sponsors
Hoi,
Kan iemand mij aangeven of de impact die een indexed view heeft op updates van onderliggende tabellen vooraf te berekenen is?
Ik verwacht dat deze updates meer tijd gaan kosten bij het gebruik van een of meer indexed views. Hoewel MS in haar documentatie aangeeft dat OLAP databases het meeste voordeel hebben bij het gebruik van indexed views, zegt Microsoft niet dat er geen voordeel is te behalen bij OLTP databases. Dit kost uiteraard e.e.a. aan uitzoekwerk om te bepalen hoe deze indexed view er uit moet gaan zien, dit zal echter geen probleem zijn schat ik in. De truuk is uiteraard een goede balans te vinden tussen de indexed views en de OLTP tabellen. De extra tijd die het kost om updates en inserts te verwerken in de indexed views moet opwegen tegen het voordeel van de indexed view. Het lijkt mij dat hier een formule voor zou moeten zijn. Is er iemand die zich hier al eens mee bezig heeft gehouden?
Als er iemand is die zijn ervaring wil delen, graag!
B.v.d.
Dave
Ik heb in het verleden indexed views toegepast op een OLTP database voor aggregaties. Bij grote hoeveelheden records kan hiermee het aantal reads drastisch verminderd worden. Dit met de Enterprise versie van SQL Server 2005, deze kan zelf bepalen of met de indexed view voordeel te behalen is ten opzichte van het gebruik van de onderliggende tabellen.
Mijn werkwijze was als volgt: - Zoek de queries die de meeste reads veroorzaken met DMV's en/of tracing. Hierbij is het ook van belang hoe vaak een bepaalde query wordt uitgevoerd. - Maak de indexed views die passen bij de duurste queries (in dit geval SUM). Dit zijn degene die veel reads veroorzaken en/of vaak worden uitgevoerd. - Kijk hierna of de indexed views ook daadwerkelijk gebruikt worden. Als dit niet het geval is kan je ze natuurlijk beter verwijderen. - Hierna weer hetzelfde vanaf stap 1, ook rekening houdende met writes.
Hoi Dave,
Let er wel even op dat er nogal wat voorwaarden zijn waaraan je moet voldoen : http://msdn.microsoft.com/en-us/library/aa933148(SQL.80).aspx Ook als je partitioning gebruik zijn er een paar dingen waar je op moet letten (beter geworden in 2k8 trouwens) : http://technet.microsoft.com/en-us/library/bb964715.aspx
Ik ben het overgens eens met IJeb en Rob, je moet er even over nadenken maar de winst kan groot zijn.
Groeten,
André