CustomizedField 表中有 FieldId(pk),FieldName,FieldType,OrderId 字段  目前有30条数据
CustomerField 表中有 CustomerFieldId(pk),FieldId(fk),CustomerId,FieldValue字段  目前有50万条数据要执行
select distinct f.FieldName,f.FieldType CustomizedField cf inner join CustomerField  f on cf.FieldId = f.FieldId order by OrderId 
的查询
请问如何来优化查询,
这里主要想问的是  2个表都没有建立索引,是否可以通过建立索引来解决查询效率问题??
在线等。

解决方案 »

  1.   

    (CustomerField f)表没有FieldName,FieldType 字段吧?是不是弄错了?
      

  2.   

    去掉排序,order by OrderId  
      

  3.   


    额 错了 应该是 
    select distinct f.FieldName,f.FieldType CustomizedField f inner join CustomerField cf on cf.FieldId = f.FieldId order by OrderId 
      

  4.   


    去掉之后在 我的电脑上 执行的时间是 5516ms
    加上的时候 时间是5125ms 
    效果差不多  OrderId 加上索引会不会好点 应该加什么样的索引比较好?
      

  5.   

    关键是这个表CustomerField 要用索引
      

  6.   


    你的CustomizedField 表中有 FieldId(pk)是主键,已经是聚集索引了,只有建唯一索引!
    FieldName和FieldType建唯一索引!
    这样会快点! 
      

  7.   

    FieldID上建立索引比较不错感觉。