祝愿大家身体健康!

 站点注册  找回密码
 站点注册

QQ登录

只需一步,快速开始

查看: 4680|回复: 5

条件中使用like的疑问

[复制链接]

条件中使用like的疑问

[复制链接]
guilber

主题

0

回帖

143

积分

中级会员

积分
143
贡献
在线时间
小时
2007-6-15 16:54:19 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?站点注册

×

有两条语句,查询结果一样,执行计划不同,执行效率也不同,但不知效率为什么又这么大的差距

语句一:select count(*) from table1 where usernumber like '1332222%'

    STEP 1
        The type of query is SELECT.
        Evaluate Ungrouped COUNT AGGREGATE.

        FROM TABLE
            table1
        Nested iteration.
        Index : idx_table1
        Forward scan.
        Positioning by key.
        Index contains all needed columns. Base table will not be read.
        Keys are:
            usernumber  ASC
        Using I/O Size 2 Kbytes for index leaf pages.
        With LRU Buffer Replacement Strategy for index leaf pages.

语句二:select count(*) from table1 where usernumber like '1332222'+'%'

    STEP 1
        The type of query is SELECT.
        Evaluate Ungrouped COUNT AGGREGATE.

        FROM TABLE
            table1
        Nested iteration.
        Index : idx_table1
        Forward scan.
        Positioning at index start.
        Index contains all needed columns. Base table will not be read.
        Using I/O Size 2 Kbytes for index leaf pages.
        With MRU Buffer Replacement Strategy for index leaf pages.

共享共进共赢Sharing And Win-win Results
SYBASEBBS - 免责申明1、欢迎访问“SYBASEBBS.COM”,本文内容及相关资源来源于网络,版权归版权方所有!本站原创内容版权归本站所有,请勿转载!
2、本文内容仅代表作者观点,不代表本站立场,作者自负,本站资源仅供学习研究,请勿非法使用,否则后果自负!请下载后24小时内删除!
3、本文内容,包括但不限于源码、文字、图片等,仅供参考。本站不对其安全性,正确性等作出保证。但本站会尽量审核会员发表的内容。
4、如本帖侵犯到任何版权问题,请立即告知本站 ,本站将及时删除并致以最深的歉意!客服邮箱:admin@sybasebbs.com
flybean

主题

0

回帖

595

积分

管理员

积分
595
贡献
在线时间
小时
2007-6-20 08:51:51 | 显示全部楼层
执行效率是怎么比较的?两次测试的先后顺序?之间有没有重新启动ASE?
共享共进共赢Sharing And Win-win Results
guilber 楼主

主题

0

回帖

143

积分

中级会员

积分
143
贡献
在线时间
小时
2007-6-20 13:12:24 | 显示全部楼层

table1有500万的数据,使用语句1,瞬间便能查出结果;使用语句2,查询时间为四十几秒

同样找到一张表,数据有70万左右,类似语句1和语句2的查询,均有如上的效率差别现象

另外,查询前后未重启ASE,查询先后并未改变现象。

另外从计划中可看出

语句1:

With LRU Buffer Replacement Strategy for index leaf pages.

语句2:

With MRU Buffer Replacement Strategy for index leaf pages.

查询了一些资料,不知是否与此有关。

共享共进共赢Sharing And Win-win Results
guilber 楼主

主题

0

回帖

143

积分

中级会员

积分
143
贡献
在线时间
小时
2007-6-21 16:54:32 | 显示全部楼层
没人回答,自己顶!
共享共进共赢Sharing And Win-win Results
诺华

主题

0

回帖

12

积分

新手上路

积分
12
贡献
在线时间
小时
2007-6-26 10:14:58 | 显示全部楼层
涉及到一个搜索变量问题。如果你用like '1332222%',可以使用搜索变量,实际上转换为大于和小于;如果你使用like '1332222'+'%',则属于有算术表达式,就不能使用搜索变量。而由于所需列都在索引里面,只是一个索引覆盖,当然效率差很多了!
共享共进共赢Sharing And Win-win Results
ehxz

主题

0

回帖

59万

积分

管理员

积分
590911
贡献
在线时间
小时
2007-6-26 12:06:01 | 显示全部楼层
最好用字符串,先把表达式,那怕是简单的+组合起来再SQL处理试试.对数据库来说使用的处理机制不一样,效率就差远了.
共享共进共赢Sharing And Win-win Results
您需要登录后才可以回帖 登录 | 站点注册

本版积分规则

免责声明:
本站所发布的一切破解补丁、注册机和注册信息及软件的解密分析文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:Admin@SybaseBbs.com

QQ|Archiver|PowerBuilder(PB)BBS社区 ( 鲁ICP备2021027222号-1 )

GMT+8, 2024-12-23 12:25 , Processed in 0.049222 second(s), 7 queries , MemCached On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表