18-1

来源:互联网 发布:数据流程图画法 编辑:程序博客网 时间:2024/04/29 01:55

一:单表访问

1. set arraysize 1000     只允许从客户端发送1000

从oracle服务器端一次传输多少条数据到客户端

show  arraysize 

块大小8k

一个块大概能存储几十行到几百行数据

加入一个块150行数据

如果arraysize 只有15  那么读这个块是不是要读10次。

一个块在内存中访问一次就算一次逻辑读。

oltp 联机交易系统,olap  bi分析系统(大数据)

生产环境中一般设置100


12c 在内存中是列存储

ETL     e抽取,t转换,l加载

从oltp抽取到olap系统。


聊一聊哪一些数据是行存储,那些数据库是列存储

oralce,sql server ,db2,SYBASE IQ 列存储 


sybase,GREENPLUM 创建表的时候可以指定。

 MYSQL  
行存储引擎和列存储引擎



2. 逻辑读  consistent gets       1110 * 8k/1024 = ?MB 

select * from test where object_id=1000;
create  index   index_2  on   test(object_id)

1. 访问的哪个表
2. 访问了多少个字段
3. 访问的表大不大 
4. 过滤条件是啥

第一步:select count(*) from test;                                  总行数
第二部:select count(*)  from test where object_id=1000;     返回行数   1行


select  *   from test where owner='SYS';

单表访问能不能走索引,怎么判断,范围表的5%以内走索引,超过走全表。


强制走索引
select   /*+ index(test index_3)  */  *  from  test where owner='SYS';


怎么去 衡量 某些列 有时候走 有时候不走索引

怎么看这个列的数据分布
select object_id,count(*) from test group by obect_id order by 2 desc;


这个sql怎么优化
select * from test where owner='SYS' and object_name='DBA_TABLES'


建索引之前,一定要看列分布,数据分布越均衡越好,放前面

select * from test where owner='SYS' and object_id<10000


问题一: 行存储,列存储的优缺点?

此部门转载http://m.blog.csdn.net/blog/logarrow/12311937

行列存储比较

将表放入存储系统中有两种方法,而我们绝大部分是采用行存储的。行存储法是将各行放入连续的物理位置,这很像传统的记录和文件系统。然后由数据库引擎根据每个查询提取需要的列。列存储法是将数据按照列存储到数据库中,与行存储类似;

1. 基于行的储存

基于行的存储是将数据组织成多个行,这样就能在一个操作中找到所有的列。这种做法的缺点是必须每次处理一整行,而不是只处理自己需要的列。不过,这样在处理相同实体的两个或多个列的查询时能够取得更快的速度,而且可以提高更新、插入和删除操作的速度。
基于行的存储系统可以进行并行处理,并且不需要模仿顺序文件系统,尽管有许多产品仍然在这样做。这种做法的缺点是,一旦确定了这种体系结构,那么使用的代码就不仅仅是“老式代码”,甚至比像“家族的诅咒”那样的代码还要难懂。
Teradata是一种非常流行的数据仓库产品,它使用了散列处理,并且从一开始就具有并行处理机制。最开始的时候它是一种数据库机,不过当前版本采用的是在标准硬件上建立虚拟机的方式。它从设计上就总是采用并行处理方式。各结点根据实际需要彼此交谈,而不是由一个中央点来控制。万维网就是采用了这种工作方式,因此对程序员而言,这种模型应该不会太陌生。(结点)数量将数据值尽可能均匀地分散到硬件存储设备中。如果结点数改变了,那么系统会重新分布这些数据。由于采用逻辑地址代替了人们在传统索引模型中使用的物理地址,因此用户根本不会看到这些过程。故障结点会对其数据进行重新定位,并将自身从系统中删除。新结点则会从现有结点将数据传送到其本地存储区,刀片服务器上使用了一种建立在内存中的模型。这里没有索引;数据都是尽可能多地保存在主存储器中,并在这里进行扫描。

2. 基于列的存储

基于列的访问存在的缺点是载入速度通常比较慢,因为源数据在外部来源中是以行或者记录的形式表示的。这样做的优点是针对某个列中的值进行简单查询的速度非常快,需要的内部存储资源最少。这表示对某个列中特定值的搜索可以直接进入该列的存储区,而不需要扫描整行的数据。这样也使得数据压缩变得更容易,因为一个列中的数据通常具有相同的数据类型。这种体系结构在处理数据仓库使用的海量数据时没有问题,但不适合需要进行大量以行的方式进行访问和更新操作的联机事物处理。就是这种数据库之一。在由一万亿行组成的测试数据集中,输入数据共很明显,这是一种适合数据仓库的技术。这种技术虽然在压缩和快速访问方面有优势,但也存在插入操作复杂的缺点。
引擎也采用了一种基于列的处理方式,但是它还对值进行标记,以获得更高的速度和更好的数据压缩效果。它们使用一种专用的位向量方案,可以在压缩的状态下进行搜索。这种技术非常适合档案处理,但是必须将标记恢复成其原始数据值才能显示,以及在表达式内使用。不过,在压缩方面鼓励将一个数据列分解成更多更详细的列。

问题二:百度 ORACLE 12cR1 新特征 in memory option 

问题三: 百度 ORACLE 12cR2 新特征 in memory option ---可以 存储在 磁盘的 新特征




1 0
原创粉丝点击