SQL Server 2005大批量数据的操作与实例演示

数据库 SQL Server
以下的文章主要介绍的是SQL Server 2005大批量数据的实际操作以及其使用的实例描述,下面就是文章的主要内容的详细介绍。

我们今天主要向大家讲述的是SQL Server 2005大批量数据的实际操作以及其使用的实例描述,以下是文章的具体介绍,望你浏览完以下的内容会有所收获。我们首先是以问题提出的方式来对其进行讲述:

 

在SQL Server 2005数据库中建立两个类型相同的数据表,如下

 

  1. create table test1  
  2. (  
  3. iId int identity(1,1) not null,  
  4. vTest1Code varchar(30) not null,  
  5. vName varchar(30) not null,  
  6. dDate datetime,  
  7. primary key(iId)  
  8. )   
  9. create table test2  
  10. (  
  11. Id int identity(1,1) not null,  
  12. Code varchar(30) not null,  
  13. Name varchar(30) not null,  
  14. date datetime,  
  15. primary key(Id)  
  16. )  

 

两表所占用的系统空间

 

  1. exec sp_spaceused 'test1' exec sp_spaceused 'test2'   
  2. Name Rows Reserved Data Index_size unused   
  3. Test1 0 0KB 0KB 0KB 0KB   
  4. Test2 0 0KB 0KB 0KB 0KB  

由上图得知两表所占用的系统空间一致。

执行数据插入操作

 

--测试TEST1

 

  1. declare @startTime datetime  
  2. set @startTime=getdate()  
  3. declare @i int  
  4. set @i=1 
  5. while @i<100 
  6. begin  
  7. insert into test1(vTest1Code,vName) values('vCode'+CAST(@i as varchar(10)),'vName'+CAST(@i as varchar(10)))  
  8. set @i=@i+1  
  9. end 

select [语句执行花费时间(毫秒)]=datediff(ms,@startTime,getdate())

go

 

--测试TEST2

 

  1. declare @startTime datetime  
  2. set @startTime=getdate()  
  3. declare @i int  
  4. set @i=1 
  5. while @i<100 
  6. begin  
  7. insert into test2(Code,Name) values('vCode'+CAST(@i as varchar(10)),'vName'+CAST(@i as varchar(10)))  
  8. set @i=@i+1  
  9. end 

select [语句执行花费时间(毫秒)]=datediff(ms,@startTime,getdate())

go

 

插入耗时情况

test1语句执行花费时间(毫秒) test2语句执行花费时间(毫秒)

 

  1. 100条 30 30   
  2. 1000条 250 250   
  3. 10000条 2623 2516   
  4. 100000条 26453 26560   
  5. 1000000条 275110 282796  

最后两表所占用的系统空间

 

  1. exec sp_spaceused 'test1' exec sp_spaceused 'test2'   
  2. Name Rows Reserved Data Index_size unused   
  3. Test1 1000098 48520KB 48272KB 192KB 56KB   
  4. Test2 1000098 48520KB 48272KB 192KB 56KB  

问题现象描述:

<!--[if !supportLists]-->1、 <!--[endif]-->在相同数据类型、长度,及约束、索引的情况下,执行千条及千条以内的数据插入操作时,字段长度、系统保留字对SQL语句的执行速度没有影响或者影响很小;执行上万条数据插入操作时,字段长度对SQL语句的执行速度影响很小;执行十万条以上的数据操作时,系统保留字对SQL语句的执行速度影响明显。

 

<!--[if !supportLists]-->2、 <!--[endif]-->数据字段长度、系统保留字对系统占用的空间没有任何影响。

 

<!--[if !supportLists]-->3、 <!--[endif]-->在SQL Server 2005大批量数据操作时,数据类型、长度,甚至数据字段是否为系统保留字,对SQL语句的执性效率都有影响。

 

问题总结:

 

<!--[if !supportLists]-->1、 <!--[endif]-->SQL语句在执行时,将首先对相关数据表进行连接,然后进行过滤、分组、选择字段、DISTINCT、ORDER BY等操作。由此,我们在进行数据查询时,应尽量避免“*”连接,应考虑过滤的先后顺序。

 

<!--[if !supportLists]-->2、 <!--[endif]-->谨慎使用游标、触发器、索引。

 

<!--[if !supportLists]-->3、 <!--[endif]-->尽量避免使用系统保留字,考虑在SQL语句中区分数据字段的大小写,即SQL语句中的字段名的形式应和数据表中的字段名的形式一致。

 

以上的相关内容就是对SQL Server 2005大批量数据操作使用实例的介绍,望你能有所收获。

【编辑推荐】

  1. 正确维护Sql Server表索引的2个步骤
  2. SQL Server数据转换服务的妙招之一
  3. SQL Server数据库的妙招用法
  4. SQL Server数据转换服务利用与导入式格式的描述
  5. 正确维护Sql Server表索引的2个步骤

 

责任编辑:佚名 来源: Linux人社区
相关推荐

2010-07-16 14:17:18

SQL Server

2010-07-20 17:47:12

2010-09-09 16:10:57

sql server2循环

2020-11-02 09:53:13

Hive数据算法

2011-07-06 13:09:11

SQL Server

2010-06-28 11:00:46

SQL Server

2010-07-09 14:30:56

SQL Server

2018-08-09 08:59:56

数据库MySQL性能优化

2010-07-21 09:50:12

SQL Server子

2010-07-05 15:04:36

SQL Server删

2010-11-02 10:52:15

批量清理文件

2011-08-22 09:55:30

SQL Server 排序

2020-12-18 10:40:00

ExcelJava代码

2010-07-14 10:03:40

SQL Server

2010-04-26 14:52:05

Oracle大批量数据

2021-09-14 13:15:43

MySQL数据库脚本

2021-06-28 10:25:47

MySQL数据库重复数据

2010-09-03 10:40:30

SQL删除

2010-07-22 09:33:45

SQL Server全

2010-07-16 17:03:35

SQL Server
点赞
收藏

51CTO技术栈公众号