none
SQL2005 效率问题,高手请进 RRS feed

  • 问题

  •  

     表中有100多万行数据,有某些列需要根据别视图的表更新,这个视图里有这张表的所有数据

     问题是:我是全部删除表中数据再添加,还是直接更新,哪个效率更高。

    谢谢!

    2008年7月17日 3:25

答案

  • 時間長,大數據量要用循環更新處理

    更新的列,不要建索引..
    索引只會提高select效率,同時降低delete\update的
    效率,體現在索引頁的分拆和重建索引
    2008年7月17日 4:15
    版主
  • 你可以用“导入导出数据”工具来做,效率最高,而且基本不会产生问题

     

    2008年7月18日 1:31

全部回复

  •  

    直接更新吧,索引问题考虑好。
    2008年7月17日 3:29
  • 直接更新..

    -------

    drop table 表
    select * into 表 from 視圖
    2008年7月17日 3:52
    版主
  •  

    索引用得上吗?因为我要更新的列是没有值的列,所以要用到 is null 条件,再有就是主键列。如果这列有值我是不用更新。
    2008年7月17日 3:54
  •  中國風 写:
    直接更新..

    -------

    drop table 表
    select * into 表 from 視圖

     

     

    drop table 表
    select * into 表 from 視圖

    好像效率不怎么样,SQL创建对象时很

    耗性能的。

    我想还没有清空表,再插放数据效率高呢。

    是这样的吧?

     

    2008年7月17日 4:00
  •  cpcZane 写:

     

    直接更新吧,索引问题考虑好。

     

    我试了一下,运行了30多分钟,还没有搞定,我放弃啦,取消了执行。

     

    100多万行的数据进行更新也用不了30多分钟吧?

     

    请指点,应该做那方面的工作,能提高效率。

    2008年7月17日 4:04
  • 時間長,大數據量要用循環更新處理

    更新的列,不要建索引..
    索引只會提高select效率,同時降低delete\update的
    效率,體現在索引頁的分拆和重建索引
    2008年7月17日 4:15
    版主
  • 用循環,你的內存吃不消的...
    2008年7月17日 4:28
    版主
  • 能否把你大概执行的更新Sql语句贴出来?

    2008年7月17日 5:15
  • Also post table schema with index info if possible.

    2008年7月17日 14:23
  • 你可以用“导入导出数据”工具来做,效率最高,而且基本不会产生问题

     

    2008年7月18日 1:31