解决方案 »

  1.   

    DELETE FROM T_IMSIPHONERELATIONS WHERE IMSI in (460002342342311,460002342342312) 
    OR TELEPHONE in (11111111111,22222222222)
    我怎么觉得你这语句有点逻辑问题?
      

  2.   

     主要是学习到了新的对应关系,要把新的这条对应关系里,A列或者B列里有重复的清除掉~然后把新的对应关系add进去。
    所以简单的方法就是把新的对应管理里的A B列都删一下。
      

  3.   

    DELETE 的动作是先 select 找到数据,在删除数据;所以创建索引可以帮助加快delete. 根据你的随机删除(random select)和15位bigint,我会优先考虑非聚集索引. 可以尝试2个non-cluster 或者一个combined non-cluster关于是否建立primary key 和 cluster index, 恐怕你会建立在IMSI 这列吧. primary key只是约束,不影响性能. cluster index是物理排序的,在一种情况下会影响性能,如果你随机  insert 而不是顺序insert,那么每次insert 后, cluster index都要排一次序, 会慢很多, 如果有non-cluster, cluster index 同时存在,就更慢了,这就是为什么insert 要停掉index. 同时cluster index帮助non-cluster 加快lookup, 而不用走heap SID lookup, 一定程度加快点delete 动作.
      

  4.   


    忘记说了,数据量在3千万条左右。A列建聚集索引合适吗?会不会比较大~我只是简单的了解了一下索引。问的不专业,不好意思,哦 数据量还是挺大的,那么可以按a列建立非聚集索引,然后再按b列也建立非聚集索引
      

  5.   


                   A列                        B列
    460002342342311,11111111111
    460002342342312,22222222222
    460002342342313,33333333333
    460002342342314,44444444444当我学习到新的对应关系,如 460002342342312,33333333333时,
    我会执行DELETE FROM T_IMSIPHONERELATIONS WHERE IMSI in (460002342342312) 
    OR TELEPHONE in (33333333333)这样的话,直接把2 3条删除,最后插入新的对应关系 460002342342312,33333333333
      

  6.   

    我会执行DELETE FROM T_IMSIPHONERELATIONS WHERE IMSI in (460002342342312) 
    OR TELEPHONE in (33333333333)你这个不应该是AND吗?
      

  7.   


    忘记说了,数据量在3千万条左右。A列建聚集索引合适吗?会不会比较大~我只是简单的了解了一下索引。问的不专业,不好意思,哦 数据量还是挺大的,那么可以按a列建立非聚集索引,然后再按b列也建立非聚集索引数据量大概在3千万条,我应该怎样建立主键、索引呢?
      

  8.   


    忘记说了,数据量在3千万条左右。A列建聚集索引合适吗?会不会比较大~我只是简单的了解了一下索引。问的不专业,不好意思,哦 数据量还是挺大的,那么可以按a列建立非聚集索引,然后再按b列也建立非聚集索引数据量大概在3千万条,我应该怎样建立主键、索引呢?其实不用建立主键也没关系,因为考虑到你会有删除操作,所以不建立主键,性能更高
      

  9.   

    WHERE IMSI in (460002342342312)  OR TELEPHONE in (33333333333)无论2个non cluster index, 或者一个combined non cluster index, 目的都是covered index. 我觉得如果是 OR的话,当IMSI符合条件sql就不去检查telphone了. 随意比较随机, 我会用两个 non cluster index. 除非你非常确定, 多数 delete 都是通过telephone这个条件删除的, 那么我会给一个 noncluster index ( tel, imsi), tel 置前