• λ我爱Aspx >> Asp.Net >> SQL Server 索引结构及其使用(二)
  • SQL Server 索引结构及其使用(二)

  • :未知  Դ:internet  :2007-5-20 16:44:48  ؼ:sql
  • 7、用函数charindex()和前面加通配符%的LIKE执行效率一样

    前面,我们谈到,如果在LIKE前面加上通配符%,那么将会引起全表扫描,所以其执行效率是低下的。但有的资料介绍说,用函数charindex()来代替LIKE速度会有大的提升,经我试验,发现这种说明也是错误的:

    select gid,title,fariqi,reader from tgongwen where charindex(''刑侦支队'',reader)>0 and fariqi>''2004-5-5''

    用时:7秒,另外:扫描计数 4,逻辑读 7155 次,物理读 0 次,预读 0 次。

    select gid,title,fariqi,reader from tgongwen where reader like ''%'' + ''刑侦支队'' + ''%'' and fariqi>''2004-5-5''

    用时:7秒,另外:扫描计数 4,逻辑读 7155 次,物理读 0 次,预读 0 次。

    8、union并不绝对比or的执行效率高

    我们前面已经谈到了在where子句中使用or会引起全表扫描,一般的,我所见过的资料都是推荐这里用union来代替or。事实证明,这种说法对于大部分都是适用的。

    select gid,fariqi,neibuyonghu,reader,title from Tgongwen where fariqi=''2004-9-16'' or gid>9990000

    用时:68秒。扫描计数 1,逻辑读 404008 次,物理读 283 次,预读 392163 次。

    select gid,fariqi,neibuyonghu,reader,title from Tgongwen where fariqi=''2004-9-16'' union select gid,fariqi,neibuyonghu,reader,title from Tgongwen where gid>9990000

    Ҷƪл˵?
  • һƪSQL Server 索引结构及其使用(三)
    һƪSQL Server 索引结构及其使用(一)