免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 6489 | 回复: 18
打印 上一主题 下一主题

一个有关SYBASE分区和超大型表的处理问题? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-09-23 18:47 |只看该作者 |倒序浏览

我是SYBASE新手,还请大虾们多多指教
  有一个大型记录表,估计有50亿行记录,未建索引,所以查询一定是全表扫描。该表有一个字段为DATE,
  请问在SYBASE 中有没有类似这样的分区功能:
   因为记录的一个字段col是日期型的,所以想根据该字段的时间范围来分区,
   比如,将2003/1月分的数据放在分区1上,2003/2月份的数据放在分区2上。
   在SQL查询的时候,可以指定分区名,如:
    select * from table partition(分区1)

   或者,根据WHERE条件中col字段的值来智能的选择分区,从而避免对整个表扫描
     如:   select * from table where   2003/01<= col < 2003/02
         就只会扫描分区1

以上这种功能在ORACLE中可以实现。

如果在SYBASE中,没有类市的功能,那么对这种超大型的表有何交好的存储方式?

论坛徽章:
0
2 [报告]
发表于 2003-09-23 20:14 |只看该作者

一个有关SYBASE分区和超大型表的处理问题?

可以建立这样的分区表 !

论坛徽章:
0
3 [报告]
发表于 2003-09-23 20:15 |只看该作者

一个有关SYBASE分区和超大型表的处理问题?

可以建立这样的分区表 !
不过关于如何建立表以及如何进行并行查询,还是要先看看书,不然很难讨论清楚。希望有什么问题一起探讨。关注!

论坛徽章:
0
4 [报告]
发表于 2003-09-23 20:52 |只看该作者

一个有关SYBASE分区和超大型表的处理问题?

问题一:
“一个大型记录表,估计有50亿行记录,未建索引”
这在sybase中是绝对有问题的,慢死你

问题二:
Sybase可以进行表分区,将数据平均分布在不同的位置(磁盘如果是RAID之类的,就没有IO的优化了),但主要用于多进程insert时的解决最后页竞争的问题,其索引不能单独在分区上建立,所以对于select 没有太大的改进。对于bcp in倒是可以利用这个分区特性,并行导入............

论坛徽章:
0
5 [报告]
发表于 2003-09-23 21:53 |只看该作者

一个有关SYBASE分区和超大型表的处理问题?

1。如何创建索引
  (1)这个表本身占用3T左右的空间。而且没有主键。只有整个记录才能作为一个主键。所以只能创建非唯一性的索引。
   另外,这个系统是混合型的,数据仓库和OLTP的混合,平均每秒有3000条左右的新记录不间断的插入到表中,而且有多个统计过程对这个表进行定时的汇总统计,I/O负载非常重。如果在这个表上建了索引,那么新数据的插入速度肯定要变慢,从而导致数据的丢失。
    如果是聚族索引的话,恐怕更慢了。
   (2)即使只是创建一个单字段的索引,可能占用的空间也要达到表的30%左右,即900M。RAID的价格可是吓人的。

2。如何分区
   就我从一些SYBASE的资料上所看到的,好象SYBASE并不能提供象ORACLE那样智能的根据WHERE条件来选择满足条件的分区的特性。
从而避免在不建索引的条件下,能够不需要扫描整个表。

ZHANGYH123兄弟,能否就SYBASE上的表分区,写一个EXAMPLE,
多谢了。

论坛徽章:
0
6 [报告]
发表于 2003-09-23 22:12 |只看该作者

一个有关SYBASE分区和超大型表的处理问题?

SYBASE的分区好象只是从物理上将表分布存储在多个段上,从而提高操作的并行度。在SQL语句级可以控制对某个指定分区的查询操作吗?

论坛徽章:
0
7 [报告]
发表于 2003-09-23 22:38 |只看该作者

一个有关SYBASE分区和超大型表的处理问题?

Sybase对于这种大表,建议分表
将表分成多个表(可以按照日期等条件,自己考虑吧)
然后使用12.5中提供的在view中使用union的方法

create view t
as
select * from t1
union
select * form t2
....

这可能是唯一可行的方法了,这样的大表设计上就应该考虑分表(归档)
而且DSS和OLTP放在一起,太矛盾了

Sybase有个产品叫ASIQ,专门用作数据仓库,建议考虑一下

论坛徽章:
0
8 [报告]
发表于 2003-09-24 09:08 |只看该作者

一个有关SYBASE分区和超大型表的处理问题?

同意blackrose的说法。
这样的大表不建索引,还用于DSS,结果只能有一个:
等死你,呵呵。。。

论坛徽章:
0
9 [报告]
发表于 2003-09-24 09:24 |只看该作者

一个有关SYBASE分区和超大型表的处理问题?

不过我有点奇怪了 每秒3000条,这样一来,每小时是
3000*3600 =10800000 即 1千万条记录/小时。

如果建立索引的话,估计有更严重的插入问题,
每天算5小时,也有5千万条记录插入。
如果这样,不敢想象是什么系统!

要真如此,你还不如每天建一个表,那也够厉害了!
能否说说你的环境、设计什么的 ,当然,如果涉及商业机密就不必说了。


另外果真如此,用 sybase 是否能够处理,也值得怀疑!

论坛徽章:
0
10 [报告]
发表于 2003-09-24 10:02 |只看该作者

一个有关SYBASE分区和超大型表的处理问题?

sybase iq应该能够处理他的应用,具体可以上网了解。有很多新特性,并且同sql,&oracle不一样式单独产品,很贵,但性能非常好,也很复杂
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP