-- Ako vplýva na cas poradie Insert+CrIndex vs. CrIndex+Insert: -- How the order of Insert+CrIndex vs. CrIndex+Insert effects time -- -- Vytvorime randT, @beg, ***(ind & INSERT 50000 riadkov), @end, @end-@beg = DATEDIFF(MILLISECOND, @beg, @end) -- ***: -- 1) NO-index - (insert) => @end - @beg = 1000 -- 2a) index - insert => @end - @beg = 1400 -- 2b) ind+cl.ind - insert => @end - @beg = 1400 -- 2c) cl.index - insert => @end - @beg = 1000 -- 3a) insert - index => @end - @beg = 1080 -- 3b) insert - ind+cl.ind => @end - @beg = 1080 -- 3c) insert - cl.ind => @end - @beg = 1050 -- 2a) -- USE tempdb; SET NOCOUNT ON; GO IF OBJECT_ID (N'randTind') IS NOT NULL DROP TABLE randTind; GO CREATE TABLE randTind ( id INT, rand_x float, rand_date DATETIME ); GO -- ***: 2a-b-c) --CREATE INDEX ind_rand_x ON randTind(rand_x) --CREATE CLUSTERED INDEX ind_rand_date ON randTind(rand_date) DECLARE @beg datetime, @end datetime, @dtm datetime; DECLARE @i INT; SET @i = 0; set @beg = GETDATE(); WHILE @i < 50000 BEGIN SET @i = @i + 1; INSERT INTO randTind VALUES ( @i, RAND(), CONVERT(DATETIME, 365*101+25 + 2001*RAND()) ) END -- ***: 3a-b-c) --CREATE INDEX ind_rand_x ON randTind(rand_x) --CREATE CLUSTERED INDEX ind_rand_date ON randTind(rand_date) set @end = GETDATE(); print DATEDIFF(MILLISECOND, @beg, @end)