200 分求助?

linzsoft 2004-10-17 08:50:41
要做一套 C/S 系统,数据库是 Sql Server 2000

要求:数据库中有如干个表,其中几个表平均每天的数据增改量为 1000 条,两个月后初步估计在5 - 8 万条数据左右。

请问:
一:这种情况下,设计数据操作层,采用 ADO.NET 好还是 直接采用 Sql 语句好?
二:如果我把 10 万条左右的数据一次读到 DataSet中,那么添加,删除,修改的时候是不是会很慢?能不能提高速度?
三:这种情况下我想采用临时表,那是在数据里设置临时表还是采用DataSet中采用临时表,如何实现?
四:谈谈大家设计数据操作层时的经验。
...全文
269 30 打赏 收藏 转发到动态 举报
写回复
用AI写文章
30 条回复
切换为时间正序
请发表友善的回复…
发表回复
长江 2004-10-27
  • 打赏
  • 举报
回复
点击父表,子表也可以限定记录的
Uncommon 2004-10-18
  • 打赏
  • 举报
回复
说一下我的想法
一 、对于大量频繁的数据处理,应该采用存储过程。
有很多好处,1、处理效率高。
2、将实现的逻辑与代码剥离,当结构发生变化时,修改存储过程即可。
缺点:存储过程和触发器在移植时可能会有困难,例如SQL 2000--->Oracle
二、楼主开发的是C/S系统。那么客户端也许要装SQL的客户端建接口用户授权等
(我以前的系统就是如此)。
解决办法:1、采用WebService 将连接参数等设置好,建立不同的增、删、改的方法
调用不同的存储过程。客户端程序只需要连接WebService,执行不同的方法即可。
三、DataSet可以作为参数传递给WebService ,因此代码简洁明了。
四、我目前项目大体就是采用如上方式
数据库:Oracle 9.2.0
数据表:近百个
目前数据量:近千万条。
运行时间:11个月,一切正常
foxlt 2004-10-18
  • 打赏
  • 举报
回复
用分合除法。
trh 2004-10-18
  • 打赏
  • 举报
回复
直接用sql吧,多省事
yydy 2004-10-18
  • 打赏
  • 举报
回复
10万条 读取的时候不是一下子都读取过来的 这个应该不用你做控制 sql server 或者 你的开发工具的机制会帮你处理好的
mbh0210 2004-10-18
  • 打赏
  • 举报
回复
关注中。。。。
tkss 2004-10-18
  • 打赏
  • 举报
回复
学习
happyjun2000 2004-10-18
  • 打赏
  • 举报
回复
如果我把 10 万条左右的数据一次读到 DataSet中
那一定是很耗内存呀
wjcking 2004-10-18
  • 打赏
  • 举报
回复
up
linzsoft 2004-10-18
  • 打赏
  • 举报
回复
根本问题是项目是Winform,我没帮法不读取这10w条数据,它是个子表,客户要当点击父表的字段的时要及时显示字表的内容,所以我想采用本地数据库和数据库服务器综合使用的方法,每次启动软件先将基本数据填充到本地数据库,而客户端情况辨别是否需要读取这个字表,然后再做处理,说用存储过程的朋友能不能解释存储过程的优点?存储过程能不能判断主键冲突类似的问题?
BearRui 2004-10-17
  • 打赏
  • 举报
回复
应该没必要每次都读取10 万条左右那么多吧,不会每次都要全部用到这10 万条吧!!!

只把需要的读进dataset,如果10 万条全读到dataset,会比较慢的!!!
xhl863 2004-10-17
  • 打赏
  • 举报
回复
我还是觉得用临时表比较好
orjava 2004-10-17
  • 打赏
  • 举报
回复
1.用存储过程吧!
2.为什么要一下了读入 那么多数据然后再操作呢?何不用条件过滤一下。也可以用 XML生成DataSet、
结构。用DataReader读入,然后操作,但是 DataAdapter的操作要自已写。
51106354 2004-10-17
  • 打赏
  • 举报
回复
数据分别读取不就行了,用到什么就加载什么,然后在后台中整和到本地的DATASET中,不过还是对客户机的要求比较高!!!建议不要使用.NET中的内存管理机制.还是自己写吧!!!!

建议分批加载数据,考虑到客户的需求应使用多线程以及堆栈技术啦尤其对压栈和数据大小要进行细致的调试
Zh.晨光 2004-10-17
  • 打赏
  • 举报
回复
是呀,建议分开使用存储过程。
xinbin1122 2004-10-17
  • 打赏
  • 举报
回复
ado.net and sql 都要用到
肯定慢死了!不要这样做,要修改直接用sql 或者存储过程就可以了
你的情况,临时表也不必要用,直接查询,选择出需要的来在进行修改,如果一定要用临时表,也不要用dataset,除非你的内存大死了,而且这样数据交换量会非常慢,处理10万条,这绝对不是好办法
liuchengit 2004-10-17
  • 打赏
  • 举报
回复
加载数据的时候还是按照需要在加载吧?这样不会占用太多的内存空间,运行会很快
liuchengit 2004-10-17
  • 打赏
  • 举报
回复
这个问题我喜欢,,我不过这样大的数据量SQL Server能不能应付得了呢?如果能的话我还是觉得用数据库本身的能力比较好。如果用dataset做的建议多次的加载数据,如果一次性加载,加载过程很漫长。程序运行的时候也很慢。
3ss 2004-10-17
  • 打赏
  • 举报
回复
用sql的话加个数据分割
jcaomao 2004-10-17
  • 打赏
  • 举报
回复
你可以做几个实体类,实体类中有些方法和属性作为限制条件。

10万条都放到dataset会很慢的,我试过。对内存要求太高了。

可以用临时表啊, 用个select语句,加上where条件不就行了。

我觉得具体该怎么用应该根据实际情况。
加载更多回复(10)

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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