填充写入datatable的速度问题(100分)

hb1122 2009-11-11 11:19:26
加精
程序原理
1、按行读取文件文本流
2、从流中获取用户名、帐号、信息
3、判断数据表中是否存在该信息,如存在,则忽略,如不存在,则写入数据库
4、至文件尾,结束

数据表中存在三个字段,user_name char(10), user_num char(10), user_information nvarchar(max)
使用的SQL SERVER,当用sqldatareader读取判断,sqlcommand查询写入数据时,每分钟,可成功读取35000行
当用sqldataadapter填充数据表至dataset.table("user"),然后从datatable中查找,不存在的记录写入datatable,至文件尾时,sqldataadapter.update至数据表时,每分钟成功读取5000行

请问,有让使用datatable操作时加速的方法吗?
万分感谢 !
...全文
1931 59 打赏 收藏 转发到动态 举报
写回复
用AI写文章
59 条回复
切换为时间正序
请发表友善的回复…
发表回复
liwei4026892 2010-09-21
  • 打赏
  • 举报
回复
学习中
a343536 2010-07-28
  • 打赏
  • 举报
回复
学习中。。。
xiaoyaophoto 2010-05-21
  • 打赏
  • 举报
回复
不清楚啊!我这边有个问题大家帮我解决一下啊!我的网站上播放图片的时候在暗的地方出现白点是怎么回事啊,大家帮我解决一下啊!
http://sheying.yahoopc.cn/zpinfo.asp?i=2259这个是网址大家看一下帮我解决啊!!谢谢了!!
我也尝试过更换图片格式,但是还是不行啊!大家帮我想想办法啊!很着急的
liaobc 2010-04-08
  • 打赏
  • 举报
回复
mark
decacrf 2010-03-03
  • 打赏
  • 举报
回复
fsfs mark...
a124819202 2010-01-22
  • 打赏
  • 举报
回复
路人很多···
hzxsasdfgh 2009-11-28
  • 打赏
  • 举报
回复
marks
.将 2009-11-25
  • 打赏
  • 举报
回复
路过此地
hb1122 2009-11-14
  • 打赏
  • 举报
回复
的确是索引的问题,LS的强人们,不好意思!
glibfox 2009-11-13
  • 打赏
  • 举报
回复
学习了
HawKHB 2009-11-13
  • 打赏
  • 举报
回复
mark~
风骑士之怒 2009-11-13
  • 打赏
  • 举报
回复
up
边城的刀声 2009-11-13
  • 打赏
  • 举报
回复
给表加索引,直接存储过程
解释多余的 2009-11-13
  • 打赏
  • 举报
回复
不怎么会 友情帮顶
wanchor 2009-11-13
  • 打赏
  • 举报
回复
提高配置,如扩充内存,
jhf_2002 2009-11-12
  • 打赏
  • 举报
回复
在多说一句:对与这种规模比较大的处理数据的过程,要思考以集合的方式处理数据,而不要以程序的思路一条条的过滤数据处理,这样才能提高程序性能!
jhf_2002 2009-11-12
  • 打赏
  • 举报
回复
针对这样的问题:
1.先在数据库中建一个UserTemp表(用于在数据库中暂存数据),结构于你的源表相同;
2.构造内存表DataTable,将文本中的数据先插入到DataTable中;
3.使用SqlBulkCopy类的方法将构造好的DataTable中的数据先导入到UserTemp表中;
4.使用Delete语句删除UserTemp中存在源表的记录,
如delete from UserTemp where existed (select * from TUser where Name = UserTemp.Name and No = UserTemp.No and Info = UserTemp.Info);
5.使用Insert into语句将UserTemp表中剩下的记录导入到源表中:
Insert into TUser select * from UserTemp;
6.Drop掉UserTemp表;
7.OK了!
compassion 2009-11-12
  • 打赏
  • 举报
回复
我仅说明可以不使用HashTable.DataTable本身就有这个功能
DataTable dt = new DataTable("User");
dt.Columns.Add("UserName", typeof(string));
dt.PrimaryKey = new DataColumn[] {dt.Columns["UserName"]};
... 数据填充到dt中...
DataRow dr = dt.Rows.Find(userName);
if (dr == null)
{
写入数据库
}
hb1122 2009-11-12
  • 打赏
  • 举报
回复
呃,居然推荐了!
努力学习LS大大们的方法!
烈火蜓蜻 2009-11-12
  • 打赏
  • 举报
