我想请问下 insert 10W条数据与select 10W条数据
为什么insert所花时间远远大于select呢?
我想指导其中的原理 不知道哪位大侠明白 指教下。

解决方案 »

  1.   

    insert into是表存在 然后插入数据 扫描次数多select..into是创建新表 扫描一次
      

  2.   

    那请问
    一条UPDATE 语句 执行10W条数据 

    10W条UPDATE语句执行10W条数据 他们的差别又在哪里
    一条UPDATE 语句 执行10W条数据可能只需要花费几秒中或是几秒
    10W条UPDATE语句执行10W条数据 确要花费几分钟能不能像qianjin036a给出一个理论上的解释 
      

  3.   

    那请问
    一条UPDATE 语句 执行10W条数据  

    10W条UPDATE语句执行10W条数据  他们的差别又在哪里
    一条UPDATE 语句 执行10W条数据可能只需要花费几秒中或是几秒
    10W条UPDATE语句执行10W条数据 确要花费几分钟能不能像qianjin036a给出一个理论上的解释
    有人知道不?
      

  4.   


    一条 update 语句,编译一次,更新一条也是编译一次,更新10W条也是编译一次,
    但是 10W 条 update 语句,要编译 10 W 次,你说哪个花时间多?
      

  5.   

    是啊
    我也都拼接成一条SQL执行的
    但是客户那边的IT问我为什么执行5W条数据2秒不到(一条SQL执行5W条数据) 但FTP传输工具往数据库写数据却要花上几分钟(5W条SQL语句执行5W条数据)。我也明白后者肯定花费时间要多,但主要是不明白为什么,也无法跟他解释
    呵呵 谢谢你的指教!
      

  6.   

    你之前说到的编译问题,
    10W条编译10W次
    那如果写成存储过程 
    之前我说的那种情况1条SQL 更新10W条数据 

    10W条数据更新10W条数据都写成存储过程
    当程序去调用他们的时候是不是执行速度差不多呢?
    因为我知道存储过程都是预编译的,但不知道是不是可以这样理解。
    (当然这种做法不合理,我只是想弄明白)
      

  7.   

    你之前说到的编译问题,
    10W条编译10W次
    那如果写成存储过程  
    之前我说的那种情况1条SQL 更新10W条数据  

    10W更新语句都写到成存储过程
    当程序去调用他们的时候是不是执行速度差不多呢?
    因为我知道存储过程都是预编译的,但不知道是不是可以这样理解。
    (当然这种做法不合理,我只是想弄明白)