1.同时向数据库插入海量的数据可能会引发什么错误???
2.并发怎么处理???说明一下,第二道题目要用加锁的方式实现,能给一个例子最好,因为我不知道该怎么加锁(不知道是用c#里面的代码操作还是直接写sql语句加锁)。。谢谢了。。

解决方案 »

  1.   

    两个算一个问题吧,都是并发量大会引起的问题,差不多就是脏读幻读不可重复读balabalabala什么的,等楼下给具体解决方案
      

  2.   

    同时向数据库中插入海量数据:
    1.若通过网络插入,若网络环境不理想,很可能导致数据插入失败;
    2.同时在本地插入数据时,还要注意插入的逻辑,有可能导致死锁的发生并发怎么处理:
    数据库加锁控制。
    请参考:http://www.cnblogs.com/lingmaozhijia/articles/1339222.html
      

  3.   

    不好意思,还有一个问题刚刚想起来:(>_<)关于购物车的,面试人员说:“用cookie,session,database如何很好的做一个数据库,因为像淘宝那种没有登录页可以购物的,说明用到了cookie,而session在服务器繁忙的情况下可能丢失,所以这三者联合起来做一个购物车该怎么做??”说明一下:我没有做过购物车,所以可能描述的不是很清楚,大概就是如何让这三者配合做一个最优秀的购物车吧!!!
      

  4.   

    1.问题太大。
       最直接的:服务器负担过重。
       数据方面的:可能造成死锁。
    2.通过事务来处理,根据处理过程中表的相关性,设置相应的事务隔离级别。
       例子:更新库存,入库A产品
          SET TRANSACTION ISOLATION LEVEL SERIALIZABLE --设置最高事务隔离级别
          begin transaction
           读库存中a产品数量  --设置了最高隔离级别后,事务未提交,别的用户可读此表,
                   -----但更新不了数据
            新的数量=读出的数量+入库数量
            以新数量更新库存表
           commit --提交事务  提交了事务后,别的用户才能更新库存表
           
        
      

  5.   

    1 如何锁一个表的某一行A 连接中执行SET TRANSACTION ISOLATION LEVEL REPEATABLE READbegin transelect * from tablename with (rowlock) where id=3waitfor delay '00:00:05'commit tranB连接中如果执行update tablename set colname='10' where id=3 --则要等待5秒update tablename set colname='10' where id<>3 --可立即执行2 锁定数据库的一个表SELECT * FROM table WITH (HOLDLOCK) 
    注意: 锁定数据库的一个表的区别SELECT * FROM table WITH (HOLDLOCK) 
    其他事务可以读取表,但不能更新删除SELECT * FROM table WITH (TABLOCKX) 
    其他事务不能读取表,更新和删除
      

  6.   

    1.同时向数据库插入海量的数据可能会引发什么错误???
      A. 因是海量数据,数据库数据文件,日志文件可能过快过大增长,磁盘空间不足.
      B. 过多数据在缓存中,可能出现内存不足.
      C. 拥有排他锁的进程,可能因执行时间过长,出现TIMEOUT错误.
      D. 被阻塞的进程可能因等待逾时出现TIMEOUT错误.2.并发怎么处理???
      根据实际需要,设置事务隔离级别.SQL2000有4个,SQL2008有6个.