1/28
Looks like no tags are added yet.
Name | Mastery | Learn | Test | Matching | Spaced |
|---|
No study sessions yet.
Wat is Moore's Law?
De observatie dat het aantal transistors in een geïntegreerd circuit ongeveer elke twee jaar verdubbelt. Het is een historische trend, geen fysieke wet.
Wat is Wirth's Law?
Software heeft de neiging om sneller trager te worden dan hardware sneller wordt.
Waarom blijft database performance relevant ondanks Moore's Law?
Door Wirth's Law (software-inefficiënties) blijft performance een kritiek punt, zelfs met hardwareverbeteringen.
Wat is een database-index?
Een datastructuur die de snelheid van data-ophaling (queries) op een tabel verbetert, ten koste van extra opslag en onderhoud.
Wat is een veelvoorkomende oorzaak van slechte database performance?
Ontbrekende indexes (Missing indexes).
Wat is de kleinste opslag-eenheid in SQL Server?
Een Page (Pagina). Dit is een aaneengesloten blok opslagruimte van 8 KB.
Wat is een Extent in SQL Server?
Een logische groepering van 8 Pages (pagina's), wat neerkomt op ongeveer 64 KB.
Wat is het verschil tussen een Mixed Extent en een Uniform Extent?
Een Mixed Extent wordt gedeeld door maximaal 8 database-objecten (bv. tabellen, indexes). Een Uniform Extent is toegewijd aan één enkel object.
Hoe wordt opslag initieel toegewezen aan nieuwe tabellen in SQL Server?
Nieuwe tabellen of indexes starten in een Mixed Extent. Zodra het object 8 pagina's overschrijdt, verhuist het naar een Uniform Extent.
Wat is een Clustered Index?
De index die de fysieke volgorde van de rijen in de tabel bepaalt. De data-rijen zelf worden opgeslagen op het leaf level (bladniveau) van de index.
Hoeveel Clustered Indexes kan een tabel hebben?
Slechts één, omdat de data-rijen zelf maar op één manier fysiek opgeslagen kunnen worden.
Wat is een Non-Clustered Index?
Een aparte datastructuur (los van de data-rijen) die pointers bevat naar de daadwerkelijke data-rijen.
Hoeveel Non-Clustered Indexes kan een tabel hebben?
Meerdere (Many).
Wat bevatten de leaf nodes (bladniveaus) van een Non-Clustered Index?
De geïndexeerde kolom(men) plus een pointer (een Row Identifier (RID) of de Clustered Key) naar de locatie van de volledige rij.
Wat is een Heap (in database-context)?
Een tabel zonder Clustered Index. De rijen worden opgeslagen in een ongeordende verzameling dat pagina's.
Wat is een Table Scan?
Een operatie waarbij de query elke pagina van de tabel (meestal een heap) moet lezen om de data te vinden. Dit is erg inefficiënt voor grote tabellen.
Wat is een Index Seek?
Een zeer snelle operatie waarbij de B-tree structuur van de index direct wordt doorlopen om de specifieke, overeenkomende rijen te vinden.
Wat is een Index Scan?
Een operatie waarbij de index sequentieel (van begin tot eind) wordt gelezen totdat de benodigde rijen zijn gevonden. Dit is langzamer dan een Index Seek.
Wat is een Filtered Index?
Een Non-Clustered Index die alleen rijen opslaat die voldoen aan een specifieke, vooraf gedefinieerde WHERE-clausule (predicaat). Dit verkleint de index en reduceert onderhoud.
Wat is een Covering Index?
Een Non-Clustered Index die alle kolommen bevat die een specifieke query nodig heeft. Hierdoor hoeft de database de data niet uit de basistabel te halen (geen Key Lookup).
Wat doen INCLUDE columns in een index?
Ze voegen niet-key kolommen toe aan het leaf level (bladniveau) van een Non-Clustered Index. Dit helpt een index 'covering' te maken zonder de index-sleutel zelf te verzwaren.
Wat is een Key Lookup (of Bookmark Lookup)?
Een extra stap die de database uitvoert wanneer een Non-Clustered Index niet alle gevraagde kolommen bevat. De engine gebruikt de pointer in de index om de ontbrekende data op te halen uit de Clustered Index (of heap).
Wanneer is een multi-column (composite) index nuttig?
Wanneer queries filteren op de leidende (eerste) kolom(men) van de index. Als de query alleen op een latere kolom filtert, wordt de index niet gebruikt.
Noem 3 goede kandidaten voor indexering.
WHERE, GROUP BY, of ORDER BY clausules.Noem 3 slechte kandidaten voor indexering.
Wat is een belangrijke 'best practice' om te zorgen dat een index wordt gebruikt?
Vermijd functies op geïndexeerde kolommen in je WHERE-clausule. (Slecht: WHERE YEAR(Datum) = 2024. Goed: WHERE Datum >= '2024-01-01' AND Datum < '2025-01-01').
Waarom moet je een 'leading wildcard' (bv. LIKE '%tekst') vermijden?
Een 'leading wildcard' (een wildcard aan het begin van de zoekterm) voorkomt dat de database de index efficiënt kan gebruiken voor een seek.
Wat is de SQL Optimizer?
Een module in de database die SQL-statements analyseert en de meest efficiënte executie-strategie bepaalt (bv. welke index te gebruiken, join-volgorde).
Waarop baseert de SQL Optimizer zijn beslissingen?
Het gebruikt statistieken over de tabelgrootte, data-distributie (hoe uniek de waarden zijn) en gebruikspatronen.