create database statistieken go use statistieken go create table klanten (id int primary key identity(1,1), naam varchar(50), adres varchar(50), gemeente varchar(50)) declare @teller int set @teller = 0 while @teller < 10000 begin insert into klanten (naam, adres, gemeente) values ('naam'+convert(varchar(6),@teller), 'adres'+convert(varchar(6),@teller), 'gemeente') set @teller = @teller + 1 end -- Query-Include actual execution plan -- de volgende query maakt gebruik van een clustered index scan select * from klanten where naam='naam100' and adres ='adres100' create index IX_adres on klanten(adres) -- de volgende query maakt gebruik van de index IX_klanten_adres -- om de records terug te vinden en de primary key om de adres en gemeente informatie -- terug te vinden select * from klanten where naam='naam100' and adres ='adres100' drop index klanten.IX_adres create index IX_adres on klanten (adres) include (naam) -- de include index zal gebruikt worden wanneer we alleen naam en adres opvragen: select naam, adres from klanten where naam='naam100' and adres='adres100' drop index klanten.IX_adres create index IX_adres on klanten(adres) create index IX_naam on klanten(naam) -- welke index wordt gebruikt in de volgende query? select naam, adres,gemeente from klanten where naam='naam100' and adres='adres100' -- zet execution plan af!! drop table klanten create table klanten (id int primary key identity(1,1), naam varchar(50), adres varchar(50),gemeente varchar(50)) create index IX_adres on klanten(adres) create index IX_naam on klanten(naam) declare @teller int set @teller = 0 while @teller < 10000 begin insert into klanten (naam, adres, gemeente) values ('naam'+convert(varchar(6),@teller), 'adres'+convert(varchar(6),@teller % 10),'gemeente') set @teller = @teller + 1 end -- zet execution plan terug aan select naam, adres, gemeente from klanten where naam='naam100' and adres='adres0' -- zet execution plan af!! declare @teller int set @teller = 0 while @teller < 10000 begin insert into klanten (naam, adres,gemeente) values ('naam'+convert(varchar(6),@teller % 1000), 'adres'+convert(varchar(6),@teller),'gemeente') set @teller = @teller + 1 end -- zet execution plan aan (maakt gebruik van statistieken) select * from klanten where naam='naam0' and adres='adres0' select * from klanten where naam='naam135' and adres='adres135'