最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
当前位置: 首页 - 科技 - 知识百科 - 正文

.NET批量大数据插入性能分析及比较(6.使用表值参数)

来源:懂视网 责编:小采 时间:2020-11-09 08:07:20
文档

.NET批量大数据插入性能分析及比较(6.使用表值参数)

.NET批量大数据插入性能分析及比较(6.使用表值参数):表值 参数 (Table-valued Parameter)是SQL Server 2008增加的新特性,可以将DataTable做为 参数 传递给存储过程。 数据 库执行脚本如下 CREATE TYPE TestType AS TABLE ( Id int NOT NULL ,Name nvarchar(20) NOT
推荐度:
导读.NET批量大数据插入性能分析及比较(6.使用表值参数):表值 参数 (Table-valued Parameter)是SQL Server 2008增加的新特性,可以将DataTable做为 参数 传递给存储过程。 数据 库执行脚本如下 CREATE TYPE TestType AS TABLE ( Id int NOT NULL ,Name nvarchar(20) NOT

表值 参数 (Table-valued Parameter)是SQL Server 2008增加的新特性,可以将DataTable做为 参数 传递给存储过程。 数据 库执行脚本如下 CREATE TYPE TestType AS TABLE ( Id int NOT NULL ,Name nvarchar(20) NOT NULL ) CREATE PROC InsertData @rows TestT

表值参数(Table-valued Parameter)是SQL Server 2008增加的新特性,可以将DataTable做为参数传递给存储过程。

数据库执行脚本如下

CREATE TYPE TestType AS TABLE
(
Id int NOT NULL
,Name nvarchar(20) NOT NULL
)

CREATE PROC InsertData
@rows TestType READONLY
as
begin
set nocount on
insert into TestTable(Id, Name)
select Id, Name from @rows
end

代码如下:

结果如下:

Use SqlServer TableType Insert;RecordCount:40000;BatchSize:10;Time:15312;

Use SqlServer TableType Insert;RecordCount:40000;BatchSize:20;Time:7806;

Use SqlServer TableType Insert;RecordCount:40000;BatchSize:50;Time:3767;

Use SqlServer TableType Insert;RecordCount:40000;BatchSize:100;Time:2217;

Use SqlServer TableType Insert;RecordCount:40000;BatchSize:200;Time:1743;

Use SqlServer TableType Insert;RecordCount:40000;BatchSize:400;Time:1575;

Use SqlServer TableType Insert;RecordCount:40000;BatchSize:500;Time:1566;

Use SqlServer TableType Insert;RecordCount:40000;BatchSize:600;Time:1374;

Use SqlServer TableType Insert;RecordCount:40000;BatchSize:700;Time:1286;

Use SqlServer TableType Insert;RecordCount:40000;BatchSize:800;Time:1463;

Use SqlServer TableType Insert;RecordCount:40000;BatchSize:1000;Time:1272;

Use SqlServer TableType Insert;RecordCount:40000;BatchSize:2000;Time:1069;

Use SqlServer TableType Insert;RecordCount:40000;BatchSize:4000;Time:1001;

从时间上来看,似乎并不必前面的案例强,但批处理量得增加,写性能在持续提高,而且实际上程序中花费了大量的时间在创建DataTable及填充其数据上面,如果传递给函数的就是一个DataTable集合,相信使用表值参数的表现会更好。

但考虑到需要为插入的表创建类型,创建存储过程,个人认为其通用性不是很好

全文链接:

.NET批量大数据插入性能分析及比较(1.准备工作)

.NET批量大数据插入性能分析及比较(2.普通插入与拼接sql批量插入)

.NET批量大数据插入性能分析及比较(3.使用事务)

.NET批量大数据插入性能分析及比较(4.使用DataAdapter批量插入)

.NET批量大数据插入性能分析及比较(5.使用SqlBulkCopy)

.NET批量大数据插入性能分析及比较(6.使用表值参数)

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文档

.NET批量大数据插入性能分析及比较(6.使用表值参数)

.NET批量大数据插入性能分析及比较(6.使用表值参数):表值 参数 (Table-valued Parameter)是SQL Server 2008增加的新特性,可以将DataTable做为 参数 传递给存储过程。 数据 库执行脚本如下 CREATE TYPE TestType AS TABLE ( Id int NOT NULL ,Name nvarchar(20) NOT
推荐度:
标签: 批量 使用 数据
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top