1、select max(JD_JONO_C) as JD_JONO_C 
   from INM_NTSFC_DEPTJOSHEET_M 
   where JD_JONO_C like 'JS018d801002%'
2、select max(JD_JONO_C) as JD_JONO_C 
   from INM_NTSFC_DEPTJOSHEET_M 
   where JD_JONO_C like 'JS01OS000005%'
为什么第一个语句查询时间只有3秒钟,而第二个语句却要很长,至少一分钟。。
其中,JD_JONO_C是主键

解决方案 »

  1.   

    如果不用LIKE,使用PATINDEX函数,速度快得不得了, ,
      

  2.   

    是的,JS018d801002这个还多一些记录
      

  3.   

    还有个不明的就是,为什么大部份程序员使用模糊查询时喜欢使用LIKE,而很少使用PATINDEX或CHARINDEX呢,我发觉后者执行速度快很多啊,,难道有什么弊端??
      

  4.   

    可能是象JS01OS000005的太多了,返回教慢吧,而且數據庫一大數據多就搜索較慢啦
      

  5.   

    像JS01OS000005的记录不多,只有十条
      

  6.   

    大多数人用like那是因为书的原因,一般书也就是这样教的.
    我想这个问题可能是因为使用like的时候并不用索引的原因吧.
      

  7.   

    我觉得有必要考虑一下LIKE的比较机制
      

  8.   

    1、select max(JD_JONO_C) as JD_JONO_C 
       from INM_NTSFC_DEPTJOSHEET_M 
       where JD_JONO_C like 'JS018d801002%'
    2、select max(JD_JONO_C) as JD_JONO_C 
       from INM_NTSFC_DEPTJOSHEET_M 
       where JD_JONO_C like 'JS01OS000005%'
    为什么第一个语句查询时间只有3秒钟,而第二个语句却要很长,至少一分钟。。
    其中,JD_JONO_C是主键
    這個很正常的喔,你要知道你的SQL語句是如何來過慮紀錄的喔,一般的如果你沒有建立索引,默認的就是通過你的主鍵來訪問你的表,通常數據很多的時候,我們都會建立索引,這裡你的INM_NTSFC_DEPTJOSHEET表裡的紀錄很多,又沒有建立索引.他就只能按照主鍵來訪問你的表,這樣的話紀錄條數多的就會慢一點!!具體的你可用sqlnavigator查循分析器去看看!!!建議數據紀錄很多的時後最好建立索引!!!