这样update会影响速度吗? 我的想法是分开建表,学生选课放在一张表里,统计总人数放在另一张表里,通过建立触发器,当前一张表有数据插入则自动更新统计表里的选课总人数 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 几千人同时在选课,数据库不慢的话,网络也会死掉. 几千人同时选择某一门课的几率太小,从某种程度上可以说用不着考虑这样的情况。如果真的要解决它,主要看你怎么构造数据访问层来提高运行效率,最好的情况是建立单用户持久连接,并对该记录更新情况分批提交,几千条这样的记录可瞬间完成,但是会不会给你的系统带来其它问题就不好说了,要求对该字段的实时性较低,更新的同时没有对该字段的其它操作,视情况而定。如果以上满足不了,就只能考虑别的情况,数据要求实时性高的话就只能更新后立即提交,不过性能会大大降低。=======================================================================================对某个记录特定字段的内容更新1000次:1.如果分为1000次提交,可能耗时15秒以上;2.如果1000次更新后,1次提交,可能耗时小于1秒。每一次更新提交都会带来内存空间(涉及数据回滚段)的分配与释放,第一种情况下会带来1000次分配和1000次资源释放问题;第二种情况下,可以这样理解,1000次更新只需一次分配,这1000次操作是对同一内存空间进行操作,就像编写程序时写的临时变量,而提交时也只需要一次资源释放花费。=======================================================================================顺便说一下二楼的,建立触发器会增加资源开销花费,比楼主直接写的性能还要低。 =======================================================================================对某个记录特定字段的内容更新1000次:1.如果分为1000次提交,可能耗时15秒以上;2.如果1000次更新后,1次提交,可能耗时小于1秒。每一次更新提交都会带来内存空间(涉及数据回滚段)的分配与释放,第一种情况下会带来1000次分配和1000次资源释放问题;第二种情况下,可以这样理解,1000次更新只需一次分配,这1000次操作是对同一内存空间进行操作,就像编写程序时写的临时变量,而提交时也只需要一次资源释放花费。=======================================================================================这段我喜欢,谢谢了。 不过,触发器在服务器端,对网络和服务器影响应该不会太大,既然是网上选课,就不可能会同时的在一个小时间段里提交1000笔数据,所以注定要每笔每笔的执行,按楼上讲的1000笔同时提交是不可能的事情了,还是要带来1000次分配和1000次资源释放... 我觉得2楼的还行的通,我自己用过在近端跨网域Insert数据的时候(一个小时左右insert20W笔,这些数据是多台电脑上的多个excel上读取的,所以还有网络连接速度的影响),用触发器做统计,对速度影响和没有触发器的时候差的不算多...我是菜鸟,其他高手有什么高见,可以发表,大家学习.... 使用sql load的一点困惑 关于ORACLE11G模糊查询的疑问 Oracle中case语句与decode()方法的区别? 开发人员----》DBA或者数据库系统工程师发展 求oralce 10g下正则表达式 Oracle视图支持传参,这个问题就好办了。 会日语又会oracle的请进 关于imp 高分求oracle9i下载! 从Oracle中取数据的格式(编码?)问题 ORACLE left诡异问题 一个较难的SQL问题,如何写?大家帮忙了 谁能告诉我如何才能查看到数据库中当前游标的数量呢?还有什么原因造成的超出游标的最大数目呢
如果真的要解决它,主要看你怎么构造数据访问层来提高运行效率,
最好的情况是建立单用户持久连接,并对该记录更新情况分批提交,几千条这样的记录可瞬间完成,但是会不会给你的系统带来其它问题就不好说了,要求对该字段的实时性较低,更新的同时没有对该字段的其它操作,视情况而定。
如果以上满足不了,就只能考虑别的情况,数据要求实时性高的话就只能更新后立即提交,不过性能会大大降低。
=======================================================================================
对某个记录特定字段的内容更新1000次:
1.如果分为1000次提交,可能耗时15秒以上;
2.如果1000次更新后,1次提交,可能耗时小于1秒。
每一次更新提交都会带来内存空间(涉及数据回滚段)的分配与释放,第一种情况下会带来1000次分配和1000次资源释放问题;第二种情况下,可以这样理解,1000次更新只需一次分配,这1000次操作是对同一内存空间进行操作,就像编写程序时写的临时变量,而提交时也只需要一次资源释放花费。
=======================================================================================
顺便说一下二楼的,建立触发器会增加资源开销花费,比楼主直接写的性能还要低。
对某个记录特定字段的内容更新1000次:
1.如果分为1000次提交,可能耗时15秒以上;
2.如果1000次更新后,1次提交,可能耗时小于1秒。
每一次更新提交都会带来内存空间(涉及数据回滚段)的分配与释放,第一种情况下会带来1000次分配和1000次资源释放问题;第二种情况下,可以这样理解,1000次更新只需一次分配,这1000次操作是对同一内存空间进行操作,就像编写程序时写的临时变量,而提交时也只需要一次资源释放花费。
=======================================================================================
这段我喜欢,谢谢了。
我觉得2楼的还行的通,我自己用过在近端跨网域Insert数据的时候(一个小时左右insert20W笔,这些数据是多台电脑上的多个excel上读取的,所以还有网络连接速度的影响),用触发器做统计,对速度影响和没有触发器的时候差的不算多...我是菜鸟,其他高手有什么高见,可以发表,大家学习....