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@]
利用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
Statspack分析报告详解(3)
5.首要等待事件常见等待事件说明:oracle等待事件是衡量oracle运行状况的重要依据及指示,主要有空闲等待事件和非空闲等待事件。TIMED_STATISTICS:=TRUE,等待事件按等待的时间排序,= FALSE,等待事件按等待的数量排序。运行statspack期间必须session上设置TIMED_STATISTICS = TRUE。空闲等待事件是oracle正等待某种工作,在诊断和优化数据库时候,不用过多注意这部分事件,非空闲等待事件专门针对oracle的活动,指数据库任务或应用程序运行过程中发生的等待,这些等待事件是我们在调整数据库应该关注的。Top 5 Timed Events~~~~~~~~~~~
Statspack分析报告详解(2)
Statspack分析报告详解: statspack 输出结果中必须查看的十项内容 1、负载间档(Load profile) 2、实例效率点击率(Instance efficiency hit ratios) 3、首要的5个等待事件(Top 5 wait events) 4、等待事件(Wait events) 5、闩锁等待 6、首要的SQL(Top sql) 7、实例活动(Instance activity) 8、文件I/O(File I/O) 9、内存分配(Memory allocation) 10、缓冲区等待(Buffer waits1.报表头信息数据库实例相关信息,包括数据库名称、ID、版本号及主机等信息。STATSPACK report for DB Name DB Id Insta
Statspack分析报告详解(1)
调整STATSPACK 的收集门限Statspack 有两种类型的收集选项:级别(level):控制收集数据的类型门限(threshold):设置收集的数据的阈值。1.级别(level)Statspack 共有三种快照级别,默认值是5a.level 0: 一般性能统计。包括等待事件、系统事件、系统统计、回滚段统计、行缓存、SGA、会话、锁、缓冲池统计等等。b.level 5: 增加SQL 语句。除了包括level0 的所有内容,还包括SQL 语句的收集,收集结果记录在stats$sql_summary 中。c.level 10: 增加子锁存统计。包括level5 的所有内容。并且还会将附加的子锁存存入stats$lathc_children
ORACLE分析函数手册
Oracle从8.1.6开始提供分析函数,分析函数用于计算基于组的某种聚合值,它和聚合函数的不同之处是对于每个组返回多行,而聚合函数对于每个组只返回一行。下面例子中使用的表来自Oracle自带的HR用户下的表,如果没有安装该用户,可以在SYS用户下运行$ORACLE_HOME/demo/schema/human_resources/hr_main.sql来创建。少数几个例子需要访问SH用户下的表,如果没有安装该用户,可以在SYS用户下运行$ORACLE_HOME/demo/schema/sales_history/sh_main.sql来创建。如果未指明缺省是在HR用户下运行例子。 开窗函数的的理解:开窗函数指定了分析函数工
ORACLE分析函数手册二
REGR_ (Linear Regression) Functions 功能描述:这些线性回归函数适合最小二乘法回归线,有9个不同的回归函数可使用。 REGR_SLOPE:返回斜率,等于COVAR_POP(expr1, expr2) / VAR_POP(expr2) REGR_INTERCEPT:返回回归线的y截距,等于 AVG(expr1) - REGR_SLOPE(expr1, expr2) * AVG(expr2) REGR_COUNT:返回用于填充回归线的非空数字对的数目 REGR_R2:返回回归线的决定系数,计算式为: If VAR_POP(expr2) = 0 then return NULL If VAR_POP(expr1) = 0 and VAR_POP(exp
ORACLE回滚段(2)
查询回滚段的信息 所用数据字典:DBA_ROLLBACK_SEGS 可以查询的信息:回滚段的标识(SEGMENT_ID)、名称(SEGMENT_NAME)、所在表空间(TABLESPACE_NAME)、类型(OWNER)、状态(STATUS)。 例: SQL>SELECT segment_name,tablespace_name,owner,status FROM dba_rollback_segs; 回滚段的统计信息 数据字典:V$ROLLNAME,V$ROLLSTAT 例: SQL>SELECT n.name,s.extents,s.rssize,s.optsize,s.hwmsize,s.xacts,s.status FROM v$rollname n,v$rollstat s WHERE n.usn=s.usn; 回滚段的当前活动事务