乐观 发表于 2015-1-16 22:15:55

MYSQL编程:asp.net 利用SqlBulkCopy极速拔出数据到...

由于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=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;
}
}
}

转自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课件,以飨阅者

愤怒的大鸟 发表于 2015-2-10 04:05:06

varchar(max)\\\\nvarchar(max)类型的引入大大的提高了编程的效率,可以使用字符串函数对CLOB类型进行操作,这是一个亮点。

飘飘悠悠 发表于 2015-3-10 07:01:20

外键的级联更能扩展可能大部分的同行在设计OLTP系统的时候都不愿意建立外键,都是通过程序来控制父子数据的完整性。

若相依 发表于 2015-3-17 05:10:28

对于数据库来说,查询是数据库的灵魂,那么SQL查询效率究竟效率如何呢?下文将带对SQL查询的相关问题进行讨论,供您参考。

admin 发表于 2015-3-23 22:24:30

数据库物理框架没有变动undo和redo都放在数据库得transaction中,个人感觉是个败笔。如果说我们在设计数据库的时候考虑分多个数据库,可能能在一定程度上避免I/O效率问题。
页: [1]
查看完整版本: MYSQL编程:asp.net 利用SqlBulkCopy极速拔出数据到...