原文:极限挑战-C#100万条数据导入SQL SERVER数据库仅用4秒 (附源码) 实际工作中有时候需要把大量数据导入数据库,然后用于各种程序计算,本实验将使用5中方法完成这个过程,并详细记录各种方法所耗费的时间. 本实验中所用到工具为VS2008和SQL SERVER 2000.SQL SERVER 2008,分别使用5中方法将100万条数据导入SQL 2000与SQL 2008中,实验环境是DELL 2850双2.0GCPU,2G内存的服务器.感兴趣的朋友可以下载源代码自己验证一下所用时间…
作者: Aicken(李鸣)  来源: 博客园  发布时间: 2010-09-08 15:00  阅读: 4520 次  推荐: 0                   原文链接   [收藏] 摘要:实际工作中有时候需要把大量数据导入数据库,然后用于各种程序计算,本实验将使用5中方法完成这个过程,并详细记录各种方法所耗费的时间. 本实验中所用到工具为VS2008和SQL SERVER 2000.SQL SERVER 2008,分别使用5中方法将100万条数据导入SQL 2000与SQL 2008…
链接地址:http://www.cnblogs.com/armyfai/p/4646213.html 要:在这里我们将看到的是C#中利用ODP实现在Oracle数据库中瞬间导入百万级数据,这对快速批量导入的实现有重要意义. .Net程序中可以通过ODP调用特性,对Oracle数据库进行操作,今天来讲一下数据批量插入的功能,所用技术不高不深,相信很多朋友都接触过,小弟班门弄斧了,呵呵.这篇文章是上篇文章的续集,因为上一次试验的征集结果没有突破4秒的方法,所以这次继续挑战与挖掘新方法,虽然是Orac…
Excel表数据导入Sql Server数据库的方法很多,这里只是介绍了其中一种: 1.首先,我们要先在test数据库中新建一个my_test表,该表具有三个字段tid int类型, tname nvarchar类型, tt nvarchar类型(注意:my_test表中的数据类型必须与Excel中相应字段的类型一致) 2. 我们用SELECT * FROM  OPENROWSET( 'Microsoft.Jet.OLEDB.4.0 ', 'Excel  5.0;DatabASE=[Excel表…
教你如何6秒钟往MySQL插入100万条数据!然后删库跑路! 由于我用的mysql 8版本,所以增加了Timezone,然后就可以了 前提是要自己建好库和表. 数据库test, 表user, 三个字段: u_id.u_name.u_pwd,然后主键自增 conn = DriverManager.getConnection("jdbc:mysql:///test?" + "&rewriteBatchedStatements=true&serverTimezone…
SQLite数据库本质上来讲就是一个磁盘上的文件,所以一切的数据库操作其实都会转化为对文件的操作,而频繁的文件操作将会是一个很好时的过程,会极大地影响数据库存取的速度.例如:向数据库中插入100万条数据,在默认的情况下如果仅仅是执行query.exec("insert into DataBase(......) values(......)");就会打开和关闭文件100万次,所以速度当然会很慢.SQLite数据库是支持事务操作的,于是我们就可以通过事务来提高数据库的读写速度.事务的基本…
背景: 100万条数据.格式如下: ID 地址 1895756546931805 安徽省六安市裕安区固镇镇佛俺村柳树队5758 安徽省蒙城县岳坊镇胡寨村小组小胡寨庄6号 1834941674099699 安徽省蚌埠市五河县申集镇朱圩村1850212719717844 安徽省淮北市1850212774979300 安徽省合肥市1850212784889487 安徽省宿州市泗县 目标要求: 筛选出地址不太准确的.地址长度大于11个字符的. 保留前面ID.将结果输出到一个文件中. 操作过程: #第一步…
Excel表格的使用可谓是非常广泛,博主也简单百度了一下Excel的发展. 发展历程: 1982年 Microsoft推出了它的第一款电子制表软件-Multiplan,并在CP/M系统上大 Excel 获成功,但在MS-DOS系统上,Multiplan败给了Lotus1-2-3(一款较早的电子表格软件).这个事件促使了Excel的诞生,正如Excel研发代号DougKlunder:做Lotus1-2-3能做的,并且做的更好. 1983年9月 比尔盖茨召集了微软最高的软件专家在西雅图的红狮宾馆召开…
原文:将DataTable 数据插入 SQL SERVER 数据库 以下提供3中方式将DataTable中的数据插入到SQL SERVER 数据库: 一:使用sqlcommand.executenonquery()方法插入 foreach (DataRow datarow in datatable.Rows) { string sql = "INSERT INTO [Table_1] ([CompanyName],[CompanyCode],[Address],[Owner],[Memo])&q…
今天需要将一个含有1000万条数据的文本内容插入到数据库表中,最初自然想到的是使用Insertinto '表名'values(),(),()...这种插入方式,但是发现这种方式对1000万条数据量的情况,明显效率低下,于是选用了直接将文本内容导入数据表的方法: LOADDATA LOCAL INFILE '/home/xyw/result.txt' INTO TABLEdomainlib_tmp(domain); 这种方式可以将本地的数据文件'result.txt'直接导入到domainlib_…
先看界面图 实现的基本思想: 1,先使用FileUpload控件fuload将Excel文件上传到服务器上得某一个文件夹. 2,使用OleDb将已经上传到服务器上的Excel文件读出来,这里将Excel文件当做一个数据库来读.在联系数据库语句中,Data Source就是该文件在服务器上得物理路径 3,将第二步中读出的数据以DataTable对象返回. 4,遍历DataTable对象,然后到Sql Server数据库中查询,是否存在该条数据.如果存在,可以做更新,或者不做处理:如果不存在,则插入…
第一种方法一条一条执行插入,结果会很慢 <?php header("Content-Type:text/html;charset=utf-8"); date_default_timezone_set("PRC"); $servername = "localhost"; $port = 3306; $username = "root"; $password = "root"; $dbname = &qu…
福哥答案2020-04-23: 分批查询:分成500次count(),每次count()肯定小于等于2000条数据,经过测试,一次count()在.1ms左右,500次就是500ms.二分法(时间微超):count() 50万,25万,12.5万依次下去.rownum作差(时间超):rownum和id首个差值,取id.错位join(时间超):SELECT C_ID FROM t_vd20190814 WHERE C_ID NOT IN (SELECT C_ID+1 FROM t_vd201908…
在做项目的工程中,需要数据库中存在大量的数据进行程序的验证,但是我们又没有数据,这时就需要我们自己手动建一个表,插入大量数据,进行验证. 那么插入大量数据的sql语句如下: insert into EXT_LOG (ID) select rownum as id from dual connect ; 其实无非就是使用了rownum 这个Oracle中的字段…
原文地址:http://www.cnblogs.com/chenxizhang/archive/2008/11/11/1331060.html 如果你需要在程序中批量插入成千上万行的数据,你会怎么编写代码呢?最近在帮朋友调优这个的时候,总结了几种方法,并对其进行比较. 大概的界面如下,我模拟了一个客户资料表. 数据我是放在一个XML文件的,大约6734行.类似下面的格式 <?xml version="1.0" encoding="utf-8" ?> &l…
在Excel中,我们时常会碰到这样的字段(最常见的就是电话号码),即有纯数字的(如没有带区号的电话号码),又有数字和其它字符混合 (如“区号-电 话号码”)的数据,在导入SQLServer过程中,会发现要么纯数字的数据导过去之后变成了NULL,要么就是数字和其它字符混合的数据导过去之后变成 了NULL. 我首先想到的就是将这个字段的所有数据在Excel中设置为文本格式,刚才说了本来就是希望导入SQLServer时成为字符型,但结果令人失望,不起 作用. 最终网上搜索到了答案:混合数据类型列的强制…
Excel文件: 序号 姓名 内部电话 住址 1 小李 1234 …… 2 小王 5678 …… 3 小张 2345(国内长途) …… …… …… …… …… 如上结构的Excel文件,用SQL Server的“导入数据”功能来将其导入SQL数据库中.结果发现在“内部电话”列中,所有带有文字的电话号,被导入后字段值全部为NULL SQL数据表: 序号 姓名 内部电话 住址 1 小李 1234 …… 2 小王 5678 …… 3 小张 NULL …… …… …… …… …… 通过在SQL中设置(在…
这里直接用小例子说明. 1.打开VS2010—>文件—>新建—>网站,选择ASP.NET空网站并设置存放路径以创建空网站.(我这里路径设置为D:\excelEduceToSql) 2.创建数据库test并在test数据库中创建my_test表(我这里在excelEduceToSql文件夹中创建SQL文件夹并将数据库保存在里面). (表的字段如下:)  tid(int)  tname(nvarchar(50))  tt(nvarchar(50)) 3.创建Excel表(我这里的Excel表…
SQL Server 2012可以降级到2008吗?没有找到方法,似乎也不支持.整理了一个变通的方法,把2012的数据和结构导出,然后再导入2008. 在 SQL Server 2012 使用 SqlPubWiz 数据库发行精灵导出数据库 在 SQL Server 2008 使用 sqlcmd 导入数据库   一.在 SQL Server 2012 使用 SqlPubWiz 数据库发行精灵导出数据库 1.命令行 语法:SqlPubWiz script -S 服务器名称 -U 登入账户 -P 密码…
进来经常需要对一些基础数据进行更新,而业务方提供的数据源往往都是excel,所以经常需要将excel中数据导入到 数据库临时表,然后再进行处理. 在导入过程中,发现有些数据比如手机号码,如果默认导入,excel格式不特别设置为文本,那么导入时到数据库中的 格式将显示为float.那么在进行数据更新时就会出现坑爹的现象了,如果在转换数据时,再将float转为nvarchar处理的话,那么 数据将会失真,比如13509897653会变为13e97347之类的数据. 所以如果使用Sql server的…
小伙伴们有个数据竞赛,提供的数据是944MB大小的TXT数据文档,导入SQL遇到一些麻烦.于是帮着解决,顺便也熟练了SQL Server的一些操作----- 打开如此大的txt需要的时间很长,而且不全.不过数据的行数还是可以计算出来的,当看到每行,计算一下每行占的字节数.用总大小除以每行字节数,就是行数.不考虑其他的占内存情况下,粗略估计出他们的数据是1千万行左右的样子. 首先,新建一个容量大点的数据表, 导入数据,  数据源(平面文件源) 代码页那里选UTF-8,可以预览,看是否能正常显示出中…
在日常的程序开发过程中,很多情况下,用户单位给予开发人员的数据往往是execl或者是access数据,如何把这些数据转为企业级是数据库数据呢,下面就利用sqlserver自带的功能来完成此项任务. 首先打开数据库,右键点击数据库,选择任务. 选择导入数据 弹出导入数据对话框 点击下一步,在数据源下拉框里选择要导入的数据类型,此例中选择execl 点击浏览,选择即将导入的execl文件 目标选择默认的,服务器选择你要导入数据的数据库服务器名称,验证方式根据实际情况选择.数据库是你要把数据将要导入的…
--office 2003--如果接受数据导入的表已经存在insert into DemoTable select * from OPENROWSET('MICROSOFT.JET.OLEDB.4.0','Excel 5.0;HDR=YES;DATABASE=d:/Demo.xls',sheet1$)--如果导入数据并生成表select * into DemoTable  from OPENROWSET('MICROSOFT.JET.OLEDB.4.0','Excel 5.0;HDR=YES;D…
  1.OpenXmlSDK是个很好的类库,可惜只能通过C#调用,C#的童鞋又福气了. 2.服务端程序由于没法安装office,所以这个对asp.net网站来说是最理想的库了.需要.net 4.0版本以上. 3.以流形式,sax模型读取大文件. using System; using System.Collections.Generic; using System.Linq; using System.Text; using DocumentFormat.OpenXml; using Docum…
[sql] view plaincopy --1.修改系统参数 --修改高级参数 sp_configure 'show advanced options',1 go --允许即席分布式查询 sp_configure 'Ad Hoc Distributed Queries',1 go --如果配置的值不在合理范围(在最小值最大值范围内),那么可以强制覆盖 reconfigure with override go sp_configure 'xp_cmdshell',1 go reconfigure…
#region 将Xml中的数据读到Dataset中,然后用SqlBulkCopy类把数据copy到目的表中using (XmlTextReader xmlReader = new XmlTextReader(sourcePath)){    DataSet ds = new DataSet();    ds.ReadXml(XmlReader.Create(sourcePath));//把数据读到DataSet这个过程有点慢,取决于XML文件大小    using (SqlBulkCopy b…
基本有2种方案,都是无需安装Office的方案 Ole DB读取 + BulkCopy 获取Excel各个SheetName //连接串 string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + Path + ";" + "Extended Properties=Excel 8.0;"; OleDbConnection conn = new…
1.新建连接 2. EXEC sp_attach_db @dbname = 'demo',   (数据库的名字) @filename1 = 'G:\C#\超市管理系统\DB\CSGL.mdf', @filename2 = 'G:\C#\超市管理系统\DB\CSGL_log.ldg' 3.出现拒绝访问 “拒绝访问”====>修改文件的属性->安全->修改Authenticated Users-更改该组权限为完全控制权限,再次附加成功.…
想必每个DBA都喜欢挑战数据导入时间,用时越短工作效率越高,也充分的能够证明自己的实力.实际工作中有时候需要把大量数据导入数据库,然后用于各种程序计算,本文将向大家推荐一个挑战4秒极限让百万级数据瞬间导入SQL Server实验案例. 本实验将使用5中方法完成这个过程,并详细记录各种方法所耗费的时间.所用到工具为Visual Studio 2008和SQL Server 2000.SQL Server 2008,分别使用5中方法将100万条数据导入SQL Server 2000与SQL Serv…
想必每个DBA都喜欢挑战数据导入时间,用时越短工作效率越高,也充分的能够证明自己的实力.实际工作中有时候需要把大量数据导入数据库,然后用于各种程序计算,本文将向大家推荐一个挑战4秒极限让百万级数据瞬间导入SQL Server实验案例. 本实验将使用5中方法完成这个过程,并详细记录各种方法所耗费的时间.所用到工具为Visual Studio 2008和SQL Server 2000.SQL Server 2008,分别使用5中方法将100万条数据导入SQL Server 2000与SQL Serv…