2008年12月18日星期四

ORACLE concepts笔记

commit comment参考sql ref
reco进程在两段式提交里的作用 参考concepts 114
自治plsql块 查pl sql ref
表大于255列的情况可以参考 concepts 121
数据行p122

表压缩部分:
表压缩只用于只读环境
表压缩与重定义的包相关 dbms_redefinition
null值在b树索引不会被计入索引,在集群列上的索引或着位图索引则会计入索引

什么情况下使用临时表需要再查查
查询视图也可以使用绑定变量
to_char,to_date,to_number三个函数的NLS参数需要注意,在视图定义的时候也可以指定。

外部表和sql loader作为数据加载的工具很好,需要看看。
escape处理转义字符
likec是针对国家字符集的,比如NCHAR
any和some是要其中任何一个,但是二者也有差别,需要再查查
all是所有的

视图也可以增删改,但是应该如何写DDL
物化视图可以用于分布式环境下的数据复制,也可以用于移动环境下的数据同步,也就是说在ETL操作中很好用
查到的资料说多维物化视图可以提供对多维数据的访问能力,但是OC上说MV伤的约束也可以做,具体怎么做?
物化视图的日志用于记录基表的变更信息
dimension用于数据仓库表示层次关系,结合物化视图学习

可见和不可见索引
基于函数的索引的deterministic关键字
将索引和表置于不同的表空间,OC里的解释似乎有问题
索引组指标上的位图索引和普通表的区别在于,由于索引组指标没有真正的物理ROWID,因此用一个映射表来存储ROWID和键值,之后对映射表做索引
关于OC p152的UROWID的问题
关于应用域索引的问题可以查阅oracle db cartridge developer's guide
hash cluster适用于大量返回值的等值查询

查看系统对象依赖:DBA_DEPENDENCIES,DEPTREE.....
远端程序调用的依赖控制,时间戳检查,特征检查(仅用于RPC)
设置会话级别的RPC:
alter session set remote_dependencies_mode={signature|timestamp}
DB级别:alter system
建议:
1 server端PLSQL用户使用timestamp
2 如果在分布式环境下避免不必要的重编译,应该使用signature mode
3 客户端应该为signature mode,因为,其一不需要重新编译过程,就建立新的应用程序,其二,不影响客户端就可以进行server端升级
4 使用signature mode是,在package中间或者末尾添加新函数或者新过程是会重编译
一些对象被重编译后,共享池内的sql会被标记为无效,下次进行重解析

数据字典保护:07_dictionary_accessibility=false,只允许sys用户访问
v$result_cache...用于查看结果缓存
使用result cache提示来缓存结果集
设置result_cache_mode来控制缓存的结果集用于所有查询还是仅用于带提示的查询
v$bgprocess视图获取后台进程的信息
job$视图查询job信息
private_sga可以限制共享服务器模式下会话私有数据的大小
数据库初始化参数shared_servers和max_shared_servers用于控制共享服务器模式下的连接数

使用ORACLE内部的连接池(池化模式)
以sysdba登陆:
exec dbms_connection_pool.start_pool('sys_default_connection_pool');
tns中的连接字符串
...(server=pooled)
purity可以指定重用池化session/new session

listener这块还有问题,需要再看看书

alter session用于改变用户会话参数
alter system用于改变实例参数
alter database才是改变数据库参数

contention争用的问题怎么解决?

没有评论: