Contents

1
2 襷り鍵
3
4 蟆磯


1 #

企. test企 3覦焔蟇伎 . 襭 5豌蟇伎 一危郁 碁. 蠏碁覩襦 襭豺 一危磯ゼ 蠏狩る 5豌蟇伎 曙伎 . れ 襭豺 一危磯 ′語り 襷れ 觜覯蟆 殊企. 碁煙る れ螻 螳.

  • seq -> clustered index
  • dt -> non-clustered index

磯Μ 螳覦 れ螻 螳 豌襴. ろ語 2豐 企企 覈 蟆郁骸襯 訖れ . 讌襷 れ 觜 蟆曙 觜覯蟆 ′語ろる慨 覯 襷 覿襯 譯手 . CPU 80%蟾讌 手.

--2~3 ろ. ? 覃覈襴 一危郁 殊 る 螳 蠍 ..
set statistics io on
set nocount on
declare @dt char(8)
set @dt = '20080115'

select *
from test 
where dt = @dt
--企 'test'. 蟆  1, 朱Μ 所鍵  15589, 覓朱Μ 所鍵  32, 覩碁Μ 所鍵  4

蟆郁骸襯 覈 訖襴 1豐 企. ろ 螻 覲企 non-clustered index seek襯 蟆 . 讌襷 I/O螳 襷れ 襷. 讌襷 碁煙る るジ 覲蟆曙 企. 企至 願屋蟾? (螻覩狩 覲願 襭 覿覿 谿瑚.)

2 襷り鍵 #

if object_id('test') is not null
	drop table test;
go

with temp1(num)
as
(
        select 1 num
        union all
        select num + 1 from temp1
        where num + 1 <= 5000
),
temp2(num)
as
(
        select 1 num
        union all
        select num + 1 from temp2
        where num + 1 <= 600
)
select 
	identity(int,1,1) seq
,	convert(char(8), getdate() + b.num, 112) dt
,	left(newid(), 12) dumy1-- 一危磯ゼ 豈j鍵 
,	newid() dumy2-- 一危磯ゼ 豈j鍵 
into test
from temp1 a, temp2 b
option (maxrecursion 0);

create clustered index cix_seq
on test(seq);
--企 'test'. 蟆  1, 朱Μ 所鍵  19738, 覓朱Μ 所鍵  0, 覩碁Μ 所鍵  906

create index nix_dt
on test(dt);
--企 'test'. 蟆  1, 朱Μ 所鍵  20443, 覓朱Μ 所鍵  0, 覩碁Μ 所鍵  3953

3 #

--狩企ろ磯 碁煙る 蟲譟一 れ′語り 覦螻, 覯蟆 襴讌 
--企ろ磯 碁煙るゼ 襦 . 

--2~3 ろ. ? 覃覈襴 一危郁 殊 る 螳 蠍 ..
set statistics io on
set nocount on
declare 
	@dt char(8)
,	@min_seq int
,	@max_seq int
set @dt = '20080115'

select 
	@min_seq = min(seq)
,	@max_seq = max(seq)
from test 
where dt = @dt

select * from test
where seq between @min_seq and @max_seq
--企 'test'. 蟆  2, 朱Μ 所鍵  6, 覓朱Μ 所鍵  0, 覩碁Μ 所鍵  0
--企 'test'. 蟆  1, 朱Μ 所鍵  38, 覓朱Μ 所鍵  0, 覩碁Μ 所鍵  0
--select 15589/(6+38) --354

4 蟆磯 #

I/O襷 覓企 354覦磯 レ. I/O襷 覲伎 螳 蠏碁. 襷れ 觜覯蟆 ′語り 殊企 蟆曙企朱 焔ロレ 螻朱 襷 蟆企. 覓語 min(), max()螳 mssql server 企至 螻 螻, clustered index non-clustered index 蟲譟一 襴 伎 螻 伎朱 願屋 . (螳 穴姥讌 豺り 譽 ′ 蠍磯 .)

mssql server min(), max() 貉殊 碁煙り る /る 暑. 襷 dt 貉殊 碁煙り desc襦 焔 る min() 碁煙れ 襷 1蟇伎 所 所鍵襯 覃豢.(ろ螻 覲企 top 覲 .) 襷谿螳讌 襴襦 max() 碁煙れ 襷 豌 1蟇伎 所 所鍵襯 覃豢. 蠏碁覩襦 譯 觜朱 覲 ロ 讌(蠍一 '20080115') seq 覯襯 . seq clustered index螳 ″ 朱襦 譯 觜朱 豌襴 蟆 .

覓語 碁煙 り襯 讌 蟆 蠏朱蓋 語企. 襷 覓企 螳 unique朱 蠍磯蓋れ 蠍磯蓋煙 襷譟煙り鍵 伎 朱覯(identity(1,1))襯 燕螻, 覓 螳 clustered index襯 燕 蟆企. '碁煙 り襯 覲蟆渚讌 覈詩 蟆'企朱 譟郁唄 , 譟郁 願碓讌 螳讌襷 れ襦 觜る 蟆曙企朱 DBMS 譬襯 覯 磯殊 觜るゼ 企Μ讌 碁煙 り 覲蟆曙 蟆曙 蠍磯 . 覓語 り覓語!!