oracle 数据库表数据量比较大,如何提升查询速度?

现在想把历史数据分离出来,但是分离后要能够查询到分离的数据,有什么好的解决办法?... 现在想把历史数据分离出来,但是分离后要能够查询到分离的数据,有什么好的解决办法? 展开
 我来答
mingxu1986
2013-04-15
知道答主
回答量:28
采纳率:0%
帮助的人:13.7万
展开全部
数据表百万级的数据量,其实还是不是很大的,建立合理的索引就可以解决了。建立分区表的话,是可以根据所分区的内容进行查询的,比如单独查询2011年度的记录,但是因为你已经有了一定的历史数据,所以相对比较麻烦,建议百度一下。另外也可以将数据导出,然后重新建立需要分区的表,在建表的同时进行分区,这样再单独把数据导入就自动分区了
ZESTRON
2024-09-04 广告
表界面分析在材料科学及化学领域占据核心地位,它深入探索物质表面与界面的微观结构、化学组成及相互作用。通过电商平台射线光电子能谱(电商平台PS)、扫描电子显微镜(SEM)及原子力显微镜(AFM)等先进技术手段,我们Dr. O.K. Wack ... 点击进入详情页
本回答由ZESTRON提供
任好慕jx
推荐于2018-03-07 · TA获得超过1516个赞
知道小有建树答主
回答量:1027
采纳率:66%
帮助的人:472万
展开全部
可以利用分区技术,将老数据按时间分区到一个分区里。新数据在新的分区了。
建立分区索引。利用分区索引查询还要快一些。
追问
嗯,现在是表里已经有数据几百万的数据了,而且我不会分区,找了些资料看的不大明白啊
追答
分区就是把一个表的各个字段分别保存在不同的区上。
网上的例子很多,建表很简单:
CREATE TABLE TABLE_PARTITION 这个表名随便 取(

COL1 NUMBER,
COL2 VARCHAR2(10)
)
partition by range(COL1)(
partition TAB_PARTOTION_01 values less than
(450000),
partition TAB_PARTOTION_02 values less than
(900000),
partition TAB_PARTOTION_OTHER values less THAN
(MAXVALUE)
);
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
oxuebino
2013-04-15 · 超过19用户采纳过TA的回答
知道答主
回答量:97
采纳率:0%
帮助的人:54.2万
展开全部
多建些索引可能会好些。
还可以建一个临时表;把符合条件的数据增加到临时表中的行要比主表中的行少,而且物理顺序就是所要求的顺序,减少了磁盘I/O,所以查询工作量可以得到大幅减少。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
梦冷凝
2013-04-15 · TA获得超过1568个赞
知道小有建树答主
回答量:1703
采纳率:25%
帮助的人:739万
展开全部
几百万数据不算多啊,索引正确,sql语句能正确使用索引。完全没有任何问题的
追问
嗯,目前来看是不算多,但这是一个订单表,订单会不断增多的,分区该怎么分啊?
追答
百度索引!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式