1.使用索引,在查询条件涉及的字段上建立索引
2.用行标识(ROWID)找单一行
3。每当可能时,使用UNION语句代替OR
4。在WHERE子句中避免使用NOT IN 或 HAVING,由使用NOT EXISTS子句代替
5。避免用LIKE运算
6。引用列时总是使用表的别名

解决方案 »

  1.   

    可考虑用空间换时间的作法,对于大文本的查询采用“倒排文件”的方法
    即:
    iid  ctext
    -------------------
    1    中国人民解放军
    2    空间换时间生成如:
    iid  csubtext
    -------------
    1    国人民解放军
    1    人民解放军
    1    民解放军
    1    ...
    2    间换时间
    2    换时间
    2    间
    为生成的表建立索引。如果服务器空间足够大,则在查询时目标明确,会非常快。只是一点建议。
      

  2.   

    回复yiyizq0260(yiyizq) 
    您上面所说我也试过但收效甚微,不过我还是很感谢您。看看还有没有更好的办法。
    不知你有没有对比相同的DB在SQLSERVER和ORACLE下,那一种查询更快,更稳定。