CSDN-CSDN社区-Oracle-高级技术

收藏 求一数据库性能解决方案[问题点数:20]

  • ljbal
  • 等 级:
  • 结帖率:
楼主发表于:2008-03-25 15:58:37
现有一张大表:数据量为900万,将来可能会有1亿的数据量;如此大的数据量查询的响应时间很长,现在这张表没有做任何的优化设置,我现在的想法是为这个表做表分区来存放有一定关系的数据,表的结构是这样的:

表名:IC库存表

编号     ID NUMBER
用户编号     USERID NUMBER
型号     MODEL     VARCHAR2
厂商     MAKER     VARCHAR2
数量     AMOUNT NUMBER
批号     LOTNUMBER         VARCHAR2
上传时间     UPTIME DATE
价格     PRICE NUMBER
状态     STATE NUMBER
封装     ENCAPSULATION         VARCHAR2
描述     DECRIPT VARCHAR2
是否审核     VOUCH NUMBER
是否现货     SPOTGOODS NUMBER
说明:型号是以26个字母或者0-9这几个数字开头的


对此表常用操作是:
1. 向此表中导入数据(EXCEL文件格式)
2. 向此表中逐条插入数据
3. 对此表进行查询操作,常用查询字段是: 型号(MODEL)、数量(AMOUNT)、批号(LOTNUMBER)、封装(ENCAPSULATION)、用户编号(USERID),其中型号、用户编号字段用得最多。

问题:
1. 现在的解决办法是:按型号的头两个字符分成若干个表,每个表以IC_加 ”型号” 的头两个字符命名, 这些表中存放 ” 型号” 头两个字符与表名对应的数据.(如:型号头两个字符为IR的数据存放到IC_IR表中),这样就解决了按型号查询的速度问题,但是不能解决按“用户编号”查询的速度问题,也就是说,如果要查询某一用户的库存时,必须扫描每个分表中以查出某一用户的库存。
2. 如果用表分区方法的话应该怎么去分区?
3. 向此表中导入数据的时候会不会自动的把相应的数据导入到相应的分区里面?
4. 现有的数据如何归类到相应的表分区中?

不知道还有没有别的更好的方法呢?
回复次数:12
#1楼 得分:0回复于:2008-03-25 16:24:42
建議使用分區表來做

表分区技术是在超大型数据库(VLDB)中将大表及其索引通过分区(patition)的形式分割为若干较小、可管理的小块,并且每一分区可进一步划分为更小的子分区(sub partition)。而这种分区对于应用来说是透明的。通过对表进行分区,可以获得以下的好处:

  1)减少数据损坏的可能性。

  2)各分区可以独立备份和恢复,增强了数据库的可管理性。

  3)可以控制分区在硬盘上的分布,以均衡IO,改善了数据库的性能

具體的用法你可以網上查找下
#2楼 得分:0回复于:2008-03-25 16:26:01
以你的表的情況可以嘗試使用 上传时间 這個欄位來做分區
#3楼 得分:0回复于:2008-03-25 16:34:42
to baojianjun:

如果用分区表来做的话能不能解决我以上提出的第3和第4个问题呢?
#4楼 得分:0回复于:2008-03-25 16:38:31
to baojianjun:
忘了说明一下:上传时间是可以更新的,所以我觉得不应该用上传时间来分区吧
#5楼 得分:0回复于:2008-03-26 09:33:55
我现在想用型号和用户编号做复合分区,不知道这样做会有什么问题呢?我感觉会有很多个分区,不知道是不是这样?
#6楼 得分:0回复于:2008-03-28 14:09:09
没有帮顶一下吗?
#7楼 得分:0回复于:2008-03-28 14:23:10
就按型号、用户编号做复合分区呗。

做Range-list的复合分区,先按用户编号做Range分区,再按型号做list分区。

而后记得根据需要创建分区索引,这样保证效率提高极大。
#8楼 得分:0回复于:2008-03-31 10:21:00
不知道建立了复合分区以后,数据库对这个表是怎样去操作的呢?
#9楼 得分:0回复于:2008-03-31 11:09:31
还有就是list分区能不能模糊匹配,如果可以的话给个例子看看!
#10楼 得分:0回复于:2008-03-31 17:40:12
关注一下
#11楼 得分:0回复于:2008-04-01 09:39:07
怎么没人知道么?帮顶一下
#12楼 得分:0回复于:2008-05-01 04:06:28
不知,帮顶
相关问题
求数据库建表的解决方案! VB / 数据库(包含打印,安装,报表) - CSDN ...
求一性能测试的测试用例(实例),以作参考,多谢! 软件工程/管理 ...
100分求一点数据库优化的资料Java / J2SE / 基础类- CSDN社区community ...
求一个解决方案,用于从数据库中读取文件,并在网页上打开.NET技术 ...
就SQL2005数据库同步问题再问~~~~~~~~求一解决方案
oracle主备的问题,求高手来帮忙解决。