频繁写数据库

tyx06 2006-05-11 06:07:45
C# 几个客户端频繁写一个读写同一个表.这个表大概200万条记录。发现写的速度相当的慢。
有什么好的方法提高效率?
特别发现是一台机子写操作的时间,别的客户端,读的时间就更长了。

注意:必须频繁的写数据,已经加了读的索引了。
...全文
167 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
winston8307 2006-05-12
  • 打赏
  • 举报
回复
建临时表
C_SHAPE_STUDY 2006-05-12
  • 打赏
  • 举报
回复
写的话应该跟表大小没多大关系,但是跟索引关系就比较密切
读时取批数据到临时表比较好
我看你有戏 2006-05-12
  • 打赏
  • 举报
回复
如果读写的事务有混淆,很容易死锁。

说得有道理
tyx06 2006-05-12
  • 打赏
  • 举报
回复
首先谢谢上面的朋友的回答。
我的是C/S结构的10个客户端以上。
1、每个客户端我总是打开着的连接。就一直没有关闭。不知这样有多大影响?
2、如果用存储过程,如果频繁的写,服务器的CPU资源就马上升到80%以上。
3、我当前的方法是用SqlDataAdapter.Update()方法提交保存到数据库中。是否有更好的办法?
4、没有使用事务。
Eallies 2006-05-11
  • 打赏
  • 举报
回复
不知道你有没有使用事务,仔细检查一下代码。如果读写的事务有混淆,很容易死锁。
200万不算多。
烤火的鱼 2006-05-11
  • 打赏
  • 举报
回复
用储存过程,通过多线程处理。频繁的写操作最好写到储存过程中,一来减少数据在服务器、客户端来回浪费时间,二来服务器运算速度快,也不会丢失数据。
51dianying 2006-05-11
  • 打赏
  • 举报
回复
200万条记录并不算多。

看一下程序代码,是否有未及时关闭的连接。
看一下表数据本身,常修改的分表出来。历史定单什么的,不会修改的数据按年份成别的表存储。
索引也有很大关系,频繁修改,索引要经常变动,时间自然要长些。
还有好多因素,比如数据库文件增长的比例,不妨一次设置的大些,省得数据库总需要另声明内存。等等。
Knight94 2006-05-11
  • 打赏
  • 举报
回复
是否考虑把读的数据,和写的数据分开,即读的数据来源于视图,而写的数据直接对数据表操作。
antoniusguo 2006-05-11
  • 打赏
  • 举报
回复
200万,索引建太多??
cqq 2006-05-11
  • 打赏
  • 举报
回复
200万,咋那么大呢? 把一些不用的或者一些历史数据处理一下吧。

那么多数据, 看着就吓人

110,539

社区成员

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

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

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