易截截图软件、单文件、免安装、纯绿色、仅160KB
热门标签: c c# c++ asp asp.net linux php jsp java vb Python Ruby mysql sql access Sqlite sqlserver delphi javascript Oracle ajax wap mssql html css flash flex dreamweaver xml
 最新文章 : Oracle

Oracle SQL PLUS 登录 启动 关闭


Oracle SQL PLUS 基本操作1
登录
c:\>sqlplus "sys/test1234 as sysdba"  以sysdba身份登录
 
c:\>sqlplus/nolog   以nolog身份登录
sql> connect sys/test1234 as sysdba
Connected.
 
 
启动 
SQL>  startup          
正常启动  (1启动实例,2打开控制文件,3打开数据文件)
 
SQL>  startup mount    
(1启动实例,2打开控制文件) 不启动数据文件
例如进行热备份的时候,在不归档方式(No Archive Mode)下不能进行。所以要更改模式,但更改模式不允许启动数据文件,这时候就要用到mount参数来启动。在mount模式下,输入alter database archivelog  然后写 alter database open打开数据文件。
 
SQL>  startup nomount
启动实例,连控制文件也不打开,例如控制文件损坏,根本打不开的情况,在启动实例之后,重新创建控制文件。
 
 
关闭
SQL>  shutdown immediate
大多数情况下使用。迫使每个用户执行完当前SQL语句后断开连接。
 
......

Oracle SQL PLUS 登录 启动 关闭


Oracle SQL PLUS 基本操作1
登录
c:\>sqlplus "sys/test1234 as sysdba"  以sysdba身份登录
 
c:\>sqlplus/nolog   以nolog身份登录
sql> connect sys/test1234 as sysdba
Connected.
 
 
启动 
SQL>  startup          
正常启动  (1启动实例,2打开控制文件,3打开数据文件)
 
SQL>  startup mount    
(1启动实例,2打开控制文件) 不启动数据文件
例如进行热备份的时候,在不归档方式(No Archive Mode)下不能进行。所以要更改模式,但更改模式不允许启动数据文件,这时候就要用到mount参数来启动。在mount模式下,输入alter database archivelog  然后写 alter database open打开数据文件。
 
SQL>  startup nomount
启动实例,连控制文件也不打开,例如控制文件损坏,根本打不开的情况,在启动实例之后,重新创建控制文件。
 
 
关闭
SQL>  shutdown immediate
大多数情况下使用。迫使每个用户执行完当前SQL语句后断开连接。
 
......

Oracle DBA日常sql列表及常用视图

