1. 查看Oracle创建过哪些用户
>select username from all_users;
2. 查看Oracle创建过哪些表空间,表空间的名字和大小
>select t.tablespace_name, round(sum(bytes/(1024*1024)),0) ts_size
from dba_tablespaces t, dba_data_files d
where t.tablespace_name = d.tablespace_name
group by t.tablespace_name;
3. 查看表空间物理文件的名称及大小
>select tablespace_name,file_id,file_name,round(bytes/(1024*1024),0)
total_space from dba_data_files order by tablespace_name;
4. 查看表空间的使用情况
>select sum(bytes)/(1024*1024) as free_space,tablespace_name
from dba_free_space
group by tablespace_name;
SELECT A.TABLESPACE_NAME,A.BYTES TOTAL,B.BYTES USED, C.B ......
Oracle的trunc 函数一般用来 对日期和时间进行截取。
1、数字处理 。截取
select trunc(5.75),trunc(5.75,1),trunc(5.75,-1),trunc(556.234,-2) from dual;
输出:
TRUNC(5.75) TRUNC(5.75,1) TRUNC(5.75,-1) TRUNC(556.234,-2)
----------- ------------- -------------- -----------------
5 5.7 0 500
2、日期处理
如我设置系统当前日期为2010-7-23
SQL> select trunc(sysdate,'yyyy'), round(sysdate,'yyyy') from dual;
TRUNC(SYSDATE, ROUND(SYSDATE,
-------------- --------------
01-1月 -10 01-1月 -11
上面语句是根据年度进行 截取,round 在7月1日后(yyyy),16日后(mm)会加一 ......
oracle中使用on delete cascade和on delete set null来建立外键
其面我们介绍了创建外键约束时如果使用oracle默认的创建方式,在删除被参照的数据时,将无法被删除,这一点在oracle9i中给了我们更多灵活的选择,我们可是使用on delete cascade和 on delete set null关键字来决定删除被参照数据时是否要将参照这个数据的那些数据一并删除,还是将那些参照这条数据的数据的对应值赋空。
例如下面这两个表中分别存的时员工的基本信息和公司的部门信息。我们为
create table dept
(deptno number(10) not null,
deptname varchar2(30) not null,
constraint pk_dept primary key(deptno));
和
create table emp
( empno number(10) not null,
fname varchar2(20) ,
lname varchar2(20) ,
dept number(10) ,
constraint pk_emp primary key(empno));
然后我们现在分别使用这两个关键字来增加外键试一下,首先我们来试一下on delete cascade
alter table emp
add constraint fk_emp_dept foreign key(dept) references dept(deptno) on delete cascade;
先增加外键。然后插入数据。
insert into dept values(1,’销售部’);
insert into dept values(2 ......
CREATE OR REPLACE TYPE ty_str_array IS TABLE OF VARCHAR2 (4000);
CREATE OR REPLACE FUNCTION fn_split (p_str IN VARCHAR2, p_delimiter IN VARCHAR2)
RETURN ty_str_split
IS
j INT := 0;
i INT := 1;
len INT := 0;
len1 INT := 0;
str VARCHAR2 (4000);
str_split ty_str_array := ty_str_array ();
BEGIN
len := LENGTH (p_str);
len1 := LENGTH (p_delimiter);
WHILE j < len
LOOP
j := INSTR (p_str, p_delimiter, i);
IF j = 0
THEN
j := len;
str := SUBSTR (p_str, i);
& ......
首先以sysdba身份登录
sqlplus connect system/orcl as sysdba;
然后修改参数
1.sga_target不能大于sga_max_size,可以设置为相等。
2.SGA加上PGA等其他进程占用的内存总数必须小于操作系统的物理内存。
alter system set sga_target=150M scope=spfile;
alter system set sga_max_size=150M scope=spfile;
//数据库已经关闭
shutdown immediate
--重启一下实例服务
startup
--查看设置后的参数
show parameter sga ......
Oracle语句优化53个规则详解(1)
Oracle sql 性能优化调整 1. 选用适合的ORACLE优化器
ORACLE的优化器共有3种:
a. RULE (基于规则)
b. COST (基于成本)
c. CHOOSE (选择性)
设置缺省的优化器,可以通过对init.ora文件中OPTIMIZER_MODE参数的各种声明,如RULE,COST,CHOOSE,ALL_ROWS,FIRST_ROWS . 你当然也在SQL句级或是会话(session)级对其进行覆盖。
为了使用基于成本的优化器(CBO, Cost-Based Optimizer) , 你必须经常运行analyze 命令,以增加数据库中的对象统计信息(object statistics)的准确性。
如果数据库的优化器模式设置为选择性(CHOOSE),那么实际的优化器模式将和是否运行过analyze命令有关。 如果table已经被analyze过, 优化器模式将自动成为CBO , 反之,数据库将采用RULE形式的优化器。
在缺省情况下,ORACLE采用CHOOSE优化器,为了避免那些不必要的全表扫描(full table scan) , 你必须尽量避免使用CHOOSE优化器,而直接采用基于规则或者基于成本的优化器 ......