ORACLE 分析系统OLAP设计思想
ORACLE 的原来设计是基于事务型的,对处理分析型的就不地道了.最近的发展ORACLE相关技术开发都逐步适应OLAP的需求. 1 分区技术 2 压缩技术 3索引组织表 4 大块 5并行技术 6内存结果集. 原来的ORACLE设计基础是短小精悍的大规模并发事务. 而甲骨文凭借这一点占
ORACLE 的原来设计是基于事务型的,对处理分析型的就不地道了.最近的发展ORACLE相关技术开发都逐步适应OLAP的需求.
1 分区技术 2 压缩技术 3索引组织表 4 大块 5并行技术 6内存结果集.
原来的ORACLE设计基础是短小精悍的大规模并发事务. 而甲骨文凭借这一点占领了大部分数据库市场份额.微软的SQLSERVER以它的综合型,友好型和简单易用型占领了中小企业市场.
要设计个ORACLE 10G分析系统,不能选择默认安装法.连机器的存储也不能按OLTP的思维.
基于目前的RAC技术 它是为了OLTP的高可用型而设计的.不适合分析系统的驻留的机器系统. ORACLE 还没有IBM的分库数据库,可以水平无限扩展.
选择一台分析系统的服务器,基本上是RAID0+RAID5+SSD 大内存+多CPU的单台机器.
选择SSD固态硬盘主要是用于分析即时型很强的报表需求. 而RAID0主要存储1个月的数据,这个基本上是很频繁访问的数据报表需求. RAID5或者RAID10等主要存储历史数据了.
大内存主要用于做GROUP BY 运算, 多CPU用户并行查询.
分析系统的分层设计. 分层设计主要是把数据逐步的融缩精华.提供比较多的灵活型.
1 数据同步层, 设置个用户和模式 DATA_synch 主要从各个数据源中获取数据到该用户模式下.表空间 DATA_DAY,DATA_MON,DATA_HIS 三个时间段的空间.
2 数据拆分和汇总. 设置个用户和模式 data_split_sum 主要从源数据提取出部分字段的表,和从中提取时间等粒度的表,或者提取出部分用户的表.
比如活跃用户表
3 报表结果层: data_result 这一层主要存放最终想要的数据.
这三层可以在同一台数据库中,也可以安放在不同的机器上
表空间设计: 分为数据和索引表空间 同时在分为 SSD,RAID0 RAID5空间:ssd_index,ssd_data,raid0_index,raid0_data,raid5_index,raid5_data
注意把重要的表,重要的运算涉及到表,以及即时性要求高的表,领导每天要的表 放在SSD表空间中.
数据同步重要的放进SSD表空间中,其他的不重要的放进RAID0表空间里去. 超过一个月上的数据存进历史表空间.
所有的表要考虑做成索引组织表,因为组织表是有序存放的. SSD还是存放的是日和周级别的重要表,可以采用原来的堆组织表.
RAID0表空间存放当月的数据,因此可以采用非压缩式索引组织表,块空间FREE为0-10 主要看该表的数据更新周期,也就是说稳定时间.比如说该表的数据从外面拖过来后,下一天再拖数据过来要修改前天数据的值.这就是稳定周期.如果硬盘空间有多余的话 可以再设个RAID0_DAY表空间,把那些需要一定时间才稳定下来的表存放此处.等它稳定后才同步到月表空间里去.这样块的FREE可以设置为0.
RAID5空间的表设计 要分区,双分区,压缩,索引组织表,块FREE为0.毕竟这个空间主要存放超过一个月上的历史数据.
最后所有的表的块应该设计为64KB-128KB
开发中使用并行技术 /*+paraller(4)*/
内存表: with _as 共用一张内存数据
拆分数据库中的表除了提取某些字段外, 还经常需要 新增用户,活跃用户,充值用户,购买用户等 有可能结果层统计数据时候要关联很多表造成速度缓慢.
这可以把这几张表做成聚族表.或者是把表做出列.
比如 用户名, 注册时间,第一次充值时间,第一次购买时间,第一次等.
总体来说 1数据量小化,2数据块读取少量化. 包含读取的次数和块的多少.

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

数据导入方法:1. 使用 SQLLoader 实用程序:准备数据文件、创建控制文件、运行 SQLLoader;2. 使用 IMP/EXP 工具:导出数据、导入数据。提示:1. 大数据集推荐 SQL*Loader;2. 目标表应存在,列定义匹配;3. 导入后需验证数据完整性。

创建 Oracle 表涉及以下步骤:使用 CREATE TABLE 语法指定表名、列名、数据类型、约束和默认值。表名应简洁、描述性,且不超过 30 个字符。列名应描述性,数据类型指定列中存储的数据类型。NOT NULL 约束确保列中不允许使用空值,DEFAULT 子句可指定列的默认值。PRIMARY KEY 约束标识表的唯一记录。FOREIGN KEY 约束指定表中的列引用另一个表中的主键。请参见示例表 students 的创建,其中包含主键、唯一约束和默认值。

要查询 Oracle 表空间大小,请遵循以下步骤:确定表空间名称,方法是运行查询:SELECT tablespace_name FROM dba_tablespaces;查询表空间大小,方法是运行查询:SELECT sum(bytes) AS total_size, sum(bytes_free) AS available_space, sum(bytes) - sum(bytes_free) AS used_space FROM dba_data_files WHERE tablespace_

使用 ALTER TABLE 语句,具体语法如下:ALTER TABLE table_name ADD column_name data_type [constraint-clause]。其中:table_name 为表名,column_name 为字段名,data_type 为数据类型,constraint-clause 为可选的约束。示例:ALTER TABLE employees ADD email VARCHAR2(100) 为 employees 表添加 email 字段。

Oracle 打不开的解决办法包括:1. 启动数据库服务;2. 启动监听器;3. 检查端口冲突;4. 正确设置环境变量;5. 确保防火墙或防病毒软件未阻止连接;6. 检查服务器是否已关闭;7. 使用 RMAN 恢复损坏的文件;8. 检查 TNS 服务名称是否正确;9. 检查网络连接;10. 重新安装 Oracle 软件。

Oracle 乱码问题可以通过以下步骤解决:检查数据库字符集以确保与数据相匹配。设置客户端字符集以与数据库相匹配。转换数据或修改列字符集以匹配数据库字符集。使用 Unicode 字符集,并避免多字节字符集。检查数据库和客户端的语言设置是否正确。

Oracle 提供多种去重查询方法:DISTINCT 关键字返回每列的唯一值。GROUP BY 子句对结果分组并返回每个分组的非重复值。UNIQUE 关键字用于创建仅包含唯一行的索引,查询该索引将自动去重。ROW_NUMBER() 函数分配唯一数字并过滤出仅包含第 1 行的结果。MIN() 或 MAX() 函数可返回数字列的非重复值。INTERSECT 运算符返回两个结果集的公共值(无重复项)。

Oracle 视图加密允许您加密视图中的数据,从而增强敏感信息安全性。步骤包括:1) 创建主加密密钥 (MEk);2) 创建加密视图,指定要加密的视图和 MEk;3) 授权用户访问加密视图。加密视图工作原理:当用户查询加密视图时,Oracle 使用 MEk 解密数据,确保只有授权用户可以访问可读数据。
