Contents

1
2 int
2.1 int朱 IP 一一 蟾?
2.2 讌(YYYYMMDD)襯 int朱?
3 螳覲蠍語
4 bigint binary
5 float


譴..

1 #

企 貉殊 一危壱 一危磯伎 豌伎 焔レ レ 殊. 麹, 蠍磯蓋れ 一危壱 襷れ 譴. 覃 蟯螻 DBMS 企 蠍磯蓋り 碁る 一願鍵 覓語 蠍螻(殊 side-effect)螳 蠍 覓語企. リ概螳 朱襷 谿讌讌襯 蟆一 殊企襦 讌朱 焔レ 蟆一蠍磯 . 一危壱 蠍磯蓋 曙 碁. 讌語 ろ誤 覲 蟆郁骸 SQL Server tinyint smallint 2byte 螳 螻糾 蟆朱 . () tinyint 0 ~ 255蟾讌襷 る 曙 谿企.

2 int #

int 螳 蠍磯蓋 一危 企. 32bit 蟆曙 4byte. 蠏碁 64bit? れ URL 谿瑚.
/襴る LP, 磯 LLP 襯 . 讀, /襴る LP64, 一 LLP64襯 . 蟆磯朱 /襴/一 覈 32bit襯 螻 .

Data TypeLP32ILP32ILP64LLP64LP64
char 8 8 8 8 8
short 16 16 16 16 16
int32 32
int 16 32 64 32 32
long 32 32 64 32 64
long long (int64) 64
pointer 32 32 64 64 64

, 蠏碁 int 伎伎 一企讌 蠏 一襯 覲企襦 .

2.1 int朱 IP 一一 蟾? #
IP 蠍磯蓋朱 "255.255.255.255" 螳 企. 255朱 蟆 1byte襦 豕 企. 襷豺(".")襯 誤覃 4byte襦 願屋 . 蠏碁 朱 覯 襦蠏碁襾碁れ 企 覓語 IP襯 int朱 覲蟆渚 螻 . 讌襷 SQL Server 蟆曙 int 4byte 蠍磯ゼ 螳讌讌襷 unsigned螳 signed int企襦 "255.255.255.255"襯 覈 . 蠏碁り 8byte bigint襯 蟆 蟾. 蠏碁覩襦 れ螻 螳 binary(4)襦 蟯襴覃 . 企蟆 蟯襴覃 IP 覯一磯 朱襦 焔リ骸 蟯襴朱 2襷襴 朱ゼ ′ . IP れ螻 螳 覲蟆渚覃 .
declare @ip varchar(15)
set @ip = '121.153.53.57'
--121.168.96.235

select
	ip_binary
,	convert(varchar, convert(smallint, substring(ip_binary, 1, 1))) + '.' +
	convert(varchar, convert(smallint, substring(ip_binary, 2, 1))) + '.' +
	convert(varchar, convert(smallint, substring(ip_binary, 3, 1))) + '.' +
	convert(varchar, convert(smallint, substring(ip_binary, 4, 1))) ip_string
from(
	select
		CONVERT(binary(1), CAST(PARSENAME(@ip, 4) AS tinyint)) +
		CONVERT(binary(1), CAST(PARSENAME(@ip, 3) AS tinyint)) +
		CONVERT(binary(1), CAST(PARSENAME(@ip, 2) AS tinyint)) +
		CONVERT(binary(1), CAST(PARSENAME(@ip, 1) AS tinyint)) ip_binary
) t

2.2 讌(YYYYMMDD)襯 int朱? #
讌 一危 蟆曙磯 , , 訖襷 , 覿, 豐, 覦襴豐 危蟾讌 . SQL Server datetime 8byte企, smalldatetime 蟆曙磯 覿 蟾讌 螳ロ. 讌 一一 朱 10讌 一郁骸 るゴ蟆 覲旧″ 螻一 伎 . 蠏 襷 CPU 襷 覈る 詞企. 襷 覿 蟾讌襷 る smalldatetime 覃 . 讌(讌 覃ъ 襷 )朱 覲伎レ 螻, 2100 蟾讌襷 る int '2100123124' 螳 螳 螳ロ. , , 朱 朱 int 磯 蟆 襷れ 譬 殊企. 讀 CPU 襷れ 覿覩襦 CPU襯 郁, I/O襯 譴企 覦覯 螳 覲 襷. 讌 覿覿 讌 一危壱 覓語襯 谿瑚蠍 覦.

3 螳覲蠍語 #