不错的资料,转过来,方便日后查看使用!!!
--监控索引是否使用
alter index &index_name monitoring usage;
alter index &index_name nomonitoring usage;
select * from v$object_usage where index_name =
&index_name;
--求数据文件的I/O分布
select
df.name,phyrds,phywrts,phyblkrd,phyblkwrt,singleblkrds,readtim,writetim
from v$filestat fs,v$dbfile df
where fs.file#=df.file# order by df.name;
--求某个隐藏参数的值
col ksppinm format a54
col ksppstvl format a54
select ksppinm, ksppstvl
from x$ksppi pi, x$ksppcv cv
where cv.indx=pi.indx and pi.ksppinm like '\_%' escape
'\' and pi.ksppinm like '%meer%';
--求系统中较大的latch
select
name,sum(gets),sum(misses),sum(sleeps),sum(wait_time)
from v$latch_children
group by name having sum(gets) > 50 order by 2;
--求归档日志的切换频率(生产系统可能时间会很长)
select
start_recid,start_time,end_recid,end_time,minutes from (select test.*,
rownum as rn
from (select b.recid
start_recid,to_char(b.first_time,'yyyy-mm-dd hh24 ......

Oracle DBA日常sql列表及常用视图

不错的资料,转过来,方便日后查看使用!!!
--监控索引是否使用
alter index &index_name monitoring usage;
alter index &index_name nomonitoring usage;
select * from v$object_usage where index_name =
&index_name;
--求数据文件的I/O分布
select
df.name,phyrds,phywrts,phyblkrd,phyblkwrt,singleblkrds,readtim,writetim
from v$filestat fs,v$dbfile df
where fs.file#=df.file# order by df.name;
--求某个隐藏参数的值
col ksppinm format a54
col ksppstvl format a54
select ksppinm, ksppstvl
from x$ksppi pi, x$ksppcv cv
where cv.indx=pi.indx and pi.ksppinm like '\_%' escape
'\' and pi.ksppinm like '%meer%';
--求系统中较大的latch
select
name,sum(gets),sum(misses),sum(sleeps),sum(wait_time)
from v$latch_children
group by name having sum(gets) > 50 order by 2;
--求归档日志的切换频率(生产系统可能时间会很长)
select
start_recid,start_time,end_recid,end_time,minutes from (select test.*,
rownum as rn
from (select b.recid
start_recid,to_char(b.first_time,'yyyy-mm-dd hh24 ......

oracle PK问题

我列出我全部的做法:

table a 有id1, str1, str2, str3


开始的pk是id1, str1, str2
希望改成id1, str1, str3
--问题
小弟先有如下问题:

一个表原来的PK是 id1+str1+str2 列
先修改成id1+str1+str3列
而这三列现在当前数据库的数据有重复的情况, 小弟现在用sql:
ALTER table a add
 
constraint PK_a primary key (id1,str1,str3) 
    USING INDEX
TABLESPACE ts
      ENABLE NOVALIDATE;


但是还是提示会出错,哪位大虾给帮忙一下~~
急啊!在线等!!!!
我的步骤:

Alter table a drop primary key drop index;
ALTER table a add
 
constraint PK_a primary key (id1, str1, str3) 
    USING INDEX
TABLESPACE ts
      ENABLE NOVALIDATE;
提示的错误:
SQL>
ALTER table evanpk add
  2    constraint PK_evanpk primary key
(id1, str1, str2) 
    USING INDEX TABLESPACE WBXOBJ_LARGE_IDX
  3    4    ......

Oracle常用系统表查询

-- get all dictionary for oracle db
select * from dict;
--select * from dictionary;
-- get all columns for dictionarys
select * from dict_columns;
-- get the default name-space for current user
select username,default_tablespace from user_users;
-- get roles for current user
select * from user_role_privs;
-- get system privilage and table privilage for current user
select * from user_sys_privs;
select * from user_tab_privs;
-- get all tables for current user
select * from user_tables;
-- get all tables whoes name includes log
select object_name,object_id from user_objects where instr(object_name,'LOG')>0
-- get the create date for a table
select object_name,created from user_objects where object_name=upper('&table_name');
-- get the size for the given table
select sum(bytes)/(1024*1024) as "size(M)" from user_segments where segment_name=upper('&table_name');
-- get tables in ram
select table_name,cache from user_tables where instr(cache,'Y')>0
-- ......

oracle解琐

alter system kill session'50,492';
--以下几个为相关表
SELECT * from v$lock;
SELECT * from v$sqlarea;
SELECT * from v$session;
SELECT * from v$process ;      
SELECT * from v$locked_object;   
SELECT * from all_objects;   
SELECT * from v$session_wait;
--1.查出锁定object的session的信息以及被锁定的object名
SELECT l.session_id sid, s.serial#, l.locked_mode,l.oracle_username,
       l.os_user_name,s.machine, s.terminal, o.object_name, s.logon_time
    from v$locked_object l, all_objects o, v$session s
   WHERE l.object_id = o.object_id
     AND l.session_id = s.sid
ORDER BY sid, s.serial# ;
--2.查出锁定表的session的sid, serial#,os_user_name, machine name, terminal和执行的语句
--比上面那段多出sql_text和action
SELECT l.session_id sid, s.serial#, l.locked_mode, l.oracle_username, s.user#,
       l.os_user_name,s.machine, s.terminal,a.sql_text, a.action&n ......

ORACLE SQL的优化


SQL的优化应该从5个方面进行调整:
1.去掉不必要的大型表的全表扫描
2.缓存小型表的全表扫描
3.检验优化索引的使用
4.检验优化的连接技术
5.尽可能减少执行计划的Cost
SQL语句:
是对数据库(数据)进行操作的惟一途径;
消耗了70%~90%的数据库资源;独立于程序设计逻辑,相对于对程序源代码的优化,对SQL语句的优化在时间成本和风险上的代价都很低;
可以有不同的写法;易学,难精通。
SQL优化:
固定的SQL书写习惯,相同的查询尽量保持相同,存储过程的效率较高。
应该编写与其格式一致的语句,包括字母的大小写、标点符号、换行的位置等都要一致
ORACLE优化器:
在任何可能的时候都会对表达式进行评估,并且把特定的语法结构转换成等价的结构,这么做的原因是
要么结果表达式能够比源表达式具有更快的速度
要么源表达式只是结果表达式的一个等价语义结构
不同的SQL结构有时具有同样的操作(例如:= ANY (subquery) and IN (subquery)),ORACLE会把他们映射到一个单一的语义结构。
1 常量优化:
常量的计算是在语句被优化时一次性完成,而不是在每次执行时。下面是检索月薪大于2000的的表达式:
sal > 24000/12
sal > 2000
sal*12 > 24000 ......

ORACLE SQL的优化


SQL的优化应该从5个方面进行调整:
1.去掉不必要的大型表的全表扫描
2.缓存小型表的全表扫描
3.检验优化索引的使用
4.检验优化的连接技术
5.尽可能减少执行计划的Cost
SQL语句:
是对数据库(数据)进行操作的惟一途径;
消耗了70%~90%的数据库资源;独立于程序设计逻辑,相对于对程序源代码的优化,对SQL语句的优化在时间成本和风险上的代价都很低;
可以有不同的写法;易学,难精通。
SQL优化:
固定的SQL书写习惯,相同的查询尽量保持相同,存储过程的效率较高。
应该编写与其格式一致的语句,包括字母的大小写、标点符号、换行的位置等都要一致
ORACLE优化器:
在任何可能的时候都会对表达式进行评估,并且把特定的语法结构转换成等价的结构,这么做的原因是
要么结果表达式能够比源表达式具有更快的速度
要么源表达式只是结果表达式的一个等价语义结构
不同的SQL结构有时具有同样的操作(例如:= ANY (subquery) and IN (subquery)),ORACLE会把他们映射到一个单一的语义结构。
1 常量优化:
常量的计算是在语句被优化时一次性完成,而不是在每次执行时。下面是检索月薪大于2000的的表达式:
sal > 24000/12
sal > 2000
sal*12 > 24000 ......
总记录数:3994; 总页数:666; 每页6 条; 首页 上一页 [253] [254] [255] [256] 257 [258] [259] [260] [261] [262]  下一页 尾页
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号