有这样一个表【OperatorInfo】,字段有[OPERATOR_NO],[OPERATOR_PWD],[OPERATOR_NAME],[GROUP_ID],[GROUP_NO],[SKILL_LEVEL],[OPERATOR_TYPE],[PAUSENUM], [OPERATOR_ACD_TYPE]
其中[OPERATOR_NO]需要指定一个起始数值,然后实现规定的累加,其他的一些都是默认值,可以不用理会。
以下是代码:
代码如下 | 复制代码 |
DECLARE @recordNmber int |
这里我只加了30条,如果你需要,可以自行定义
性能对比
.创建表值参数类型
我们打开查询分析器,然后在查询分析器中执行下列代码:
代码如下 | 复制代码 |
Create Type PassportTableType as Table ( PassportKey nvarchar(50) ) |
执行成功以后,我们打开企业管理器,按顺序依次展开下列节点--数据库、展开可编程性、类型、用户自定义表类型,就可以看到我们创建好的表值类型了如下图所示:
说明我们创建表值类型成功了。
3.编写存储过程
存储过程的代码为:
代码如下 | 复制代码 |
USE [TestInsert] GO /****** Object: StoredProcedure [dbo].[CreatePassportWithTVP] Script Date: 03/02/2010 00:14:45 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- ============================================= -- Author: -- Create date: <2010-3-1> -- Description: <创建通行证> -- ============================================= Create PROCEDURE [dbo].[CreatePassportWithTVP] @TVP PassportTableType readonly AS BEGIN SET NOCOUNT ON; Insert into Passport(PassportKey) select PassportKey from @TVP END |
可能在查询分析器中,智能提示会提示表值类型有问题,会出现红色下划线(见下图),不用理会,继续运行我们的代码,完成存储过程的创建 4.编写代码调用存储过程。
三种数据库的插入方式代码如下,由于时间比较紧,代码可能不那么易读,特别代码我加了些注释。
主要部分的代码
代码如下 | 复制代码 |
using System; namespace ConsoleAppInsertTest long sqlBulkCopyInsertRunTime = SqlBulkCopyInsert(); long TVPInsertRunTime = TVPInsert(); /// /// DataTable dataTable = GetTableSchema(); SqlBulkCopy sqlBulkCopy = new SqlBulkCopy(connectionString); stopwatch.Stop(); private static long TVPInsert() DataTable dataTable = GetTableSchema(); SqlParameter[] sqlParameter = { new SqlParameter("@TVP", dataTable) }; stopwatch.Stop(); private static DataTable GetTableSchema() } |
比较神秘的代码其实就下面这两行,该代码是将一个dataTable做为参数传给了我们的存储过程。简单吧。
代码如下 | 复制代码 |
SqlParameter[] sqlParameter = { new SqlParameter("@TVP", dataTable) }; |
5.测试并记录测试结果
1.创建表。
为了简单,表中只有一个字段,如下图所示:
第一组测试,插入记录数1000
第二组测试,插入记录数10000
第三组测试,插入记录数1000000
通过以上测试方案,不难发现,技术方案二的优势还是蛮高的。无论是从通用性还是从性能上考虑,都应该是
优先被选择的,还有一点,它的技术复杂度要比技术方案三要简单一些
茶杯头甜蜜终章dlc 官方手机版v1.0.0.3
下载火柴人传说暗影格斗内置菜单 最新版v3.0.1
下载荒野乱斗测试服 安卓版v61.10.3
下载荒野乱斗彩虹服 安卓版v61.10.3
下载寒霜启示录 安卓版v1.25.10
寒霜启示录是一款生存模拟游戏,不少玩家可能对于末日都有着自己
末日城堡免广告版 安卓最新版v0.7.1
末日城堡免广告版是一款非常好玩的模拟经营类游戏,内部可以不看
甜蜜人生模拟器 最新版v1.4.5
甜蜜人生模拟器是一款非常好玩的模拟恋爱手游,玩家在这里能够对
武器锻造师内置功能菜单 v10.4
武器锻造师内置菜单版是游戏的破解版本,在该版本中为玩家提供了
开放空间overfield 安卓版v1.0.5
开放空间Overfield是一款箱庭养成经营手游,让你在广阔