oracle 大数据查询优化的方案
某数据库中的一张表A,表A的数据库量现在大概有10亿条数据之多.
最初的做法是全部存放在一个表空间中.造成现在的查询速度龟爬似的.现在不得不对数据库做出重新评估和优化.
最初的前提:
1.中应该建立的索引都已具备
2.查询语句都已经做到优化:现在类似于 select count(1) from A 这么简单的一句统计SQL都需要100S左右
tangren 回复
这么多数据,一般都要将一个时间段以前的数据归档到另一台服务器。
减少OLAP环境的负荷,统计可以通过日结等生成报表。
还有分区不一定能够提高查询速度。分区主要是为提高扩展性,高可用性设计,便于管理。
如果使用了分区,你在查询中要按分区键来查询才能利用分区排除。
索引也进行相应的分区,可建立本地分区索引。
10亿数据量是多长时间?需要每小时建立一个分区?
oracle 9i、10g都不能自动分区,你可以生成一个定时运行的脚本,或建立一个JOB来定时执行,
或者一次手动建立足够多的分区。
相关文档:
在pl/sql中使用exp/imp工具实现oracle数据导出/导入
Oracle 数据导入导出imp/exp就相当于oracle数据还原与备份。exp命令可以把数据从远程数据库服务器导出到本地的dmp文件,imp命令可以把 dmp文件从本地导入到远处的数据库服务器中。 利用这个功能可以构建两个相同的数据库,一个用来测试,一个用来正式使用。
执行环境 ......
一、引言
数据仓库技术是目前已知的比较成熟和被广泛采用的解决方案,用于整和电信运营企业内部所有分散的原始业务数据,并通过便捷有效的数据访问手段,可以支持企业内部不同部门,不同需求,不同层次的用户随时获得自己所需的信息。数据仓库系统需要能够及时地追踪和分析大量的历史数据,并能够及时做出分析和预 ......
1. select * from t1 left join t2 on t1.c1 = t2.c2
是左边的表(t1) 全部显示,t2没有的用null代替。 右连接相反(t2)
2. (+)的连接时另一个全部显示。
select * from t1 left join t2 on t1.c1 = t2.c2 和 select * from a,b where t1.c1 = t2.c2(+) 效果一样。
3. FULL OUTER JOIN:全外关联
SELECT e.last ......
查看Oracle 表结构的创建和最后修改时间
SELECT a.owner, a.table_name, created, last_ddl_time
from dba_tables a, SYS.dba_objects b
WHERE a.tablespace_name = 'USERS'
AND a.owner = b.owner
AND a.table_name = b.object_name
AND object_type = 'TABL ......