仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 796|回复: 7
打印 上一主题 下一主题

[学习教程] MYSQL编程:asp.net 利用SqlBulkCopy极速拔出数据到...

[复制链接]
乐观 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:15:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
由于MySQL数据库已经如此普及,对企业来说它无疑是一个更好的选择。按这个来算,我们谁人发水票的工夫就会由10分钟-->20秒,这可太奇妙了。
因而乎,下demo,测试,改成本人一样平常利用的办法测试,NND,还真能够说是极速。
在此贴上我的Demo:SqlBulkCopy.rar
复制代码代码以下:
usingSystem;
usingSystem.Diagnostics;
usingSystem.Data;
usingSystem.Data.SqlClient;
usingMicrosoft.ApplicationBlocks.Data;
namespaceConsoleAppInsertTest
{
classProgram
{
staticintcount=1000000;//拔出的条数
staticvoidMain(string[]args)
{
longsqlBulkCopyInsertRunTime=SqlBulkCopyInsert();
Console.WriteLine(string.Format("利用SqlBulkCopy拔出{1}条数据所用的工夫是{0}毫秒",sqlBulkCopyInsertRunTime,count));
longcommonInsertRunTime=CommonInsert();
Console.WriteLine(string.Format("一般体例拔出{1}条数据所用的工夫是{0}毫秒",commonInsertRunTime,count));
Console.ReadKey();
}
///<summary>
///利用一般拔出数据
///</summary>
///<returns></returns>
privatestaticlongCommonInsert()
{
Stopwatchstopwatch=newStopwatch();
stopwatch.Start();
for(inti=0;i<count;i++)
{
SqlHelper.ExecuteNonQuery(SqlHelper.SqlConnection,CommandType.Text,"insertintopassport(PassportKey)values("+Guid.NewGuid()+")");
}
stopwatch.Stop();
returnstopwatch.ElapsedMilliseconds;
}
///<summary>
///利用SqlBulkCopy体例拔出数据
///</summary>
///<returns></returns>
privatestaticlongSqlBulkCopyInsert()
{
Stopwatchstopwatch=newStopwatch();
stopwatch.Start();
DataTabledataTable=GetTableSchema();
for(inti=0;i<count;i++)
{
DataRowdataRow=dataTable.NewRow();
dataRow[2]=Guid.NewGuid();
dataTable.Rows.Add(dataRow);
}
//Console.WriteLine(stopwatch.ElapsedMilliseconds);//初始化数据工夫
SqlBulkCopysqlBulkCopy=newSqlBulkCopy(SqlHelper.SqlConnection);
sqlBulkCopy.DestinationTableName="Passport";
if(dataTable!=null&&dataTable.Rows.Count!=0)
{
sqlBulkCopy.WriteToServer(dataTable);
}
sqlBulkCopy.Close();
stopwatch.Stop();
returnstopwatch.ElapsedMilliseconds;
}
privatestaticDataTableGetTableSchema()
{
returnSqlHelper.ExecuteDataset(SqlHelper.SqlConnection,CommandType.Text,"select*fromPassportwhere1=2").Tables[0];
}
}
}

转自cnblogs的文章SQL批量拔出数据几种计划的功能具体对照MySQL的低成本来自于其简单性吗?它的普及性是由于其低成本吗?其实,在MySQL的最“好”与最“不好”的功能之间没有明显的分界线,但它们组合在一起就形成了一副让我们欣赏的作品。
只想知道 该用户已被删除
沙发
发表于 2015-1-19 06:26:20 | 只看该作者
但换公司用MSSQL2K感觉自己好像根本就不了解MSSQL。什么DTS触发器以前根本没用过。
飘灵儿 该用户已被删除
板凳
发表于 2015-1-26 12:52:38 | 只看该作者
having子句的作用是筛选满足条件的组,即在分组之后过滤数据,条件中经常包含聚组函数,使用having条件显示特定的组,也可以使用多个分组标准进行分组。
若天明 该用户已被删除
地板
发表于 2015-2-4 16:23:47 | 只看该作者
发几份SQL课件,以飨阅者
愤怒的大鸟 该用户已被删除
5#
发表于 2015-2-10 04:05:06 | 只看该作者
varchar(max)\\\\nvarchar(max)类型的引入大大的提高了编程的效率,可以使用字符串函数对CLOB类型进行操作,这是一个亮点。
飘飘悠悠 该用户已被删除
6#
发表于 2015-3-10 07:01:20 | 只看该作者
外键的级联更能扩展可能大部分的同行在设计OLTP系统的时候都不愿意建立外键,都是通过程序来控制父子数据的完整性。
若相依 该用户已被删除
7#
发表于 2015-3-17 05:10:28 | 只看该作者
对于数据库来说,查询是数据库的灵魂,那么SQL查询效率究竟效率如何呢?下文将带对SQL查询的相关问题进行讨论,供您参考。
admin 该用户已被删除
8#
发表于 2015-3-23 22:24:30 | 只看该作者
数据库物理框架没有变动undo和redo都放在数据库得transaction中,个人感觉是个败笔。如果说我们在设计数据库的时候考虑分多个数据库,可能能在一定程度上避免I/O效率问题。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-11-15 10:54

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表