--TRY
create index index_name on  dv_topic(boardid)
create index index_name on  dv_board(boardid)
create index index_name1on  dv_topic(locktopic)
select top 8 a.topicid,a.title,a.Boardid,b.boardtype,a.dateandtime from dv_topic as a,dv_board as b 
where a.boardid=b.boardid and a.boardid not in(777,444,104) and a.locktopic=0 order by a.dateandtime desc 

解决方案 »

  1.   

    --从语句上看没什么可优化的,尝试对dv_topic和dv_board表的boardid分别建立索引.
    select top 8 a.topicid,a.title,a.Boardid,b.boardtype,a.dateandtime 
    from dv_topic as a,dv_board as b 
    where a.boardid=b.boardid and a.boardid <>777 and a.boardid <>444 and a.locktopic=0 and a.boardid <>104 
    order by a.dateandtime desc 
      

  2.   


    select top 8 a.topicid,a.title,a.Boardid,b.boardtype,a.dateandtime from dv_topic as a,dv_board as b where a.boardid=b.boardid and a.boardid  not in(777,444,104)  and a.locktopic=0  order by a.dateandtime desc 
      

  3.   


    --TRY
    create index index_name on  dv_topic(boardid)
    create index index_name on  dv_board(boardid)
    create index index_name1on  dv_topic(locktopic)
    select top 8 a.topicid,a.title,a.Boardid,b.boardtype,a.dateandtime from dv_topic as a,dv_board as b 
    where a.boardid=b.boardid and a.boardid not in(777,444,104) and a.locktopic=0 order by a.dateandtime desc 
      

  4.   

    create index index_name1on  dv_topic(locktopic) 这个是不是写错哪里了
      

  5.   

    --on 寫在一起了~~
    create index index_name on  dv_topic(boardid)
    create index index_name on  dv_board(boardid)
    create index index_name1 on  dv_topic(locktopic)
    select top 8 a.topicid,a.title,a.Boardid,b.boardtype,a.dateandtime from dv_topic as a,dv_board as b 
    where a.boardid=b.boardid and a.boardid not in(777,444,104) and a.locktopic=0 order by a.dateandtime desc 
      

  6.   

    语句好像没有什么可优化的。使用in运算和你写的语句效率差不多,只不过写法稍微简练一点而已。建立索引后,当你查询的时候sql会自动使用索引,当然你也可以制定使用索引了。
      

  7.   

    刚测试了一下,建立了索引和没有没建立索引的CPU占用率差不多,还没有没其他的方法优化一下????