stored procedure 收集session wait 信息
OWI --用 stored procedure 收集session wait 信息包括对象如下:event_seq: 序列,用于唯一标识每一条记录dc_event_data: 表,用于存储session wait信息dc_collect:存储过程,用于定期收集各个session wait信息,并保存到dc_event_data表中。根据建议,频率可保持在一分钟一次,而不影响系统性能。dc_analyze: stored procedure. 用于分析和具体化表dc_event_data中的记录--想法来源于<<Oracle Wait Interface A Practical Guide to Performance Diagnostics & Tuning>>--------------------------------------------SEQ
深入了解SCN
SCN: System Change NumberSCN是顺序递增的一个数字,在Oracle 中用来标识数据库的每一次改动,及其先后顺序。SCN的最大值是0xffff.ffffffff。Oracle对SCN的管理单节点的Instance中单节点的instance中,SCN值存在SGA区,由system commit number latch保护。任何进程要得到当前的SCN值,都要先得到这个latch。RAC/OPS环境中Oracle通过排队机制(Enqueue)实现SCN在各并行节点之间的顺序增长。具体有两种方法:Lamport算法:又称面包房算法,先来先服务算法。跟很多银行采用的排队机制一样。客户到了银行,先领取一个服务号。一旦某个窗口出现
oracle的比率(1)
1、shared_pool命中率:1.1、库缓存(Library cache)GETS:parse locks gets,在Library cache申请获得该命名空间对象的锁的次数,gets级别高于pins,必须先获得锁,然后执行pins。GETHITS:在库缓存中成功获得对象锁的次数。GETHITRATIO:反映在cache中成功获得对象锁的成功率,如果在cache中找不到所要的对象,就会读硬盘上的文件并缓存到cache中,按照LRU算法换出一些最近最久不用的数据页,如果对象失效reload,这个值应该大于85%。这个比率低主要和应用程序相关。object has been locked exclusively or the application is infrequently referen
Oracle Data block 的物理结构
1. Data Block 物理结构图:2. 一次对block的dump过程:SQL> create table t9 (a varchar(10));Table created.SQL> insert into t9 values('a');1 row created.SQL> commit;Commit complete.SQL> set serveroutput onSQL> exec show_space('T9');Free Blocks.............................1Total Blocks............................8Total Bytes.............................65536Unused Blocks...........................6Unused Bytes............................49152Last Used Ext FileId....................3L
ORACLE中的时区
html,body { border: 0px; }1. How to check the session time zone ?=======================================Answer------The new SESSIONTIMEZONE built-in SQL function returns the value of the currentsession's time zone.SQL> SELECT SESSIONTIMEZONE FROM DUAL;SESSIONTIMEZONE---------------+01:002. How to set the session time zone ?=====================================Answer------The session time zone can be set to:- O/S local time zone- Database time zone- An absolute offset- A nam
基于函数的索引
/*从Oracle8i第1版(8.1.5)推出以来,我们可以利用基于函数的索引, function-based index,简称为FBI,函数索引的两个主要作用:1、只对限定的行创建索引,节约空间,提高检索速度:我们可以利用函数索引只把我们经常关心的某一部分数据进行索引,而其他的数据没有进入B*树索引,这样我们就可以节省了索引空间。2、 优化WHERE子句中使用了函数的sql语句:因为在以前版本,在WHERE子句中使用函数会使在这个表上创建的索引没法利用,从而难以提高这个语句的性能。*/一、标准索对于值为NULL的数据不进行索引create table test ( id int );create
ORACLE SEQUENCE的简单介绍
在oracle中sequence就是所谓的序列号,每次取的时候它会自动增加,一般用在需要按序列号排序的地方。 1、Create Sequence 你首先要有CREATE SEQUENCE或者CREATE ANY SEQUENCE权限, CREATE SEQUENCE emp_sequence INCREMENT BY 1 -- 每次加几个 START WITH 1 -- 从1开始计数 NOMAXVALUE -- 不设置最大值 NOCYCLE -- 一直累加,不循环 CACHE 10; 一旦定义了emp_sequence,你就可以用CURRVAL,NEXTVAL CURRVAL=返回 sequence的当前值 NEXTVAL=增加sequence的值,然后返回 sequence 值 比如: emp_sequence.CURRVAL emp
ORACLE DSI
什么是DSI?.就把这做为第一个题目.DSI是Data Server Internals的缩写,是Oracle公司内部用来培训Oracle售后工程师使用的教材.这样的文档上通常都印着:Oracle Confidential:For internal Use Only.所以传播这类文档通常是为Oracle所禁止的,但是因为一些特殊的原因,这些文档在民间也多有流传.你可以从Google找到一些相关信息.但是关于任何DSI教材的交流,索取都是相当敏感的.很多人因为文档机密所以趋之若鹜,这也许是不适当的.对于初学者,这些文档是不适宜的,因为从这里开始相对艰深,这些教材需要阅读者具有相当深厚的技术基础;初学者应该从基
ORACLE数据加密
ops$tkyte@DEV816> variable x varchar2(25)ops$tkyte@DEV816> ops$tkyte@DEV816> exec :x := 'How Now Brown Cow';PL/SQL procedure successfully completed.ops$tkyte@DEV816> ops$tkyte@DEV816> declare2 l_data varchar2(255);3 begin4 l_data := rpad( :x, (trunc(length(:x)/8)+1)*8, chr(0) );5 6 dbms_obfuscation_toolkit.DESEncrypt7 ( input_string => l_data,8 key_string => 'MagicKey',9 encrypted_string=> :x );10 end;11 /PL/SQL procedure successfully completed.ops$tkyte@DEV816> ops$tk
当前日志损坏的案例
[oracle@ts01 oracle]$ sqlplus ''''/ as sysdba''''SQL*Plus: Release 9.2.0.4.0 - Production on Tue Nov 15 10:35:11 2005Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.Connected to:Oracle9i Enterprise Edition Release 9.2.0.4.0 - ProductionWith the Partitioning, OLAP and Oracle Data Mining optionsJServer Release 9.2.0.4.0 - ProductionSQL> conn / as sysdbaConnected.SQL> 在另一个SESSION:[oracle@ts01 oracle]$ cd /oracle/oradata/TSMISC02[oracle@ts01 TSMISC02]$ lltotal 681820d
18位身份证校验算法
身份证校验码算法 身份证校验码产生方法:∑(ai×Wi)(mod 11)i: 表示号码字符从由至左包括校验码在内的位置序号;ai 表示第i位置上的号码字符值;Wi 第i位置上的加权因子,其数值Wi=mod(power(2,(n-1)),11)i 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1Wi 7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2 1相应的校验码:∑(ai×WI)(mod 11) 0 1 2 3 4 5 6 7 8 9 10校验码字符值ai 1 0 X 9 8 7 6 5 4 3 2CREATE OR REPLACE FUNCTION f_id_verify(pid VARCHAR2) RETURN VARCHAR2 ISRESULT VARCHAR2(18);TYPE char_tabletype IS TABLE OF VARCHAR2(1
Oracle数据类型简介
一、概述 在ORACLE8中定义了:标量(SCALAR)、复合(COMPOSITE)、引用(REFERENCE)和LOB四种数据类型,下面详细介绍它们的特性。 二、标量(SCALAR) 合法的标量类型与数据库的列所使用的类型相同,此外它还有一些扩展。它又分为七个组:数字、字符、行、日期、行标识、布尔和可信。 数字,它有三种基本类型--NUMBER、PLS_INTEGER和BINARY_INTENER。NUMBER可以描述整数或实数,而PLS_INTEGER和BINARY_INTENER只能描述整数。 NUMBER, 是以十进制格式进行存储的,它便于存储,但是在计算上,系统会自动的将它转换成为二
在sqlplus中操作blob和clob
create directory utllobdir as 'd:'create table blobtest(col1 BLOB);create table clobtest(col1 cLOB);--insert BLOBdeclarea_blob BLOB;bfile_name BFILE := BFILENAME('UTLLOBDIR','teslob.doc');begininsert into blobtest values (empty_blob())returning col1 into a_blob;dbms_lob.fileopen(bfile_name);dbms_lob.loadfromfile(a_blob, bfile_name, dbms_lob.getlength(bfile_name));dbms_lob.fileclose(bfile_name);commit;end;--update BLOBdeclarea_blob BLOB;bfile_name BFILE := BFILENAME('UTLLOBDIR','log.txt');beginup
物理读和内存读较高SQL
SELECT t.HASH_VALUE,t.EXECUTIONS,t.DISK_READS,round(t.DISK_READS/t.EXECUTIONS) AS perDiskReads, t.BUFFER_GETS,round(t.BUFFER_GETS/t.EXECUTIONS) AS perBufferReads,t.ELAPSED_TIME,round(t.ELAPSED_TIME/t.EXECUTIONS) AS perElayTime,t.CPU_TIME,round(t.CPU_TIME/t.EXECUTIONS) AS perCpuTime,t.FIRST_LOAD_TIME,t.SQL_TEXTFROM v$sql tWHERE (t.DISK_READS/t.EXECUTIONS > 500 OR t.BUFFER_GETS/t.EXECUTIONS > 20000)AND t.EXECUTIONS > 0ORDER BY 6 DESC;[@more@]
有关oracle高可靠性的一些讨论和想法(5)
附件4:ROSE HA & ESCORT DA 双机热备架构方案 以下是一份双机热备份的方案大家可以参考参考,并没有指定要用下面的产品,只是希望大家对双机有一个了解 ROSE HA & ESCORT DA 双机热备架构方案 一、 前言 对 现代企业来说,利用计算机系统来提供及时可靠的信息和服务是必不可少的;另一方面,计算机硬件与软件都不可避免地会发生故障,这些故障有可能给企业带来极 大的损失,甚至整个服务的终止,网络的瘫痪。可见,对一些特别的企业或公司,系统的高可用性显得更为重要。因此,必须有适当的措施来确保计算机系统提供不 间断的
查看和存储过程相关对象
ORACLE:SELECT * FROM USER_DEPENDENCIES WHERE NAME='P_CHECK_SITE' AND REFERENCED_TYPE='TABLE'SQLSERVER:select name from sysobjects where id in(select distinct bb.depid as kkfrom sysobjects join sysdepends bb on bb.id = sysobjects.idwhere sysobjects.name='存储过程名')[@more@]
利用DBMS_METADATA包获取权限信息
Oracle的9i增加了DBMS_METADATA包,从此在需要得到对象的创建脚本时,不再需要通过查询多张系统视图去自己拼凑结果了。只需要调用这个包中的GET_DDL过程就可以轻松的获取对象的创建脚步。不过很多人对DBMS_METADATA包的了解仅限与此。当需要获取用户的权限时,往往还是采用通过到数据字典中读取的方式,其实DBMS_METADATA包本身就支持获取权限信息。DBMS_METADATA 的GET_GRANTED_DDL过程可以用于获取用户的授权信息。Oracle支持的授权相关信息类型包括:OBJECT_GRANT、 SYSTEM_GRANT、ROLE_GRANT、DEFAULT_ROLE、TABLESPACE_Q
裸设备基础知识
裸设备,也叫裸分区(原始分区),是一种没有经过格式化,不被Unix通过文件系统来读取的特殊字符设备。本文收集裸设备和Oracle问答20例。 1.什么叫做裸设备? 裸设备,也叫裸分区(原始分区),是一种没有经过格式化,不被Unix通过文件系统来读取的特殊字符设备。它由应用程序负责对它进行读写操作。不经过文件系统的缓冲。 2.如何辨别裸设备? 在Unix的/dev 目录下,有许多文件,其中有两个大类:字符设备文件和块设备文件。 字符设备特殊文件进行I/O操作不经过操作系统的缓冲区,而块设备特殊文件用来同外
Oracle9i中的监听动态注册
在Oracle9i中,使用命令lsnrctl status可以看到如下例子:Service "lrdb" has 2 instance(s).Instance "lrdb", status UNKNOWN, has 1 handler(s) for this service...Instance "lrdb", status READY, has 1 handler(s) for this service...这是Oracle9i监听器行为的不同之处的第一个线索,因为Instance "lrdb"出现了两次。出现额外条目是因为,数据库在启动时通过一个被称为动态注册的进程在监听器中注册信息。相应地,如果数据库通过listener.ora文件中的信息在监听器中注册数据库着称为静态注册
Statspack分析报告详解(4)
9.实例活动Instance Activity Stats for DB: BLISSDB Instance: blissdb Snaps: 4 -5Statistic Total per Second per Trans--------------------------------- ------------------ -------------- ------------CPU used by this session 4,870 4.5 194.8CPU used when call started 4,870 4.5 194.8CR blocks created 45 0.0 1.8DBWR buffers scanned 24,589 22.8 983.6DBWR checkpoint buffers written 14,013 13.0 560.5DBWR checkpoints 5 0.0 0.2……dirty buffers inspected 38,834 36.0 1,553.4 --脏缓冲的个数free buffer inspecte