首页 > OOP语言 > VB.net > 正文

大数据量插入(vb.net 2008)
2012-08-22 19:00:22   来源:www.bianceng.cn   评论:0 点击:

暂时无描述信息

这段时间在做抓包项目,需要把抓来的数据插入到数据库中,特做了四种插入数据算法比较。

数据库:SQL Server Management Studio Express

数据库名:test

Test中的表:TBL1(id bigint,name nvarchar(50),sex nvarchar(10),remark nvarchar(50)) 这张表就是要插入的数据

开发语言:vb.net 2008

插入算法1:考虑到插入的数据非常多,我有可能会保存在多个表中。该算法使用存储过程中执行动态sql。使用该算法插入10万条数据,共花了68.684秒。

[dbo].[tbl1_insert_1]存储过程

1ALTER PROCEDURE [dbo].[tbl1_insert_1]
2    @id bigint,@name nvarchar(50)  ,
3    @sex nvarchar(10),@remark nvarchar(50)
4AS
5BEGIN
6SET NOCOUNT ON;
7declare @sql nvarchar(1000)
8declare @tblname varchar(100)
9set @tblname=’tbl1’
10set @sql='insert into ‘+@tblname +’(id,[name],sex,remark) '+
11        'values(' +convert(nvarchar, @id) +','''+@name+''','''+@sex+''','''+@remark+''')'
12 exec(@sql)
13END
14

Code

1 Private Sub Button4_Click()Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
2        Dim sw As New System.Diagnostics.Stopwatch
3        sw.Start()
4        Dim conn As New System.Data.SqlClient.SqlConnection("Data Source=JXBW-YESHUNQUANSQLEXPRESS;Initial Catalog=test;Integrated Security=True")
5        conn.Open()
6        Dim cmd As New System.Data.SqlClient.SqlCommand
7        cmd.CommandText = "tbl1_insert_1"
8        cmd.CommandType = CommandType.StoredProcedure
9        cmd.Connection = conn
10        Dim para(3) As System.Data.SqlClient.SqlParameter
11        para(0) = New System.Data.SqlClient.SqlParameter("@id", SqlDbType.BigInt)
12        para(1) = New System.Data.SqlClient.SqlParameter("@name", SqlDbType.NVarChar, 50)
13        para(2) = New System.Data.SqlClient.SqlParameter("@sex", SqlDbType.NVarChar, 10)
14        para(3) = New System.Data.SqlClient.SqlParameter("@remark", SqlDbType.NVarChar, 50)
15        cmd.Parameters.Add(para(0))
16        cmd.Parameters.Add(para(1))
17        cmd.Parameters.Add(para(2))
18        cmd.Parameters.Add(para(3))
19        For i = 1 To 100000
20            para(0).Value = i
21            para(1).Value = "gsdgfsdfg" & i
22            para(2).Value = "男"
23            para(3).Value = "adfasdfasdddsssssssssssssssss我爱中国"
24            cmd.ExecuteNonQuery()
25        Next
26        conn.Close()
27        sw.Stop()
28        Debug.Print(sw.ElapsedMilliseconds / 1000 & "秒")
29    End Sub
30

相关热词搜索:

上一篇:WinForm程序中使用控制台作为输出窗口
下一篇:VB.NET和C#的对比

分享到: 收藏