oracle常用總結

1、查看錶空間詳細信息
select * from dba_data_files order by tablespace_name

2、創建表空間:
create tablespace HEATPUMP
logging
datafile ‘E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\heatpump01.DBF’
size 200m
autoextend on
next 200m maxsize unlimited
extent management local;

3、查看當前用戶每個表佔用空間的大小:
select t.tablespace_name, segment_name,sum(bytes)/1024/1024 from user_extents t group by segment_name,t.tablespace_name

4.修改表的空間
alter table TABLE_NAME move tablespace TABLESPACENAME
查詢當前用戶下的所有表
select t.tablespace_name, ‘alter table ‘|| table_name ||’ move tablespace tablespacename;’ from user_tables t;
5.修改表的索引的空間
alter index INDEX_NAME rebuild tablespace TABLESPACENAME
查詢當前用戶下的所有索引
select t.tablespace_name, ‘alter index ‘|| index_name ||’ rebuild tablespace tablespacename;’ from user_indexes t;

–創建表空間
create tablespace hr2
logging
datafile ‘E:\oracle\product\10.2.0\oradata\test\hr2_data1.dbf’
size 80m
autoextend on
next 200m maxsize 20480m
extent management local
blocksize 8k;–默認8K,可以修改,其作用見”三”中說明;


alter tablespace USERS add datafile ‘E:\oracle\product\10.2.0\oradata\USER_data3.dbf’
size 200m autoextend on next 200m maxsize unlimited;

–創建表
–SENSORVALUE blob
create table TESTDATA2
(
PRIMARYKEY CHAR(30) not null,
HOWLONG FLOAT not null,
SENSORVALUE varchar2(4000)
)
tablespace TBS_USER
pctfree 10
initrans 1
storage
(
initial 20M
minextents 1
maxextents unlimited
);
– Create/Recreate primary, unique and foreign key constraints ,注意修改默認表空間
alter table TESTDATA2
add constraint PK_TESTDATA_2 primary key (PRIMARYKEY, HOWLONG); –tablespace TBS_USER;

–刪除表空間
drop tablespace TBS_USER including contents;
drop tablespace TBS_USER including contents;
–DROP TABLESPACE “index01” INCLUDING CONTENTS AND DATAFILES CASCADE CONSTRAINTS;
DROP TABLESPACE HR2 INCLUDING CONTENTS AND DATAFILES CASCADE CONSTRAINTS; –HR1,HR2,TBS_USER

alter database datafile ‘E:\oracle\product\10.2.0\oradata\TBS_USER_DATA1.dbf’ offline drop;

–1、查詢當前系統中正在執行的sql:
SELECT osuser, username, sql_text from vsessiona,v sqltext b
where a.sql_address =b.address order by address, piece;
–4、oracle 查看已經執行過的sql 這些是存在共享池中的:
select * from v$sqlarea t order by t.LAST_ACTIVE_TIME desc;

–5、【獲取oracle前10條最耗資源的sql語句】:
SELECT * FROM (SELECT PARSING_USER_ID EXECUTIONS,SORTS,COMMAND_TYPE, DISK_READS,sql_text FROM v$sqlarea
ORDER BY disk_reads DESC
) WHERE ROWNUM<11;

–表空間詳細信息
select * from dba_data_files order by tablespace_name
–查看錶空間使用情況
select dbf.tablespace_name,dbf.totalspace “總量(M)”,dbf.totalblocks as 總塊數,dfs.freespace “剩餘總量(M)”,dfs.freeblocks “剩餘塊數”,
(dfs.freespace / dbf.totalspace) * 100 “空閒比例”
from (select t.tablespace_name,sum(t.bytes) / 1024 / 1024 totalspace,sum(t.blocks) totalblocks from dba_data_files t
group by t.tablespace_name) dbf,
(select tt.tablespace_name,sum(tt.bytes) / 1024 / 1024 freespace,sum(tt.blocks) freeblocks from dba_free_space tt
group by tt.tablespace_name) dfs
where trim(dbf.tablespace_name) = trim(dfs.tablespace_name);

–查看錶佔用空間情況
select segment_name,sum(bytes)/1024/1024 from user_extents group by segment_name;

—-查詢表空間的數據文件
SELECT * FROM dba_data_files WHERE tablespace_name = ‘USERS’;
–查詢出表空間對應的數據文件,在磁盤空間允許的情況下
ALTER DATABASE DATAFILE ‘E:\oracle\product\10.2.0\oradata\orcl\USERS_2.DBF’ RESIZE 15000M;
–如果表空間需要自動擴展或者有最大值限制的
ALTER DATABASE datafile ‘E:\oracle\product\10.2.0\oradata\orcl\USERS_2.DBF’ autoextend ON NEXT 100M maxsize 20000M;
–另外,查看用戶對錶空間的使用限額:如果maxsize 字段值爲 -1,則是無限制,如果有其他值,則該值是最大值
SELECT * FROM user_ts_quotas;

