ORACLE管理常用sql
来源:互联网 发布:淘宝返现怎么领取 编辑:程序博客网 时间:2024/04/24 00:04
查杀session:
set heading off;
set pagesize 0;
col sessions format a80
Select '***--***>>No.'||rownum||': '||b.sid||','||b.serial#||' --['|| b.status||']--> '||a.sql_text sessions
From V$sql a, V$session b
Where b.sql_address=a.address
and b.sql_hash_value=a.hash_value
and b.username='ORCL';
alter system kill session 'sid,serial#' ;
查看表空间使用率
set pagesize 0;
set heading off;
select
df.tablespace_name "表空间名",
totalspace "总空间M",
totalspace-freespace "使用空间M",
round((1-freespace/totalspace)*100,2) "使用率%"
from
(select tablespace_name,round(sum(bytes)/1024/1024) totalspace from dba_data_files group by tablespace_name) df,
(select tablespace_name,round(sum(bytes)/1024/1024) freespace from dba_free_space group by tablespace_name) fs
where df.tablespace_name=fs.tablespace_name order by 1;
表空间所有数据文件
set heading off;
set long 90000;
col tablespace_name format a30
col file_name format a80
select tablespace_name, file_name from dba_data_files order by 1,2
表空间总数据文件大小
select round(sum(bytes)/1024/1024) totalspace from dba_data_files where tablespace_name = 'TS_200607_DATA';
改变数据文件的大小
select 'alter database datafile '''||file_name||''' resize 28M;'
from dba_data_files
where tablespace_name like upper('TS_200607_DATA') and bytes!=1024*1024*24
查看回滚段命中率情况
select
rn.name,rs.gets 被访问次数,
rs.waits 等待回退段块的次数,
(rs.waits/rs.gets)*100 命中率
from v$rollstat rs, v$rollname rn;
查看表的分区
select distinct partition_name from user_tab_partitions order by 1;
查看表空间的所有表(但是表可能会跨表空间)
select distinct segment_name from user_segments where tablespace_name='TS_STAT_DATA';
col segment_name format a25
select table_name, index_name from user_indexes where table_name in (
select segment_name
from user_segments
where tablespace_name='TS_ORDER_DATA_2006Q4'
and segment_name like 'T_ORDER_USER_%'
group by segment_name)
order by 1
select dbms_metadata.get_ddl('INDEX','IDX_FLOW_ACCT_200701_FEETYPE','ORCL') from dual;
表空间所有表的所有索引
select table_name, index_name from user_indexes
where table_name in (select distinct segment_name from user_segments where tablespace_name='TS_STAT_DATA')
and index_name like 'IDX_%'
order by 1;
set heading off;
set echo off;
Set pages 999;
set long 90000;
spool clear.sql
select 'drop index '||index_name||';' from user_indexes
where table_name in (select distinct segment_name from user_segments where tablespace_name='TS_STAT_DATA')
and index_name like 'IDX_%'
order by 1;
spool off;
select table_name, index_name from user_indexes
where index_name in (
select distinct segment_name from user_segments where tablespace_name='TS_TEST') order by 1,2;
select 'drop index '||index_name||';' from user_indexes
where index_name in (
select distinct segment_name from user_segments where tablespace_name='TS_TEST');
-- 查看建表语句
set heading off;
set echo off;
Set pages 999;
set long 90000;
spool get_single.sql
select dbms_metadata.get_ddl('TABLE','T_SYS_STATION','ORCL') from dual;
--select dbms_metadata.get_ddl('INDEX','INDXX_PQZJYW','SCOTT') from dual;
spool off;
ORACLE数据库的PL/SQL语句执行的优化器,有基于代价的优化器(CBO)和基于规则的优化器(RBO)。
RBO的优化方式,依赖于一套严格的语法规则,只要按照规则写出的语句,不管数据表和索引的内容是否发生变化,不会影响PL/SQL语句的"执行计划"。
CBO自ORACLE7版被引入,ORACLE自7版以来采用的许多新技术都是只基于CBO的,如星型连接排列查询,哈希连接查询,反向索引,索引表,分区表和并行查询等。CBO计算各种可能"执行计划"的"代价",即cost,从中选用cost最低的方案,作为实际运行方案。各"执行计划"的cost的计算根据,依赖于数据表中数据的统计分布,ORACLE数据库本身对该统计分布是不清楚的,须要分析表和相关的索引,才能搜集到CBO所需的数据。
CBO是ORACLE推荐使用的优化方式,要想使用好CBO,使SQL语句发挥最大效能,必须保证统计数据的及时性。
统计信息的生成可以有完全计算法和抽样估算法。SQL例句如下:
完全计算法: analyze table abc compute statistics;
抽样估算法(抽样20%): analyze table abc estimate statistics sample 20 percent;
对表作完全计算所花的时间相当于做全表扫描,抽样估算法由于采用抽样,比完全计算法的生成统计速度要快,如果不是要求要有精确数据的话,尽量采用抽样分析法。建议对表分析采用抽样估算,对索引分析可以采用完全计算。
sqlplus scott/tiger << EOF
set pagesize 5000
set heading off
SPOOL ANALYTAB.SQL
SELECT "ANALYZE TABLE SCOTT."||TABLE_NAME||" ESTIMATE STATISTICS SAMPLE 20 PERCENT ;" FROM USER_TABLES;
SPOOL OFF
SPOOL ANALYIND.SQL
SELECT "ANALYZE TABLE SCOTT."||TABLE_NAME||" ESTIMATE STATISTICS SAMPLE 20 PERCENT FOR ALL INDEXES;" FROM USER_TABLES;
SPOOL OFF
SPOOL ANALYZE.LOG
@ANALYTAB.SQL
@ANALYIND.SQL
SPOOL OFF
EXIT
ALTER DATABASE ADD LOGFILE GROUP 4('/data1/oradata/ORCL/sys/redo04.log') SIZE 51200K reuse;
ALTER DATABASE ADD LOGFILE GROUP 5('/data2/oradata/ORCL/sys/redo05.log') SIZE 51200K reuse;
ALTER DATABASE ADD LOGFILE GROUP 6('/data3/oradata/ORCL/sys/redo06.log') SIZE 51200K reuse;
ALTER DATABASE ADD LOGFILE GROUP 1 (
'/data1/oradata/ORCL/sys/redo11.log',
'/data2/oradata/ORCL/sys/redo12.log',
'/data3/oradata/ORCL/sys/redo13.log',
'/data4/oradata/ORCL/sys/redo14.log') SIZE 1048576K reuse;
实现:
1、首先查看系统有哪些回滚段及其状态。
col owner format a20
col status format a10
col segment_name format a20
col tablespace_name format a20
col segment format a30
SELECT OWNER,SEGMENT_NAME,TABLESPACE_NAME,SUM(BYTES)/1024/1024 M
FROM DBA_SEGMENTS
WHERE SEGMENT_TYPE='ROLLBACK'
GROUP BY OWNER,SEGMENT_NAME,TABLESPACE_NAME
/
DROP SEQUENCE "ORCL"."SEQ_SYS_ALARM_ID";
CREATE SEQUENCE "ORCL"."SEQ_SYS_ALARM_ID"
start with 1
maxvalue 99999999
minvalue 1
cycle
order;
DROP SEQUENCE "SEQ_SYS_FAV_ID";
CREATE SEQUENCE "SEQ_SYS_FAV_ID"
increment by 1
start with 1
maxvalue 999999999
minvalue 1
cycle
order;
set pagesize 0;
set heading off;
col TABLESPACE_NAME format a16;
col file_name format a60;
select TABLESPACE_NAME, file_name from dba_data_files order by 1,2;
select 'drop TABLESPACE '||TABLESPACE_NAME||' including contents and datafiles;' from dba_tablespaces order by 1;
create undo tablespace TS_UNDO DATAFILE
'/data2/oradata/sys/ts_undo.dbf' size 6G reuse AUTOEXTEND ON NEXT 512M MAXSIZE UNLIMITED;
alter system set undo_tablespace=TS_UNDO;
create temporary tablespace TS_TEMP TEMPFILE
'/data2/oradata/sys/tmp_file.dbf' size 10G reuse AUTOEXTEND ON NEXT 5M MAXSIZE UNLIMITED
EXTENT MANAGEMENT LOCAL uniform size 1M;
ALTER DATABASE DEFAULT TEMPORARY TABLESPACE TSTEMP;
create bigfile tablespace TS_TEST DATAFILE
'/data2/oradata/sys/test.dbf' size 10G reuse AUTOEXTEND ON NEXT 512M MAXSIZE UNLIMITED
EXTENT MANAGEMENT LOCAL segment space management auto;
create bigfile tablespace TBS_SYS
datafile '/data1/oradata/ORCL/df_sys.dbf' size 2G reuse AUTOEXTEND ON NEXT 64M MAXSIZE UNLIMITED
NOLOGGING EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;
- ORACLE常用管理SQL
- ORACLE管理常用sql
- oracle管理常用SQL
- Oracle数据库管理常用SQL
- oracle 常用sql 管理篇
- Oracle SQL常用管理与操作命令
- ORACLE DBA常用SQL脚本工具->管理篇(1)
- oracle 常用管理 SQL 命令一句通 (陆续增加中......)
- Oracle锁管理中常用的3个SQL语句
- ORACLE DBA常用SQL脚本工具->管理篇(1)
- Oracle管理中常用的SQL语句——用户信息
- 【oracle】oracle常用sql
- Oracle常用管理命令
- ORACLE 常用管理脚本
- oracle 常用管理命令
- oracle常用管理命令
- 管理常用SQL语句
- 管理常用SQL语句
- ASP.NET AJAX入门系列(7):使用客户端脚本对UpdateProgress编程
- C++ 运算符优先级列表
- ASP.NET AJAX入门系列(8):自定义异常处理
- ASP.NET AJAX入门系列(9):在母版页中使用UpdatePanel
- ASP.NET AJAX入门系列(10):Timer控件简单使用
- ORACLE管理常用sql
- 欢迎认识编程爱好者
- linux内核及其目录结构
- web.xml详解
- ASP.NET AJAX入门系列(11):在多个UpdatePanle中使用Timer控件
- Spring对Struts的整合
- Hash Functions for Hash Table Lookup
- 人民币升值的背后阴谋(转)
- ssh