Contents

1 IP豌襴 蠍磯蓋
2 覦覯
3 IP4, IP6覓語 一危壱 蟆一


1 IP豌襴 蠍磯蓋 #

一 IP 轟 覓語 一危磯. 螳螳 襴 蟲覲 螻, 覓語伎伎襷 覯 譟壱 觜蟲蠍磯 襷れ 蟾る´. 蠏碁覩襦 襷 襦蠏碁 IP(覓語) <-> IP(4byte unsigned int) 譟壱襯 螳讌螻 蟆曙郁 襷 . 讌襷 mssql server (varchar(40) 覲伎 mssql 企手 螳蟆) unsigned int螳 朱襦 bigint . 伎 一危磯 れ螻 螳 朱 れ 螳 .
覓語IP     IP 
------------- ------- 
'58.16.0.0' 4154 
... 
... 
... 
襦螳 覲 [http]IP蟯 (http://www.databaser.net/moniwiki/wiki.php/IP%EA%B4%80%EB%A0%A8%ED%95%A8%EC%88%98) 谿瑚蠍 覦.


2 覦覯 #

覦覯 2螳讌.

  • 覦覯1: IP, 譬襭IP
  • 覦覯2: IP

覦覯2襦 覃 レ IP, 譬襭IP 伎 IP襯 覈 企 ロ 覦覯企. 願 蟆 螻覩狩 ル襷 螻ろ覃 蟆.
覦覯1 覃 IP企 蠍郁 朱 譴企. 讌襷 覦覯1襯 螳る 覈螳讌 譴蟆 螳 譯殊伎 蟆 . れ 蠏 螻れ企.

  1. 覯蟆 企至 蟆瑚? (一危壱 蟆一)
  2. 碁煙る 企至 り伎 觜襯瑚? (IP + 譬襭IP?? 譬襭IP + IP??)
  3. 覯一一 譟郁唄 磯ジ I/O 谿 覓語?

れ 襯 覲企...
 create table test(
 b int, e int
); 
  
declare @i int;
set @i = 0; 
while(@i < 100000)
begin
 insert test values(@i, @i + 10);
 set @i = @i + 11;
end; 
  
create index a on test(b, e);
create index d on test(e, b); 
  
set nocount on 
select * from test where 10000 between b and e;
select * from test where 20000 between b and e;
select * from test where 30000 between b and e;
select * from test where 40000 between b and e;
select * from test where 50000 between b and e;
select * from test where 60000 between b and e;
select * from test where 70000 between b and e;
select * from test where 80000 between b and e;
select * from test where 90000 between b and e; 

/*
企 'test'. 蟆  1, 朱Μ 所鍵  5, 覓朱Μ 所鍵  0, 覩碁Μ 所鍵  0, LOB 朱Μ 所鍵  0, LOB 覓朱Μ 所鍵  0, LOB 覩碁Μ 所鍵  0.
企 'test'. 蟆  1, 朱Μ 所鍵  7, 覓朱Μ 所鍵  0, 覩碁Μ 所鍵  0, LOB 朱Μ 所鍵  0, LOB 覓朱Μ 所鍵  0, LOB 覩碁Μ 所鍵  0.
企 'test'. 蟆  1, 朱Μ 所鍵  10, 覓朱Μ 所鍵  0, 覩碁Μ 所鍵  0, LOB 朱Μ 所鍵  0, LOB 覓朱Μ 所鍵  0, LOB 覩碁Μ 所鍵  0.
企 'test'. 蟆  1, 朱Μ 所鍵  12, 覓朱Μ 所鍵  0, 覩碁Μ 所鍵  0, LOB 朱Μ 所鍵  0, LOB 覓朱Μ 所鍵  0, LOB 覩碁Μ 所鍵  0.
企 'test'. 蟆  1, 朱Μ 所鍵  15, 覓朱Μ 所鍵  0, 覩碁Μ 所鍵  0, LOB 朱Μ 所鍵  0, LOB 覓朱Μ 所鍵  0, LOB 覩碁Μ 所鍵  0.
企 'test'. 蟆  1, 朱Μ 所鍵  13, 覓朱Μ 所鍵  0, 覩碁Μ 所鍵  0, LOB 朱Μ 所鍵  0, LOB 覓朱Μ 所鍵  0, LOB 覩碁Μ 所鍵  0.
企 'test'. 蟆  1, 朱Μ 所鍵  10, 覓朱Μ 所鍵  0, 覩碁Μ 所鍵  0, LOB 朱Μ 所鍵  0, LOB 覓朱Μ 所鍵  0, LOB 覩碁Μ 所鍵  0.
企 'test'. 蟆  1, 朱Μ 所鍵  8, 覓朱Μ 所鍵  0, 覩碁Μ 所鍵  0, LOB 朱Μ 所鍵  0, LOB 覓朱Μ 所鍵  0, LOB 覩碁Μ 所鍵  0.
企 'test'. 蟆  1, 朱Μ 所鍵  5, 覓朱Μ 所鍵  0, 覩碁Μ 所鍵  0, LOB 朱Μ 所鍵  0, LOB 覓朱Μ 所鍵  0, LOB 覩碁Μ 所鍵  0.
*/

1襷譴 譴螳 5襷 螳蟾 讌襦 I/O 讀螳 蟆 覲 . 碁煙るゼ 企 蟆 磯讌 誤 覲伎語. a碁煙るゼ 磯り d碁煙るゼ 磯 蟆 覲 . れ 企蟾?

select top 1 * from test where 10000 between b and e;
select top 1 * from test where 20000 between b and e;
select top 1 * from test where 30000 between b and e;
select top 1 * from test where 40000 between b and e;
select top 1 * from test where 50000 between b and e;
select top 1 * from test where 60000 between b and e;
select top 1 * from test where 70000 between b and e;
select top 1 * from test where 80000 between b and e;
select top 1 * from test where 90000 between b and e;

/*
企 'test'. 蟆  1, 朱Μ 所鍵  5, 覓朱Μ 所鍵  0, 覩碁Μ 所鍵  0, LOB 朱Μ 所鍵  0, LOB 覓朱Μ 所鍵  0, LOB 覩碁Μ 所鍵  0.
企 'test'. 蟆  1, 朱Μ 所鍵  7, 覓朱Μ 所鍵  0, 覩碁Μ 所鍵  0, LOB 朱Μ 所鍵  0, LOB 覓朱Μ 所鍵  0, LOB 覩碁Μ 所鍵  0.
企 'test'. 蟆  1, 朱Μ 所鍵  10, 覓朱Μ 所鍵  0, 覩碁Μ 所鍵  0, LOB 朱Μ 所鍵  0, LOB 覓朱Μ 所鍵  0, LOB 覩碁Μ 所鍵  0.
企 'test'. 蟆  1, 朱Μ 所鍵  12, 覓朱Μ 所鍵  0, 覩碁Μ 所鍵  0, LOB 朱Μ 所鍵  0, LOB 覓朱Μ 所鍵  0, LOB 覩碁Μ 所鍵  0.
企 'test'. 蟆  1, 朱Μ 所鍵  15, 覓朱Μ 所鍵  0, 覩碁Μ 所鍵  0, LOB 朱Μ 所鍵  0, LOB 覓朱Μ 所鍵  0, LOB 覩碁Μ 所鍵  0.
企 'test'. 蟆  1, 朱Μ 所鍵  2, 覓朱Μ 所鍵  0, 覩碁Μ 所鍵  0, LOB 朱Μ 所鍵  0, LOB 覓朱Μ 所鍵  0, LOB 覩碁Μ 所鍵  0.
企 'test'. 蟆  1, 朱Μ 所鍵  2, 覓朱Μ 所鍵  0, 覩碁Μ 所鍵  0, LOB 朱Μ 所鍵  0, LOB 覓朱Μ 所鍵  0, LOB 覩碁Μ 所鍵  0.
企 'test'. 蟆  1, 朱Μ 所鍵  2, 覓朱Μ 所鍵  0, 覩碁Μ 所鍵  0, LOB 朱Μ 所鍵  0, LOB 覓朱Μ 所鍵  0, LOB 覩碁Μ 所鍵  0.
企 'test'. 蟆  1, 朱Μ 所鍵  2, 覓朱Μ 所鍵  0, 覩碁Μ 所鍵  0, LOB 朱Μ 所鍵  0, LOB 覓朱Μ 所鍵  0, LOB 覩碁Μ 所鍵  0.
*/

轟危 覦蟆. 朱 覲企る I/O螳 譴. 讌襷 螳 a碁煙るゼ 磯り d碁煙るゼ 磯 蟆 覲 . 轟 碁煙り 襷 譟郁 蟆手?

DBCC SHOWCONTIG ('dbo.test') 
  
DBCC SHOWCONTIG(螳) 'test' 企 蟆 譴...
企: 'test'(325576198); 碁煙 ID: 0, 一危磯伎 ID: 12
TABLE 譴 蟆 給.
- 蟆 伎................................: 21
- 蟆 旧ろ ..............................: 4
- 旧ろ れ豺..............................: 3
- 旧ろ碁 蠏 伎 ........................: 5.3
- 蟆 覦[豕:れ].......: 75.00% [3:4]
- 旧ろ 蟆 譟郁  ...................: 25.00%
- 伎  螳ロ 蠏 覦危 .....................: 736.6
- 蠏 伎 覦(豌).....................: 90.90%
DBCC ろ 襭給. DBCC る 覃讌襯 豢ロ覃 ろ 蟯襴蟆 覓語. 

碁煙 譟郁 覓語 蟆朱 覲伎碁. 蠏碁 れ螻 螳朱 企蟾?
select top 1 * from test with(index(d)) where 10000 between b and e;
select top 1 * from test with(index(d)) where 20000 between b and e;
select top 1 * from test with(index(d)) where 30000 between b and e;
select top 1 * from test with(index(d)) where 40000 between b and e;
select top 1 * from test with(index(d)) where 50000 between b and e;
select top 1 * from test with(index(d)) where 60000 between b and e;
select top 1 * from test with(index(d)) where 70000 between b and e;
select top 1 * from test with(index(d)) where 80000 between b and e;
select top 1 * from test with(index(d)) where 90000 between b and e;

/*
企 'test'. 蟆  1, 朱Μ 所鍵  2, 覓朱Μ 所鍵  0, 覩碁Μ 所鍵  0, LOB 朱Μ 所鍵  0, LOB 覓朱Μ 所鍵  0, LOB 覩碁Μ 所鍵  0.
企 'test'. 蟆  1, 朱Μ 所鍵  2, 覓朱Μ 所鍵  0, 覩碁Μ 所鍵  0, LOB 朱Μ 所鍵  0, LOB 覓朱Μ 所鍵  0, LOB 覩碁Μ 所鍵  0.
企 'test'. 蟆  1, 朱Μ 所鍵  2, 覓朱Μ 所鍵  0, 覩碁Μ 所鍵  0, LOB 朱Μ 所鍵  0, LOB 覓朱Μ 所鍵  0, LOB 覩碁Μ 所鍵  0.
企 'test'. 蟆  1, 朱Μ 所鍵  2, 覓朱Μ 所鍵  0, 覩碁Μ 所鍵  0, LOB 朱Μ 所鍵  0, LOB 覓朱Μ 所鍵  0, LOB 覩碁Μ 所鍵  0.
企 'test'. 蟆  1, 朱Μ 所鍵  2, 覓朱Μ 所鍵  0, 覩碁Μ 所鍵  0, LOB 朱Μ 所鍵  0, LOB 覓朱Μ 所鍵  0, LOB 覩碁Μ 所鍵  0.
企 'test'. 蟆  1, 朱Μ 所鍵  2, 覓朱Μ 所鍵  0, 覩碁Μ 所鍵  0, LOB 朱Μ 所鍵  0, LOB 覓朱Μ 所鍵  0, LOB 覩碁Μ 所鍵  0.
企 'test'. 蟆  1, 朱Μ 所鍵  2, 覓朱Μ 所鍵  0, 覩碁Μ 所鍵  0, LOB 朱Μ 所鍵  0, LOB 覓朱Μ 所鍵  0, LOB 覩碁Μ 所鍵  0.
企 'test'. 蟆  1, 朱Μ 所鍵  2, 覓朱Μ 所鍵  0, 覩碁Μ 所鍵  0, LOB 朱Μ 所鍵  0, LOB 覓朱Μ 所鍵  0, LOB 覩碁Μ 所鍵  0.
企 'test'. 蟆  1, 朱Μ 所鍵  2, 覓朱Μ 所鍵  0, 覩碁Μ 所鍵  0, LOB 朱Μ 所鍵  0, LOB 覓朱Μ 所鍵  0, LOB 覩碁Μ 所鍵  0.
*/

一!!  蟲螳 襦 豕 I/O襯 讌螻  覈旧企. IP + 譬襭IP 企ろ磯 碁煙る朱 企蟾? 
{{{
create clustered index c on test(b, e); 
select top 1 * from test with(index(c)) where 10000 between b and e;
select top 1 * from test with(index(c)) where 20000 between b and e;
select top 1 * from test with(index(c)) where 30000 between b and e;
select top 1 * from test with(index(c)) where 40000 between b and e;
select top 1 * from test with(index(c)) where 50000 between b and e;
select top 1 * from test with(index(c)) where 60000 between b and e;
select top 1 * from test with(index(c)) where 70000 between b and e;
select top 1 * from test with(index(c)) where 80000 between b and e;
select top 1 * from test with(index(c)) where 90000 between b and e; 
  
/*
企 'test'. 蟆  1, 朱Μ 所鍵  3, 覓朱Μ 所鍵  0, 覩碁Μ 所鍵  0, LOB 朱Μ 所鍵  0, LOB 覓朱Μ 所鍵  0, LOB 覩碁Μ 所鍵  0.
企 'test'. 蟆  1, 朱Μ 所鍵  6, 覓朱Μ 所鍵  0, 覩碁Μ 所鍵  0, LOB 朱Μ 所鍵  0, LOB 覓朱Μ 所鍵  0, LOB 覩碁Μ 所鍵  0.
企 'test'. 蟆  1, 朱Μ 所鍵  8, 覓朱Μ 所鍵  0, 覩碁Μ 所鍵  0, LOB 朱Μ 所鍵  0, LOB 覓朱Μ 所鍵  0, LOB 覩碁Μ 所鍵  0.
企 'test'. 蟆  1, 朱Μ 所鍵  10, 覓朱Μ 所鍵  0, 覩碁Μ 所鍵  0, LOB 朱Μ 所鍵  0, LOB 覓朱Μ 所鍵  0, LOB 覩碁Μ 所鍵  0.
企 'test'. 蟆  1, 朱Μ 所鍵  12, 覓朱Μ 所鍵  0, 覩碁Μ 所鍵  0, LOB 朱Μ 所鍵  0, LOB 覓朱Μ 所鍵  0, LOB 覩碁Μ 所鍵  0.
企 'test'. 蟆  1, 朱Μ 所鍵  14, 覓朱Μ 所鍵  0, 覩碁Μ 所鍵  0, LOB 朱Μ 所鍵  0, LOB 覓朱Μ 所鍵  0, LOB 覩碁Μ 所鍵  0.
企 'test'. 蟆  1, 朱Μ 所鍵  16, 覓朱Μ 所鍵  0, 覩碁Μ 所鍵  0, LOB 朱Μ 所鍵  0, LOB 覓朱Μ 所鍵  0, LOB 覩碁Μ 所鍵  0.
企 'test'. 蟆  1, 朱Μ 所鍵  18, 覓朱Μ 所鍵  0, 覩碁Μ 所鍵  0, LOB 朱Μ 所鍵  0, LOB 覓朱Μ 所鍵  0, LOB 覩碁Μ 所鍵  0.
企 'test'. 蟆  1, 朱Μ 所鍵  20, 覓朱Μ 所鍵  0, 覩碁Μ 所鍵  0, LOB 朱Μ 所鍵  0, LOB 覓朱Μ 所鍵  0, LOB 覩碁Μ 所鍵  0.
*/
譟郁 譟蠍磯 讌襷 豕 . 手? 伎 れ螻 螳.

select * from test with(index(a)) where 90000 between b and e;
--b <= 90000 : 9襷蟇 --> 9襷蟇伎 e <= 90000 譟郁唄 蟆 
select * from test with(index(d)) where 90000 between b and e;
--e >= 90000 : 1襷蟇 --> 1襷蟇伎 b >= 90000 譟郁唄 蟆 

select top 1 * from test with(index(a)) where 90000 between b and e;
select top 1 * from test with(index(d)) where 90000 between b and e;
--  貎朱Μ襯 覲  SQL Server 碁煙 譟郁唄(碁煙れ  貉る) 
--    襦 谿城 蟆   .
-- 蠏碁覩襦 譬襭 +  襦  碁煙る 
-- 覦襦  螳 谿場  朱襦 TOP 1   蟆曙 れ 覦襦 覃豢覩襦 I/O 谿願 . 

碁煙り 襷 る?
drop index test.c
create clustered index c on test(b);

select top 1 * from test with(index(c)) where 10000 between b and e;
select top 1 * from test with(index(c)) where 20000 between b and e;
select top 1 * from test with(index(c)) where 30000 between b and e;
select top 1 * from test with(index(c)) where 40000 between b and e;
select top 1 * from test with(index(c)) where 50000 between b and e;
select top 1 * from test with(index(c)) where 60000 between b and e;
select top 1 * from test with(index(c)) where 70000 between b and e;
select top 1 * from test with(index(c)) where 80000 between b and e;
select top 1 * from test with(index(c)) where 90000 between b and e; 

/*
企 'test'. 蟆  1, 朱Μ 所鍵  5, 覓朱Μ 所鍵  0, 覩碁Μ 所鍵  2, LOB 朱Μ 所鍵  0, LOB 覓朱Μ 所鍵  0, LOB 覩碁Μ 所鍵  0.
企 'test'. 蟆  1, 朱Μ 所鍵  7, 覓朱Μ 所鍵  0, 覩碁Μ 所鍵  0, LOB 朱Μ 所鍵  0, LOB 覓朱Μ 所鍵  0, LOB 覩碁Μ 所鍵  0.
企 'test'. 蟆  1, 朱Μ 所鍵  9, 覓朱Μ 所鍵  0, 覩碁Μ 所鍵  0, LOB 朱Μ 所鍵  0, LOB 覓朱Μ 所鍵  0, LOB 覩碁Μ 所鍵  0.
企 'test'. 蟆  1, 朱Μ 所鍵  11, 覓朱Μ 所鍵  0, 覩碁Μ 所鍵  0, LOB 朱Μ 所鍵  0, LOB 覓朱Μ 所鍵  0, LOB 覩碁Μ 所鍵  0.
企 'test'. 蟆  1, 朱Μ 所鍵  13, 覓朱Μ 所鍵  0, 覩碁Μ 所鍵  0, LOB 朱Μ 所鍵  0, LOB 覓朱Μ 所鍵  0, LOB 覩碁Μ 所鍵  0.
企 'test'. 蟆  1, 朱Μ 所鍵  15, 覓朱Μ 所鍵  0, 覩碁Μ 所鍵  0, LOB 朱Μ 所鍵  0, LOB 覓朱Μ 所鍵  0, LOB 覩碁Μ 所鍵  0.
企 'test'. 蟆  1, 朱Μ 所鍵  17, 覓朱Μ 所鍵  0, 覩碁Μ 所鍵  0, LOB 朱Μ 所鍵  0, LOB 覓朱Μ 所鍵  0, LOB 覩碁Μ 所鍵  0.
企 'test'. 蟆  1, 朱Μ 所鍵  19, 覓朱Μ 所鍵  0, 覩碁Μ 所鍵  0, LOB 朱Μ 所鍵  0, LOB 覓朱Μ 所鍵  0, LOB 覩碁Μ 所鍵  0.
企 'test'. 蟆  1, 朱Μ 所鍵  22, 覓朱Μ 所鍵  0, 覩碁Μ 所鍵  0, LOB 朱Μ 所鍵  0, LOB 覓朱Μ 所鍵  0, LOB 覩碁Μ 所鍵  0.
*/


drop index test.c
create clustered index c on test(e);

select top 1 * from test with(index(c)) where 10000 between b and e;
select top 1 * from test with(index(c)) where 20000 between b and e;
select top 1 * from test with(index(c)) where 30000 between b and e;
select top 1 * from test with(index(c)) where 40000 between b and e;
select top 1 * from test with(index(c)) where 50000 between b and e;
select top 1 * from test with(index(c)) where 60000 between b and e;
select top 1 * from test with(index(c)) where 70000 between b and e;
select top 1 * from test with(index(c)) where 80000 between b and e;
select top 1 * from test with(index(c)) where 90000 between b and e; 

/*
企 'test'. 蟆  1, 朱Μ 所鍵  2, 覓朱Μ 所鍵  0, 覩碁Μ 所鍵  0, LOB 朱Μ 所鍵  0, LOB 覓朱Μ 所鍵  0, LOB 覩碁Μ 所鍵  0.
企 'test'. 蟆  1, 朱Μ 所鍵  2, 覓朱Μ 所鍵  0, 覩碁Μ 所鍵  0, LOB 朱Μ 所鍵  0, LOB 覓朱Μ 所鍵  0, LOB 覩碁Μ 所鍵  0.
企 'test'. 蟆  1, 朱Μ 所鍵  2, 覓朱Μ 所鍵  0, 覩碁Μ 所鍵  0, LOB 朱Μ 所鍵  0, LOB 覓朱Μ 所鍵  0, LOB 覩碁Μ 所鍵  0.
企 'test'. 蟆  1, 朱Μ 所鍵  2, 覓朱Μ 所鍵  0, 覩碁Μ 所鍵  0, LOB 朱Μ 所鍵  0, LOB 覓朱Μ 所鍵  0, LOB 覩碁Μ 所鍵  0.
企 'test'. 蟆  1, 朱Μ 所鍵  2, 覓朱Μ 所鍵  0, 覩碁Μ 所鍵  0, LOB 朱Μ 所鍵  0, LOB 覓朱Μ 所鍵  0, LOB 覩碁Μ 所鍵  0.
企 'test'. 蟆  1, 朱Μ 所鍵  2, 覓朱Μ 所鍵  0, 覩碁Μ 所鍵  0, LOB 朱Μ 所鍵  0, LOB 覓朱Μ 所鍵  0, LOB 覩碁Μ 所鍵  0.
企 'test'. 蟆  1, 朱Μ 所鍵  2, 覓朱Μ 所鍵  0, 覩碁Μ 所鍵  0, LOB 朱Μ 所鍵  0, LOB 覓朱Μ 所鍵  0, LOB 覩碁Μ 所鍵  0.
企 'test'. 蟆  1, 朱Μ 所鍵  2, 覓朱Μ 所鍵  0, 覩碁Μ 所鍵  0, LOB 朱Μ 所鍵  0, LOB 覓朱Μ 所鍵  0, LOB 覩碁Μ 所鍵  0.
企 'test'. 蟆  1, 朱Μ 所鍵  2, 覓朱Μ 所鍵  0, 覩碁Μ 所鍵  0, LOB 朱Μ 所鍵  0, LOB 覓朱Μ 所鍵  0, LOB 覩碁Μ 所鍵  0.
*/



drop index test.c
create clustered index c on test(b);

select * from test with(index(c)) where 10000 between b and e;
select * from test with(index(c)) where 20000 between b and e;
select * from test with(index(c)) where 30000 between b and e;
select * from test with(index(c)) where 40000 between b and e;
select * from test with(index(c)) where 50000 between b and e;
select * from test with(index(c)) where 60000 between b and e;
select * from test with(index(c)) where 70000 between b and e;
select * from test with(index(c)) where 80000 between b and e;
select * from test with(index(c)) where 90000 between b and e; 

/*
企 'test'. 蟆  1, 朱Μ 所鍵  5, 覓朱Μ 所鍵  0, 覩碁Μ 所鍵  0, LOB 朱Μ 所鍵  0, LOB 覓朱Μ 所鍵  0, LOB 覩碁Μ 所鍵  0.
企 'test'. 蟆  1, 朱Μ 所鍵  7, 覓朱Μ 所鍵  0, 覩碁Μ 所鍵  0, LOB 朱Μ 所鍵  0, LOB 覓朱Μ 所鍵  0, LOB 覩碁Μ 所鍵  0.
企 'test'. 蟆  1, 朱Μ 所鍵  9, 覓朱Μ 所鍵  0, 覩碁Μ 所鍵  0, LOB 朱Μ 所鍵  0, LOB 覓朱Μ 所鍵  0, LOB 覩碁Μ 所鍵  0.
企 'test'. 蟆  1, 朱Μ 所鍵  11, 覓朱Μ 所鍵  0, 覩碁Μ 所鍵  0, LOB 朱Μ 所鍵  0, LOB 覓朱Μ 所鍵  0, LOB 覩碁Μ 所鍵  0.
企 'test'. 蟆  1, 朱Μ 所鍵  13, 覓朱Μ 所鍵  0, 覩碁Μ 所鍵  0, LOB 朱Μ 所鍵  0, LOB 覓朱Μ 所鍵  0, LOB 覩碁Μ 所鍵  0.
企 'test'. 蟆  1, 朱Μ 所鍵  15, 覓朱Μ 所鍵  0, 覩碁Μ 所鍵  0, LOB 朱Μ 所鍵  0, LOB 覓朱Μ 所鍵  0, LOB 覩碁Μ 所鍵  0.
企 'test'. 蟆  1, 朱Μ 所鍵  17, 覓朱Μ 所鍵  0, 覩碁Μ 所鍵  0, LOB 朱Μ 所鍵  0, LOB 覓朱Μ 所鍵  0, LOB 覩碁Μ 所鍵  0.
企 'test'. 蟆  1, 朱Μ 所鍵  19, 覓朱Μ 所鍵  0, 覩碁Μ 所鍵  0, LOB 朱Μ 所鍵  0, LOB 覓朱Μ 所鍵  0, LOB 覩碁Μ 所鍵  0.
企 'test'. 蟆  1, 朱Μ 所鍵  22, 覓朱Μ 所鍵  0, 覩碁Μ 所鍵  0, LOB 朱Μ 所鍵  0, LOB 覓朱Μ 所鍵  0, LOB 覩碁Μ 所鍵  0.

*/


drop index test.c
create clustered index c on test(e);

select * from test with(index(c)) where 10000 between b and e;
select * from test with(index(c)) where 20000 between b and e;
select * from test with(index(c)) where 30000 between b and e;
select * from test with(index(c)) where 40000 between b and e;
select * from test with(index(c)) where 50000 between b and e;
select * from test with(index(c)) where 60000 between b and e;
select * from test with(index(c)) where 70000 between b and e;
select * from test with(index(c)) where 80000 between b and e;
select * from test with(index(c)) where 90000 between b and e; 

/*
企 'test'. 蟆  1, 朱Μ 所鍵  22, 覓朱Μ 所鍵  0, 覩碁Μ 所鍵  1, LOB 朱Μ 所鍵  0, LOB 覓朱Μ 所鍵  0, LOB 覩碁Μ 所鍵  0.
企 'test'. 蟆  1, 朱Μ 所鍵  20, 覓朱Μ 所鍵  0, 覩碁Μ 所鍵  4, LOB 朱Μ 所鍵  0, LOB 覓朱Μ 所鍵  0, LOB 覩碁Μ 所鍵  0.
企 'test'. 蟆  1, 朱Μ 所鍵  18, 覓朱Μ 所鍵  0, 覩碁Μ 所鍵  0, LOB 朱Μ 所鍵  0, LOB 覓朱Μ 所鍵  0, LOB 覩碁Μ 所鍵  0.
企 'test'. 蟆  1, 朱Μ 所鍵  16, 覓朱Μ 所鍵  0, 覩碁Μ 所鍵  0, LOB 朱Μ 所鍵  0, LOB 覓朱Μ 所鍵  0, LOB 覩碁Μ 所鍵  0.
企 'test'. 蟆  1, 朱Μ 所鍵  14, 覓朱Μ 所鍵  0, 覩碁Μ 所鍵  0, LOB 朱Μ 所鍵  0, LOB 覓朱Μ 所鍵  0, LOB 覩碁Μ 所鍵  0.
企 'test'. 蟆  1, 朱Μ 所鍵  12, 覓朱Μ 所鍵  0, 覩碁Μ 所鍵  0, LOB 朱Μ 所鍵  0, LOB 覓朱Μ 所鍵  0, LOB 覩碁Μ 所鍵  0.
企 'test'. 蟆  1, 朱Μ 所鍵  10, 覓朱Μ 所鍵  0, 覩碁Μ 所鍵  0, LOB 朱Μ 所鍵  0, LOB 覓朱Μ 所鍵  0, LOB 覩碁Μ 所鍵  0.
企 'test'. 蟆  1, 朱Μ 所鍵  8, 覓朱Μ 所鍵  0, 覩碁Μ 所鍵  0, LOB 朱Μ 所鍵  0, LOB 覓朱Μ 所鍵  0, LOB 覩碁Μ 所鍵  0.
企 'test'. 蟆  1, 朱Μ 所鍵  5, 覓朱Μ 所鍵  0, 覩碁Μ 所鍵  0, LOB 朱Μ 所鍵  0, LOB 覓朱Μ 所鍵  0, LOB 覩碁Μ 所鍵  0.
*/

蟆磯朱 e(譬襭殊)襷 碁煙り 朱 . clustered index covered index襯 る 譬襭殊+殊襦 碁煙るゼ 襷る .

3 IP4, IP6覓語 一危壱 蟆一 #

IP4, IP6 蠏 覃щ 襴螻 蠍語企 るゴ. 讌襷 binary襦 覲蟆渚 蠍 覓語 varbinary(16)朱 IP4, IP6 覈 貉る . 蠏碁覩襦 蟆 binary襯 覓語企 覲伎譯手鍵襷 覃 . 覓語 True, False 覓語企襦 覲 觜 蠏麹 蟆企. るジ 蟆曙磯 覿覿 一危壱 覲觜 一一企襦 CPU 焔レ 磯殊 焔レ 襴蟆讌襷 焔レ蟲 蟆 レ 覩語讌 朱Μ 螳. (企 蟆曙 磯殊 襷 れ .)