select 年月日,时分秒毫秒,事件对象名0,事件文字描述 from 历史事项表
where convert(char(8),年月日) like '200706%'
 and convert(int,事件类型)=2004
为什么我的查询时间需要1分多钟 时间怎么这么长?
里面只有13条数据
这个SQL需要在那里优化?还是说是数据库出了问题?还有个问题就是:
我在程序中执行这个SQL
select  年月日,时分秒毫秒,事件对象名0,事件文字描述  from  历史事项表  
where  convert(char(8),年月日)  like  '200706%'  
 and  convert(int,事件类型)=2004  
时候 抱出:com.sybase.jdbc2.jdbc.SybSQLException: Incorrect syntax near '?'错误
大体知道这个是语法错误但是看不出来在那里出的
其中 convert(char(8),年月日)  like  '"+time+"%'是以参数的形式传入

解决方案 »

  1.   

    占据有利地形--沙发
    呵呵舒舒服服地帮"shang_zchao(上潮的海)"顶一下
      

  2.   

    两个条件都是可以优化的啊,但不知道你的事件类型是什么类型的字段,先想办法把convert去掉,然后加上索引觉得可以让你看到质的飞跃,根本不是一个数量级的。
      

  3.   

    报的语法错误吗,你的符号全角半角是否正确啊?程序把sql打出来,贴到编辑器里面检查一下就知道了。
      

  4.   

    convert 完全可以去掉,然后like这个关键字是非常耗时间的,如果确认其他如网络连接等方面没有问题的话,那在这两个地方下工夫看看.