本帖最后由 s208ping 于 2010-06-21 14:35:45 编辑

解决方案 »

  1.   

    表中有1200w条数据,sql语句再优化也没用。加上Fulltext才是王道。
    http://www.cnblogs.com/digjim/archive/2006/09/27/516608.html
      

  2.   

    索引已经有了,不然也不会有“contains(A.OfferTitle,'gps')”
      

  3.   

    或者大侠们告诉我怎么删除某个日期以前的数据会快点,我用delete删老超时
      

  4.   

    慢关键是1200W的表连join了两次,笛卡尔一下非常惊人既然你前面是top 100,那么可以考虑先过滤一部分数据,再去join
      

  5.   

    你这个优化语句意义不大了,要对数据库和表做优化,建立索引是第一步,其次就是一些小的改进
    比如避免多表连接,把gid,zoneid,creditIndex放在A表中,对大表做分区视图等等
      

  6.   

    按日期做分区视图,把数据分散到n个表中,要删哪段的数据直接drop表再重做视图即可
      

  7.   

    A表返回所有列是一定要这样么?SQL0几的
      

  8.   

    建立反转索引试试
    http://www.360doc.com/content/10/0519/00/1121193_28314860.shtml
      

  9.   

    contains(A.OfferTitle,'gps') 性能瓶颈在这里where A.OfferTitle like '%gps'  这样是可以用到索引的
      

  10.   


    列都是必须的,
    sql2005的
      

  11.   

    哇塞~~ 
    百量数据,两个左关联,一个 * ,一个全文索引。看你条件中也没有关于 B,C 表的条件过滤,那你可以把左关联去掉,使用 CreditIndex=(select C.CreditIndex from C where CID=ACID),的方式 试试。
      

  12.   

    先条件A表数据,再left B表,C表