–查看用戶下的所有表
select ‘alter table ‘|| table_name ||’ move tablespace tablespacename;’ from user_all_tables;
–查詢當前用戶下的所有索引
select ‘alter index ‘|| index_name ||’ rebuild tablespace tablespacename;’ from user_indexes;

select count(*) from testdata2;
select max(t.howlong) from testdata2 t;
select min(t.howlong) from testdata2 t;
select t.PRIMARYKEY,HOWLONG from testdata2 t order by howlong;
select t.PRIMARYKEY,HOWLONG,t.SENSORVALUE from testdata2 t where t.howlong<0.0003;

truncate table testdata2;

–select t.PRIMARYKEY,HOWLONG,sensorvalue from testdata2 t where t.howlong <0.00008 order by howlong;
select * from vsessionwaithistory;selectfromv sqlarea;

–查看當前的等待事件
select * from v$session_wait where event = ‘direct path read temp’;

select count(*) from sensorconfig;

6、查詢oracle表的信息(表,字段,約束,索引)
通過搜索摸索,總結了一下oracle中查詢表的信息,包括表名,字段名,字段類型,主鍵,外鍵唯一性約束信息,索引信息查詢SQL如下,希望對大家有所幫助:
1、查詢出所有的用戶表
select * from user_tables 可以查詢出所有的用戶表
通過表名過濾需要將字母作如下處理
select * from user_tables where table_name = upper(‘表名’)
因爲無論你建立表的時候表名名字是大寫還是小寫的,create語句執行通過之後,對應的user_tables表中的table_name字段都會自動變爲大寫字母,所以必須通過內置函數upper將字符串轉化爲大寫字母進行查詢,否則,即使建表語句執行通過之後,通過上面的查詢語句仍然查詢不到對應的記錄。
2、查詢出用戶所有表的索引
select * from user_indexes
3、查詢用戶表的索引(非聚集索引):
select * from user_indexes where uniqueness=’NONUNIQUE’
4、查詢用戶表的主鍵(聚集索引):
select * from user_indexes where uniqueness=’UNIQUE’
5、查詢表的索引
select t.*,i.index_type from user_ind_columns t,user_indexes i where t.index_name = i.index_name and
t.table_name=’NODE’
6、查詢表的主鍵
select cu.* from user_cons_columns cu, user_constraints au where cu.constraint_name = au.constraint_name and
au.constraint_type = ‘P’ AND cu.table_name = ‘NODE’
7、查找表的唯一性約束(包括名稱,構成列):
select column_name from user_cons_columns cu, user_constraints au where cu.constraint_name=au.constraint_name and
cu.table_name=’NODE’
8、查找表的外鍵
select * from user_constraints c where c.constraint_type = ‘R’ and c.table_name=’STAFFPOSITION’
查詢外鍵約束的列名:
select * from user_cons_columns cl where cl.constraint_name = 外鍵名稱
查詢引用表的鍵的列名:
select * from user_cons_columns cl where cl.constraint_name = 外鍵引用表的鍵名
9、查詢表的所有列及其屬性
方法一:
select * from user_tab_columns where table_name=upper(‘表名’);
方法二:
select cname,coltype,width from col where tname=upper(‘表名’);;

7、Oracle內存大小
show parameter sga;

3.2.2 修改SGA
要修改SGA的大小,應使用以下命令:
alter system set sga_max_size=164M scope=spfile;
這裏我修改爲164M,你可以改成你想要的大小。由於sga_max_size是一個靜態參數,不能夠在運行時修改,因此這裏的scope只能設置爲spfile,新的內存大小將在Oracle重啓後生效。

問題1:
簡單解決“ORA-27100: shared memory realm already exists”的問題
折騰Oracle時,出現了“ORA-27100: shared memory realm already exists”的問題。上網查問題根源,乃是32位機SGA及PGA不能大於1.7G之故。
SGA的設置在SPFILEORCL.ORA裏面,但該文件是一個二進制文件,不好隨便編輯。
網上給的解決辦法是用一個“正常的”PFILE啓動Oracle,然後重新生成SPFILE,操作頗繁瑣。其實SGA過大的問題也不難解決,不必用“PFILE”那樣曲折迂迴的辦法:用一個二進制編輯器打開SPFILEORCL.ORA文件,可以發現其配置信息中有部分是可讀的文本,找到“sga_max_size=”,將其後的數值改小,保存文件,再重新啓動Oracle即可。

8、創建觸發器,其中定義變量
CREATE OR REPLACE TRIGGER “BEFOREINSERT_INSSTATUS”
before insert on INSTRUMENT_STATUS for each row
declare nrow number;
begin
select count(*) into nrow from INSTRUMENT_STATUS t where (t.siteid= :new.siteid) and t.instrumentid= :new.instrumentid;
if nrow > 0 then
delete from INSTRUMENT_STATUS t where (t.siteid= :new.siteid) and t.instrumentid= :new.instrumentid;
end if;
end;
9.創建表空間
create tablespace heatpump
logging
datafile ‘D:\app\Administrator\oradata\orcl\heatpump.dbf’
size 50m
autoextend on
next 50m maxsize 20480m
extent management local;

發佈了45 篇原創文章 · 獲贊 8 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章