fdhunter 发表于 2008-03-18 11:03

sybase大表查询,太慢了,那位大侠给点建议

平台: IBM 52A主机 2*1.65 CPU 4G内存
系统: aix 5.3
数据库: sybase12.5
查询表的大小: 1亿2千万条记录

查询时间:30分钟左右,太慢了,那位大侠给点优化建议?

chenfeng825 发表于 2008-03-18 11:08

表结构?索引?cache?查询?统计信息?page size。。。。
如果table scan ,30min存储不是太好的话也不算很糟:mrgreen:

fdhunter 发表于 2008-03-18 11:10

LS的,跟CPU关系大吗,我看了一下CPU的利用率50%不到?

chenfeng825 发表于 2008-03-18 11:20

一个cpu满载,而另一个空闲?如果table scan,就是拼磁盘和内存了,partition的话可以走并行
还是看查询和设计,但基本来说IO代价最重要,如果primary key(uinque index)的点查询,可能,从索引根页到叶级页加上数据页可能也不过5,6个IO,所以即使亿行业是ms级别的

fdhunter 发表于 2008-03-18 11:40

一个cpu满载,而另一个空闲?对! 楼上是怎么猜到的!
sybase数据是存放在内置scsi硬盘上的,IO大概是30M/S, 现在只是做测试,晚点要移植到光存储上,可能速度会快点!
现在担心是不是CPU资源少了

chenfeng825 发表于 2008-03-18 11:52

呵呵,设计合理,需求合理,硬件可以差一点的。当然预算有的情况下硬件投资越多越好,没事还可以做容错呢。:mrgreen:
想两个cpu一起跑,分区吧,或者同时跑两个这个sql
但硬件绝大部分时候都不能解决性能问题。重点是需求,设计。pc server跑2亿行的数据也没问题的:mrgreen: :mrgreen: :mrgreen:

fdhunter 发表于 2008-03-18 12:04

程序是第三方开发的,设计合不合理,我们也不懂,只是30分钟的查询时间无法接收,现在就是想怎么优化,或提高系统整体性能来提高查询速度啦,谢谢楼上版主啦

flybean 发表于 2008-03-19 08:52

1.配置并行
2.检查此查询的查询计划,合理的增加索引

sybfresher 发表于 2008-03-27 15:06

1 把表分区
2 整理表的碎片
3 优化查询语句
4 经常的更新统计信息
5 配置并行查询

echoaix 发表于 2008-03-27 16:49

sql?
showplan sql?
optdiag table?
update statistics table?(不做也罢,亿级)
syb.cfg?
12.5的分区功能单一啊,但是还是应该有效果。
页: [1]
查看完整版本: sybase大表查询,太慢了,那位大侠给点建议