1
2
3
4
create table test24(
	id int identity,
	d datetime not null
)

Do tabulky jsem vložil 20 milionů řádků s různými datumy. Pro mazání jsem použil příkaz:

1
2
3
4
begin transaction
	delete top(500000) from test24
		where d > '2010-07-10 08:25:20.173'
rollback

Tato akce trvala:

  • 6 sekund – bez indexů
  • 12 sekund s create clustered index CI_d on test24(id)
  • 32 sekund s create nonclustered index NIX_d on test24(d)
  • 37 sekund pokud tabulka obsahuje oba indexy výše
  • 33 sekund po rebuildu nonclustered indexu

Při mazání se používal index scan. Index seek se použil při mazání max. 5 tis. záznamů, nicméně aktualizace indexu při tolika záznamech vyžaduje velkou časovou náročnost.

Share