几十万条记录同时(1秒内)插入同一个表,问如何处理
需求是这样的:
服务器是SQLSERVER2000,(其实数据库是ORACLE也一样)
并行用户有可能一秒内同时插入记录到同一表中达到上十万条,你可以把该服务器作为网络游戏服务器。
现在出现瓶颈,出现等待现象,我开始考虑用锁的方式但事实和理论上都说明不可行(锁对小批量数据还有效但数据量到达十万的时候可能无用,我也不能说清楚什么原因)。
现在的方法是准备磁盘I/O分开处理 ,将磁盘的读取和写入分开,但我不知道具体是 如何做,是如何解决几十万条记录同时(1秒内)插入同一个表,请高手指点???
--
需求是这样的:
服务器是SQLSERVER2000,(其实数据库是ORACLE也一样)
并行用户有可能一秒内同时插入记录到同一表中达到上十万条,你可以把该服务器作为网络游戏服务器。
现在出现瓶颈,出现等待现象,我开始考虑用锁的方式但事实和理论上都说明不可行(锁对小批量数据还有效但数据量到达十万的时候可能无用,我也不能说清楚什么原因)。
现在的方法是准备磁盘I/O分开处理 ,将磁盘的读取和写入分开,但我不知道具体是 如何做,是如何解决几十万条记录同时(1秒内)插入同一个表,请高手指点???
--
这么多连接对sql来言肯定是要锁表的(2000好像还没有行锁,应该先是块锁记不清了,不过应该可以调锁阀值)。oracle相对来说就没有这个问题。最后10w用户和10w纪录不是一个概念,如果一个用户插10W条数据就没有锁的问题,仅仅是生成索引,cpu,和io的问题了