回复
希望对你有帮助,别忘记了给我加分,哈哈
加载更多回复(36)
本课程是PowerBI系列课程之DAX函数专题讲解,包含以下内容 1.  DAX函数基础知识什么是DAX函数数学函数:ABS、DIVIDE、MOD、RAND、ROUND、FIXED等日期和时间函数: CALENDAR、CALENDARAUTO、MONTH、YEAR、DATE、DT等信息函数:USERNAME、USERPRINCIPALNAME、HASONEFILTER、HASONEVALUE、ISFILTERED、ISCROSSFILTERED、ISINSCOPE、ISBLANK、SELECTEDMEASURE、SELECTEDMEASURENAME等逻辑函数:AND、OR、IF、IFERROR、SWITCH、TRUE、FALSE、COALESCE(官方文档含糊不清-结合实例)等关系函数:CROSSFILTER、RELATED、RELATEDTABLE等筛选器函数:FILTER、CALCULATE、ALL、ALLEXCEPT、ALLSELECTED、EARLIER、KEEPFILTERS、REMOVEFILTERS、SELECTEDVALUE、LOOKUPVALUE等父子函数:PATH、PATHCONTAINS、PATHITEM、PATHLENGTH等统计函数:AVERAGE、COUNT、MAX、MIN、SUM等迭代统计函数:AVERAGEX、COUNTX、MAXX、MINX、SUMX、RANKX等表函数: FILTERS 、ADDCOLUMNS、 SELECTCOLUMNS、 CROSSJOIN、 EXCEPT、 GENERATE、 GROUPBY、 SUMMARIZE、 SUMMARIZECOLUMNS、 TOPN、 TREATAS、 UNION、 VALUES、DISTINCT、DATATABLE、NATUALINNERJOIN、NATRUALLEFTOUTERJOIN等文本函数: EXACT、MID、 FIND、 LEN、 REPT、 LOWER、 UPPER、 UNICHAR等时间智能函数:DATEADD、DATESMTD、FIRSTDATE、LASTDATE、SAMEPERIODLASTYEAR等财务函数:2020.7之后发布的,和Excel中财务函数相似,网页和demo pbix简单介绍其他函数:BLANK、ERROR、IFERROR等 DAX函数初体验:Max、Sum、Divide、if、Values等值函数表函数以及表和列的概念DAX函数术语、语法、运算符DAX运算符和引擎中字母大小写问题DAX编程注释和快捷键DAX与Excel函数的共同点和区别(PPT)DAX、xmSQL与SQL表达式的区别(PPT)DAX函数的自学途径 2.  PowerBI中数据建模知识维度建模关系传递和交叉筛选器方向-理解表关系(1v1, 1vM, Mv1,MvM)两个方向上应用安全筛选器关闭关系自动检测新建计算列新建度量值新建计算表:辅助表(五种方式)、日历表数据类型讲解数据格式控制:%、$、千位隔符、小数位、日期格式Format函数自定义数据格式Convert函数做数据类型转换解决中文数字单位 万 的显示问题Date和DT函数定义固定日期值显示和隐藏列DAX代码析器阅读DAX表达式方法:从上至下、由内到外(注意Calculate的计算顺序)调试DAX表达式方法:布输出或VAR输出3.  DAX函数原理 Vertipaq列式数据库原理理解度量值和计算列理解行上下文和筛选上下文:Calculate示意图行上下文中使用VAR替代EARLIERVAR变量在定义时的上下文中计算VAR变量是采用惰性计算(使用时计算)理解扩展表和RELATED函数理解数据沿袭Lineage 4.  开始感知DAX函数的强大DAX函数实现特殊符号的使用DAX函数实现切片器默认当前月或天DAX函数使切片器默认代表无任何选择DAX函数使切片器仅显示有数据的选项DAX函数使切片器反向筛选和计算DAX函数使切片器之间取并集DAX函数使关系中多端的切片器筛选一端的切片器 DAX函数实现年月共同决定数据排序DAX函数实现动态图表标题DAX函数实现动态图表配色和图标DAX函数实现动态纵坐标DAX函数实现动态横坐标5.  理解重点DAX函数重中之重FILTER 和 CALCULATE和CALCULATETABLE详解调节器REMOVEFILTERS和ALL、ALLEXCEPT函数调节器ALL、ALLSELECTED和ISINSCOPE占比析调节器AllSELECTED和KEEPFILTERS的比较调节器USERELATIONSHIP激活关系调节器TREATAS动态建立关系调节器CROSSFILTER改变筛选器方向重点之ISFILTERED和ISCROSSFILTERED重点之HASONEVALUE和ISINSCOPE的区别重点之表函数SELECTEDCOLUMNS和ADDCOLUMNS重点之表函数NATUALINNERJOIN和NATRUALLEFTOUTERJOIN重点之表函数FILTERS和VALUES比较重点之VALUES和DISTINCT的区别重点之组函数SUMMARIZECOLUMNS详解重点之函数LOOKUPVALUE vs RELATED vs VLOOKUP 重点之集合函数UNION、INTERSECT、EXCEPT重点之集合函数CROSSJOIN和GENERATE 笛卡尔积重点之值合并、列合并、表合并CONCATENATEX重点之BLANK行产生的原因和BLANK相关函数重点之COALESCE函数处理空重点之FIRSTNOBLANK和FIRSTNOBLANKVALUE函数重点之使用VAR变量表中的列重点之Error和IfError函数6.  实际案例-日期时间和时间智能相关关键点-日期表和事实表关联问题时间智能-同比环比析时间智能-累计聚合、滚动聚合、移动平均时间智能-期初期末库存析日期析-计算任意所选月份的环比日期析-周的同比环比和周聚合日期析-指定月份的同比环比和季度环比日期析-计算季末或季末月份的数据日期析-趋势图中根据最近月份取TopN日期析-动态指定某个日期区间析日期析-动态任意区间段做数据对比日期析-实现两个日期列的范围筛选日期析-按工作日计算日期差日期析-计算最近两次购买日期差日期析-根据历史数据做销售预测日期时间函数和时间智能函数使用总结7.  实际案例-DAX函数进阶进阶-解决列排序对计算的影响进阶-实现切片器筛选之间的OR逻辑进阶-矩阵Matrix中高亮显示最大值最小值进阶-DAX列转行 vs 矩阵列转行和逆透视进阶-非日期类型的累计聚合进阶-排名逻辑的4种实现-RANKX详解进阶-组内排名的实现和理解迭代函数进阶-TopN/BottomN和Others的实现进阶-TopN中实现动态指标进阶-TopN中实现N的动态进阶-组内动态TopN和Others 进阶-商品折上折-迭代函数SUMX详解 进阶-析客户购买行为进阶-找出无购买行为的客户进阶-客户购买商品关联度析 进阶-新客户析进阶-流失客户析进阶-回流客户析进阶-客户购买频次和区间析进阶-RFM客户价值析进阶-帕累托析进阶-盈亏平衡析报表性能优化思路(PPT)  
第1章 空 第2章 ASP.NET运行模型 21.如何在页面中应用javascript脚本-示例1 21.如何在页面中应用javascript脚本-示例2 22.如何实现从服务器端向页面动态添加javascript脚本-示例1 22.如何实现从服务器端向页面动态添加javascript脚本-示例2 24.如何处理多页面重定向到同一页面后的返回问题 25.如何用Response.Redirect方法传递汉字 29.如何利用输出缓存技术缓存整个页面 30.如何利用片段缓存技术对用户控件进行缓存 31.如何利用数据缓存技术提高程序的性能 33.如何实现当页面产生错误时重定向到自定义错误界面 35.如何在程序中读写Web.config文件 37.如何使用CSS文件定义控件的样式 38.如何启用和禁用ViewState保存状态信息的功能 39.如何应用IsPostBack控制页面的加载 41.如何使用Trace对象进行跟踪调试(页面级) 42.如何使用#Include语法将文件添加到页面 43.如何使用编程的方式处理异常信息 44.如何将网页错误信息写入事件日志 第3章 常用Web服务控件 46.如何使用Label控件动态显示文本信息 47.如何实现当鼠标移到控件时显示提示信息 48.如何在Web应用程序中实现快捷键功能(使用脚本实现) 48.如何在Web应用程序中实现快捷键功能(使用属性实现) 49.如何设置页面上控件的Tab键顺序 50.如何实现用回车键代替Tab键的功能 51.如何为按钮键添加消息框 52.Button、LinkButton和ImageButton服务控件的区别及应用 54.如何使用CheckBox和CheckBoxList控件(CheckBox示例) 54.如何使用CheckBox和CheckBoxList控件(CheckBoxList示例) 55.如何使用RadioButton和RadioButtonList控件(RadioButton示例) 55.如何使用RadioButton和RadioButtonList控件RadioButtonList示例) 56.如何使用Panel控件操作一组控件 57.如何使用Table控件组织页面的内容 58.如何实现DropDownList控件选项的添加、删除等操作 59.如何实现间接改变DropDownList控件的当前选项 60.如何实现两个或多个DropDownList控件的联动 61.如何实现ListBox控件选项的上移、下移、添加和删除操作 62.如何实现ListBox控件中选项的双击事件 63.如何动态设置ListBox控件中各选项的背景颜色 64.如何在页面中动态创建控件 65.如何为HTML服务器控件的事件添加自定义方法 第4章 验证控件 67.如何使用RequiredFieldValidator控件验证用户是否输入信息 68.如何使用RegularExpressionValidator控件验证E-mail地址和邮编等格式 69.如何使用RangeValidator控件验证输入的信息是否在指定范围内 70.如何使用CompareValidator控件对两个输入控件比较验证 71.如何使用CustomValidator控件自定义验证格式 72.如何使用ValidationSummary控件总结所有验证控件的错误信息 73.如何创建自定义功能的验证控件 74.如何禁用服务器控件的验证功能 75.如何控制页面部验证控件有效 76.如何实现控件即时验证功能 77.如何使用验证控件综合验证用户注册页面 78.如何验证DataGrid控件的编辑列 81.如何使用验证控件验证日期类型的输入(CompareValidator) 81.如何使用验证控件验证日期类型的输入(CustomerValidator) 81.如何使用验证控件验证日期类型的输入(RegularValidator) 第5章 高级Web控件 82.如何在网页中使用Calendar Web控件显示和选择日期 83.如何在Calendar Web控件中控制个别日的内容及显示 84.如何在Calendar Web控件中控制用户日期选定 86.如何使用XML控件显示XML文件和进行XSLT转换 87.如何使用AdRotator Web控件制作广告发布程序-示例1 87.如何使用AdRotator Web控件制作广告发布程序-示例2 88.如何创建用户控件 89.如何将Web窗体转换成用户控件 90.如何实现动态加载用户控件 92.如何使用TabStrip Web和MultiP

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