请问各位大侠:
  我有一张表五百多万条记录,有四个列分别是:
ID,Surname,      Years,   Number
1  LANYON-PENNO 1891      1
2  KINCHETT 1868      3
3  CULLWICK 1910      5
我给第一个列做了一个非聚集索引,第二也是一个非聚集索引,第三个也做了一个非聚集索引但是使用了降序
当我查询的时候如:
select top 300 surname from english_surname where a like 'a%' order by number desc
花了我二十几秒,请问各位应该如何去优化呢?

解决方案 »

  1.   


    select top 300 surname from english_surname where a like 'a%' order by number desc
    --没有top写法
    这是oracle 板块 不是mssqlselect surname ,rownum 
    from english_surname
    where a like 'a%' and rownum<=300
    order by number desc
      

  2.   

    select top 300 surname from english_surname where a like 'a%' order by number desc建复合索引,create index xxx on english_surname(a, number);
      

  3.   

    a, number分别建上索引再试试