索引的并行度解析

一直都对索引的并行度有一些疑惑,今天读到了崔华大神的书中关于index fast full scan的描述,借此机会整理一下。
Continue reading

Posted in Database, Oracle.

TimesTen Note 3 – Cache Group简介

1. Cache Group简介

Cache group是一组在Timesten中缓存的Oracle数据库表。这些在Timesten中缓存的数据库表称为缓存表(cache table)。
Timesten数据库可以包含多个cache group,每个cache group包含一个或者多个缓存表。但是同一个Oracle数据库表不能同时被cache到同一TT数据库的多个cache group中。可以在TT中的缓存表中创建额外索引会提高查询速度(建立非唯一索引,否则影响和Oracle数据库中源表业务一致性)。
缓存表要求每一张表必须有主键或者唯一索引:
a).如果存在主键,则在对应的cache group中创建对应列的主键。例如:
Continue reading

Posted in Database, NoSQL, Oracle.

TimesTen Note 2 – 基本管理

1. 数据库对象

Timesten的数据库对象和Oracle兼容:
Tables
Indexes
Sequences
Views (including materialized views)
Synonyms
PL/SQL objects (stored proced ures, functions, and packages)

相应的数据类型也相似:
字符型(CHAR, VARCHAR2 , NCHAR, NVARCHAR2)
浮点型数值 ( BINARY_FLOAT, BINARY_DOUBLE )
定点型数值 ( NUMBER )
日期和时间 ( DATE, TIMESTAMP)
系统类 ( ROWID)
此外,TT支持下面的二进制类型:
二进制整型 TT_TINYINT, TT_SMALLINT, TT_INTEGER, TT_BIGINT, 比NUMBER提供了更好的计算性能。
二进制数值 (BINARY , VARBINARY)
Continue reading

Posted in Database, NoSQL, Oracle.

TimesTen Note 1 – 安装、创建数据库

TimesTen内存数据库是Oracle的内存数据库产品,TimesTe Continue reading

Posted in Database, NoSQL, Oracle.

sqlldr的加载模式

SQL *Loader是一个客户端工具,提供下面方式加载文本数据到数据库中:
1
Continue reading

Posted in Database, Oracle.

Oracle合法节点检查

Oracle Net Valid Node Checking网络合法节点检查这种轻量的访问控制策略来控制监听器允许或者拒绝某些IP访问Oracle数据库,从8i起开始提供这个功能,是操作系统级的访问控制(iptables等)的一种替代方式,更具实用性。对于不合法的IP地址,从监听上直接拒绝该连接,根本没有机会尝试进行密码探试。

sqlnet.ora中有三个参数与该特性相关:
TCP.VALIDNODE_CHECKING
启动/关闭该特性,默认是no。更改该选项需要重启监听(reload无效)。
TCP.EXCLUDED_NODES
指定哪些客户端不允许通过TCP/IP协议访问数据库,可以通过reload生效。
TCP.INVITED_NODES
指定哪些客户端允许通过TCP/IP协议访问数据库,可以通过reload生效。只两个参数从11g起支持通配符如172.1.2.*。
参数使用规则如下(类似host.allow和host.deny规则):
首先TCP.VALIDNODE_CHECKING=yes开启,打开这个特性。
a). 只存在TCP.EXCLUDED_NODES
TCP.EXCLUDED_NODES中存在该主机地址,则拒绝。否则,则允许
b). 只存在TCP.INVITED_NODES
TCP.INVITED_NODES中存在该主机地址,则允许。否则,不拒绝。
c). TCP.EXCLUDED_NODES和TCP.INVITED_NODES都存在
如果该主机名只在TCP.INVITED_NODES列表中,则允许。
如果该主机名只在TCP.EXCLUDED_NODES列表中,则拒绝。
如果在两个列表中都存在,则允许(匹配INVITED_NODES先于EXCLUDED_NODES)
如果在两个列表中都不存在,则拒绝(后匹配EXCLUDED_NODES失败)
Continue reading

Posted in Database, Oracle.

从Oracle到MySQL传输表数据

今天有一个需求,要把一个500W行的表传输到一个MySQL数据库中。有OGG和阿里楼大大的工具(见anysql.net)两种比较好的解决方法。这里我也简单得写了一小段python代码来实现这种简单的需求。
方法:Oracle -cx_Oracle lib-> Python -MySQLdb lib-> MySQL
常见类型对应如下:
number(12) – long – decimal(12)
date – datetime – datetime
varchar2(20) – str – varchar(20)
Continue reading

Posted in MySQL, Oracle, Python|R.

使用DBMS_FILE_TRANSFER实现文件的拷贝

DBMS_FILE_TRANSFER(Oracle 10g开始提供)包用于在跨数据库、ASM和文件系统进行文件拷贝,是一个非常实用的工具。下面的一系列实验将验证这些功能。

1. 本地磁盘和ASM系统之间拷贝
使用COPY_FILE存储过程从源directory中拷贝文件到目标directory。

完成拷贝过程有这样一些限制条件:
(1). 拷贝的文件大小必须是512字节的整数倍;
(2). 拷贝的文件大小小于2TB;
(3). 执行用户对source_directory_object必须具有读权限;
(4). 执行用户对destination_directory_object必须具有写权限。
该过程只实现了文件的二进制拷贝,所以需要先将表空间read only。拷贝的过程中可以在v$session_longops动态性能视图中查看。
Continue reading

Posted in Database, Oracle.

Oracle AWR Baseline

1. Concept

基线(Baseline)是在 AWR 中标记并保留的某一重要时段的一个快照数据集。基线是定义在一对快照,即通过其快照开始和结束的序列号 (snap_id) 或开始时间和结束时间来标识的。基线的快照集包括二者之间的所有快照。
Continue reading

Posted in Database, Oracle.

Oracle 11g Flashback Data Archive

Oracle 11g 新增功能FDA(Flashback Data Archive)用于保存长久的历史数据,是数据库管理和应用开发的一个新的神器。一个数据库可以配置多个FDA对象(不同FDA对象可以有不同的属主和保留期),而每个FDA对象可以配置一个或者多个表空间存储其中的历史数据。
Continue reading

Posted in Database, Oracle.