'螳覲蠍語' '螳覲' ル 一危一 蠍郁 れ 伎手鍵. 蠏碁 企蟾讌螳 企 貉殊 一危一語 蠍 伎 覈 覓伎瑚螳 . 蠏碁覩襦 DBMS 企朱 螳覲蠍語 一危壱 蠍磯ゼ ロ 蟲磯蠍(redundancy)襯 襷. sql server 蟆曙磯 varchar(8000)蟾讌 企襦 8000 1byte る 朱襦 2byte. るジ DBMS varchar 255蟾讌 讌る 覩碁 蟲磯蠍郁 1byte覿 蟆 覩誤. 蠍郁讌螳 ろ襴讌 讌伎手鍵螻, 朱Μ朱 varchar(n) n 2螳讌 蟯 覺狩. (varbinary 螳 一危壱 讌襷, 螳覲蠍語伎 る企襦 varchar 一危壱朱 る蟆)




1. 覃 覓語
焔レ姶願 覦讌 蟇 覦蟇 n 蠍磯 れ 覦伎 . 覃 覓願屋煙 讌り鍵 伎 れ朱 豸♀ロ 襷朱 蠍磯ゼ れ . 一危 讌 一危磯伎れ 譟伎 豌企ゼ . 覓朱 一危 讌覓語襯 願屋蠍 企螳 豌襴伎 覩襦 焔ル語 覦.

2. 焔 覓語
n磯 焔レ姶願 覦螳? 蠏碁. 焔レ姶 覦. n 蟆讌襷, 一危一 螳 覩誤企. 企 覿れ煙 願屋企螳 瑚 蟲螳 襯企. varchar(10) 螻糾 覯(豕豺 - 豕豺) 9 . 讌襷 varchar(1000) 999 . varchar(1000)朱 牛磯伎 企至 豸″伎 蟾? 貉殊 螳 1byte襷 1000byte襯 暑 page? 轟壱 1000byte 蟆曙 襷 page襯 曙伎 蟆企. 讀, n 蠍郁 貉れ 磯殊 牛磯伎螳 襦 豸″ 襯 伎る 詞企. 蠏碁 焔レ 襦 蟆 牛磯伎 豸′ 伎 . 蠏碁 れ 誤蟾 襷企.

牛磯伎 企 蠍一 襷伎 , 蠍一 . 一危一 襯覿, 蠏, 譴ク谿襯 蟆 . 蠏碁襷 襾轟 蠍一糾 蠏 螻, 豕觜螳(mode) 螻 譴螳(median)企. 覿襯 覈襯企襦 豌企壱 襴襯 伎伎 蟆企. 譴螳 讌 磯 螻旧 譬 るジ, 所 谿企覓語 if襯 覯 磯 蟆 觜觜. 蠏碁 sqL server 蠏碁 n/2 . 讀, varchar(1000)企 500 . 499 501襦 企 覲覦 谿願 蟆企. 讌襷 蟆 1,2 谿企 觜 覲豌襴襯 蟇磯 襷蟇磯 觜(蠍磯蓋螳=5) 蟆所 れ . 蟆磯 n sql server螳 豌襴伎 一危一 . ろ 企慨.

ろ碁一危 襷り鍵
;with dummy
as
(
        select 0 seq
        union all
        select seq + 1 from dummy
        where seq + 1 <= 10000
)
select 
	seq 
,	convert(varchar(100), newid()) var100
,	convert(varchar(7000), newid()) var7000 
into #temp
from dummy
option (maxrecursion 0);

ろ 一危磯ゼ 襷り sql ろ ろ螻 覲伎.
select 
	seq
,	var100
from #temp
order by var100
pic01.png

" 蠍" "覃覈襴 覿" 覿覿 覲伎. 蠏碁Μ螻 れ varchar(n) n 蠍磯ゼ 蟆 ′ sql ろ貅覲伎.
select 
	seq
,	var7000
from #temp
order by var7000
pic02.png

" 蠍" "覃覈襴 覿" 覿覿 覲伎. varchar(100) 蟆曙一 varchar(7000) 蟆曙 sql server るゴ蟆 覲願 る 蟆 .

4 bigint binary #

.. 覯.. 蟆郁骸螳 企 譴伎...
declare
    @big_i bigint
set @big_i = 432631175994903702

select
    convert(binary(8), @big_i)
,   convert(binary(8), 432631175994903702)

/* 蟆郁骸..
------------------ ------------------
0x060103C32BEF8C96 0x12000001968CEF2B
*/

5 float #