ASE查询速度问题

willbeike 2007-11-23 12:00:25
请教各位:
我有一个表table_a,上面有2个字段column_a与column_b,不是主键,都建了索引(普通索引),(表table_a数据库120万左右、字段数30左右)。
我查询时如果单独用其中的一个来查询速度都很快,但当我把两个字段一起作为条件查询时起码慢了10倍左右正常来说两个条件一起应该过滤掉更多的行,速度更快才是,但缺出现这种情况,但也不可能在column_a与column_b上建一个结合索引,因为可能还有3个条件、4个条件等情况出现,望各位达人帮忙看看是什么原因。谢谢
...全文
51 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
willbeike 2007-12-10
  • 打赏
  • 举报
回复
我怎么给不了分的?
willbeike 2007-12-10
  • 打赏
  • 举报
回复
还要再看看
Tigersong 2007-11-26
  • 打赏
  • 举报
回复
对于前面2种
Index contains all needed columns. Base table will not be read.
此时查询不需要一层一层遍历,因为索引页包含了所有条件列

对于第三种则需要根据条件扫描相应的下一级甚至数据页,所以...
willbeike 2007-11-23
  • 打赏
  • 举报
回复
我就在sybase的查询分析器里写的查询语句,很简单的
以下是三个查询语句的执行计划
(1)测试一:SQL语句:select count(column_a) from table_a where column_a = 'cfk' (返回数值371942 ;耗时 < 1S)

QUERY PLAN FOR STATEMENT 1 (at line 1).




STEP 1
The type of query is SET OPTION ON.




QUERY PLAN FOR STATEMENT 2 (at line 2).




STEP 1
The type of query is SET STATISTICS ON.




QUERY PLAN FOR STATEMENT 3 (at line 5).




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


FROM TABLE
table_a
Nested iteration.
Index : I_table_a_column_a
Forward scan.
Positioning by key.
Index contains all needed columns. Base table will not be read.
Keys are:
column_a ASC
Using I/O Size 4 Kbytes for index leaf pages.
With MRU Buffer Replacement Strategy for index leaf pages.


STEP 2
The type of query is SELECT.


Total writes for this command: 0
Table: table_a scan count 1, logical reads: (regular=1380 apf=0 total=1380), physical reads: (regular=476 apf=1098 total=1574), apf IOs used=904
Total writes for this command: 5
(1 row affected)



(2)测试二:SQL语句:select count(column_a) from table_a where column_b = 'ZC' (返回数值61162 ;耗时 < 1S)
QUERY PLAN FOR STATEMENT 1 (at line 1).




STEP 1
The type of query is SET OPTION ON.




QUERY PLAN FOR STATEMENT 2 (at line 2).




STEP 1
The type of query is SET STATISTICS ON.




QUERY PLAN FOR STATEMENT 3 (at line 5).




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


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


STEP 2
The type of query is SELECT.


Total writes for this command: 0
Total writes for this command: 0
Table: table_a scan count 1, logical reads: (regular=215 apf=0 total=215), physical reads: (regular=204 apf=11 total=215), apf IOs used=11
Total writes for this command: 0
(1 row affected)


(3)测试三:SQL语句:select count(column_a) from table_a where column_a = 'cfk' and column_b = 'ZC' (返回数值 2062 ;耗时 14-16S)
QUERY PLAN FOR STATEMENT 1 (at line 1).




STEP 1
The type of query is SET OPTION ON.




QUERY PLAN FOR STATEMENT 2 (at line 2).




STEP 1
The type of query is SET STATISTICS ON.




QUERY PLAN FOR STATEMENT 3 (at line 5).




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


FROM TABLE
table_a
Nested iteration.
Index : I_table_a_column_b
Forward scan.
Positioning by key.
Keys are:
column_b ASC
Using I/O Size 4 Kbytes for index leaf pages.
With MRU Buffer Replacement Strategy for index leaf pages.
Using I/O Size 4 Kbytes for data pages.
With MRU Buffer Replacement Strategy for data pages.


STEP 2
The type of query is SELECT.


Total writes for this command: 0
Total writes for this command: 0
Table: table_a scan count 1, logical reads: (regular=9499 apf=5 total=9504), physical reads: (regular=7633 apf=2060 total=9693), apf IOs used=1856
Total writes for this command: 1
(1 row affected)


Tigersong 2007-11-23
  • 打赏
  • 举报
回复
不确定你的查询脚本具体是什么样子! 不过你可以查看相应的查询计划, 看有没有用道索引! 出现这种情况, 一般来说你在第二种条件下没有用到索引导致
QuickDove融合信息平台是一款能够集成企业应用系统消息和电信通讯应用的企业级即时通讯平台,它致力于帮助企业解决信息孤岛、提高运营效率、降低沟通成本、实现人员与业务系统的实时协同,是一种高度可管理、低成本、易部署的IT平台。 我们即时通讯的几大特点是: 1.发送消息(消息是否接收的状态显示、安全签收) 方便、快捷地即时消息发送与接收,提供不同颜色字体的文字,提供个性化展示。我们消息有是否接收的状态显示、安全签收时间显示,确保了相关工作的即时安排或落实。 2.文件、文件夹传输、传输自定义图片 高速传送文件或文件夹,并支持离线发送。速度快,传送状态清晰明了。 3.群组会议(实时邀请或移除人员会议讨论) 4.组织结构(树型多视图的组织架构,员工状态一目了然)可清晰看到由树型目录表达的多层次企业组织架构,是实时更新的电子通讯录。 5.日常公告管理(日常事务通知,可回复,可查询) 日常的开会通知,放假公告,出游公示,都可以向所有员工发送,员工可以回复、讨论.使管理上更人性话。 6.文档管理(重要文件,即时归档) 公司的重要文件需即时归档,企业内部共享的一个存储空间。方的桌面,让你手把手进行即时援助。 7.在线WEB客服(适用于公司网站,可自定义界面) 自定义的界面集成到公司的网站,网站访问者可以在网页的会话窗口直接与内部的客服人员即时沟通,而企业内部的客户服务人员可以同时处理多个访问者的咨询。 8.工作邮件(邮件到达,即时通知) 接收客户的邮件,无须再登录邮箱网站,而是在即时通讯中直接收取,方便查看,节省时间,增加工作的效率。 9.企业形象统一 可定制Logo,统一企业的形象 10.二次开发(丰富的二次开发接口) 丰富的二次开发接口,支持Oracle\Sybase\DB2\SQL server\Sybase ASE\Access\MySQL等数据库。, 11.远程协助 轻松解决企业异地的协助问题

2,596

社区成员

发帖
与我相关
我的任务
社区描述
Sybase相关技术讨论区
社区管理员
  • Sybase社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