SQL中char和varchar的效率分析

时间:2012-02-09 11:10:03  来源:第二电脑网  作者:第二电脑网

  第二电脑网导读:n> 的char 与
  正文:

blog:http://blog.csdn.net/Anckly/archive/2006/07/26/977406.ASP/ target=_blank class=infotextkey>aspx

本次测试的SQL SERVER 2000 char varchar。

 
 
 
测试分三组
,每次增加插入的行数,脚本如下:
CREATE TABLE [dbo].[testchar] ([a] [int] IDENTITY (1, 1) NOT NULL ,[b] [char] (200) COLLATE Chinese_PRC_CI_AS NULL) ON [PRIMARY]GOCREATE TABLE [dbo].[testvarchar] ([a] [int] IDENTITY (1, 1) NOT NULL ,[b] [varchar] (200) COLLATE Chinese_PRC_CI_AS NULL) ON [PRIMARY]GO
 
--truncate table testvarchar
 
--truncate table testchardeclare @i as int
 
set @i=0
 
while @i<50000begininsert into testvarchar values(cast(@i as varchar(200)))
 
set @i=@i+1
 
if @i=50000
 
breakenddeclare @i as int
 
set @i=0
 
while @i<50000begininsert into testchar values(cast(@i as char(200)))
 
set @i=@i+1
 
if @i=50000
 
breakend

  测试结果:

 

 

插入行数

 

 

数据类型

 

 

 

 

duration

 

 

50000

 

 

varchar

 

 

2359

 

 

21203

 

 

50000

 

 

char

 

 

2344

 

 

22250

 

 

100000

 

 

varchar

 

 

4156

 

 

44500

 

 

100000

 

 

char

 

 

4172

 

 

44186

 

 

2000000

 

 

varchar

 

 

8907

 

 

89093

 

 

2000000

 

 

char

 

 

9188

 

 

96530

 

 

 两表储存空间比较:
 Testchar:73.94M
 Testvarchar:7.94M
 
################################################################################################
 以上资料表明,无论是在存储速度还是存储空间上,varchar都是占优势的。
 然而这次的测试并不是全部准确的,必竟单次的测试,受干拢的因素太多,影响结果。
 实际上,var这种定长字符类型的插入和更新速度是比varchar这种变长字符类型要来的快,虽然差的不是很多。
 
 但是在遇到经常频繁的更新数据库时,这种速度差别就会很明显的体现出来。在这种情形下就要使用char类型来提高数据库的效率。
 总而言之,char是一种重视时间的存储方式,而varchar则是重视空间的存储方式。

"SQL中char和varchar的效率分析"由第二电脑网原创提供,转载请注明:http://www.002pc.com/master/College/Database/SQLyufajiaocheng/2009-01-07/8854.html


关键字:

关于《SQL中char和varchar的效率分析》文章的评论

站内搜索: 高级搜索

热门搜索: Windows style 系统 tr IP QQ CPU 安装 function 注册 if td