2011年3月8日星期二

統計情報自動取得

統計情報自動取得について調べる

1.実行ジョブについて

SQL> col JOB_NAME for a30
SQL> col SCHEDULE_NAME for a40
SQL> select JOB_NAME ,SCHEDULE_NAME from DBA_SCHEDULER_JOBS;

JOB_NAME SCHEDULE_NAME
------------------------------ ----------------------------------------
AUTO_SPACE_ADVISOR_JOB MAINTENANCE_WINDOW_GROUP
GATHER_STATS_JOB MAINTENANCE_WINDOW_GROUP
FGR$AUTOPURGE_JOB
PURGE_LOG DAILY_PURGE_SCHEDULE

2.WINDOW_GROUP詳細を調べる

SQL> col WINDOW_GROUP_NAME for a30
SQL> col WINDOW_NAME for a20
SQL> select WINDOW_GROUP_NAME ,WINDOW_NAME from DBA_SCHEDULER_WINGROUP_MEMBERS;

WINDOW_GROUP_NAME WINDOW_NAME
------------------------------ --------------------
MAINTENANCE_WINDOW_GROUP WEEKNIGHT_WINDOW
MAINTENANCE_WINDOW_GROUP WEEKEND_WINDOW

3.WINDOW詳細を調べる
SQL> col WINDOW_NAME for a20
SQL> col REPEAT_INTERVAL for a80
SQL> col DURATION for a30
SQL> select WINDOW_NAME ,REPEAT_INTERVAL ,DURATION from DBA_SCHEDULER_WINDOWS;

WINDOW_NAME REPEAT_INTERVAL DURATION
-------------------- -------------------------------------------------------------------------------- ------------------------------
WEEKNIGHT_WINDOW freq=daily;byday=MON,TUE,WED,THU,FRI;byhour=22;byminute=0; bysecond=0 +000 08:00:00
WEEKEND_WINDOW freq=daily;byday=SAT;byhour=0;byminute=0;bysecond=0 +002 00:00:00



参照:http://d.hatena.ne.jp/nijimass/20080619/1213878812

2011年2月23日星期三

ORACLE RAC学习记录

Oracle RAC主要需要解决的问题就是如何进行协作操作。

主要分为

1.存储介质共享
2.各个实例之间的协作操作需要的数据共享
3.某部分结点出现问题是的解决方法
4.支持各部时间的其他辅助设置

2.
1)CSR
OCSSD(Oracle Cluster Synchronization Service Daemon), 提供2种Heartbeat

4.支持各部时间的其他辅助设置
1)网络
网络层要分为3层
数据访问层:向外部提供数据库的访问
存储介质层:向数据库实例提供数据的访问
实例共享层:用于数据库各实例之间访问

2011年2月15日星期二

HP-UNIX用 TERMINAL set script

if [ "$TERM" == ]
then
eval `tset -s -Q -m ':?hp'`
else
eval `tset -s -Q `
fi

stty erase "^H" kill "^U" intr "^C" eof "^D"
stty hupcl ixon ixoff
stty -istrip
tabs

2011年1月24日星期一

HTML5学习材料

英文学习资料 http://diveintohtml5.org

2010年12月6日星期一

TEMPFILEの作り直す

TEMP領域が一度使われたら、v$sort_segment内の数字は減らすことができません。
それをリセットする方法を紹介します。

1.TEMPDATAを削除
  alter database tempfile '/path/to/temp/file' drop;
2.TMEPDATAを追加しなおす
  alter tablespace temp add tempfile '/path/to/temp/file';

※TEMP領域名は temp とする場合

2010年11月26日星期五

ORACLE里面的统计行数

ORACLE里面有很多统计用的函数,比如COUNT, SUM, MAX, LAST_VALUE, FIRST_VALUE。
乍一看可能觉得很好理解,没什么复杂的。
但是如果一个窗口的概念不弄明白的话,你会觉得很复杂,很难用,然后怀疑这些个函数都不好用了。

比方说你想一张薪水的历史记录表,
salary_history
emp_id,
salary,
update_date

你想找出每个人最新的薪水的值
select last_value(salary) over (partition by emp_id order by update_date rows between unbounded preceding and unbounded following) from salary_history;

其中 rows between unbounded preceding and unbounded following 就是指定了窗口:所有的数据。
如果不指定的话,默认的窗口是 range between unbounded preceding and current row,也就是当前记录为止的所有记录。

这个默认窗口只是对有order by的数据才有效, 而max, count函数如果不指定order by, 那么他的对象就是所有的数据。这点在ORACLE的文档里并没有提及的。

2010年11月9日星期二

通过表移动来提高Oracle表的空间利用率

表经过多次的插入,更新,删除之后,会存在断片化的问题。表空间的使用率降低,而且影响性能。
可以用以下的方法来改善。

alter table tab1 move;
alter index tab1_ind1 rebuild;
alter index tab1_ind2 rebuild;

表的移动,内部动作是把表数据拷贝到临时表空间,复制处理结束后,切换掉旧的表空间,所以需要有空余的表空间才能支持这个操作。
索引重建是因为旧的ROWID发生变化,导致无效