Oracle系統表查詢方法
資料字典dict總是屬於Oracle使用者sys的。
1、使用者:
select username from dba_users;
改口令
alter user spgroup identified by spgtest;
2、表空間:
select * from dba_data_files;
select * from dba_tablespaces;//表空間
select tablespace_name,sum(bytes), sum(blocks)
from dba_free_space group by tablespace_name;//空閒表空間
select * from dba_data_files
where tablespace_name='RBS';//表空間對應的資料檔案
select * from dba_segments
where tablespace_name='INDEXS';
3、資料庫物件:
select * from dba_objects;
CLUSTER、DATABASE LINK、FUNCTION、INDEX、LIBRARY、PACKAGE、PACKAGE BODY、
PROCEDURE、SEQUENCE、SYNONYM、TABLE、TRIGGER、TYPE、UNDEFINED、VIEW。
4、表:
select * from dba_tables;
analyze my_table compute statistics;->dba_tables後6列
select extent_id,bytes from dba_extents
where segment_name='CUSTOMERS' and segment_type='TABLE'
order by extent_id;//表使用的extent的資訊。segment_type='ROLLBACK'查看回滾段的空間分配資訊
列資訊:
select distinct table_name
from user_tab_columns
where column_name='SO_TYPE_ID';
5、索引:
select * from dba_indexes;//索引,包括主鍵索引
select * from dba_ind_columns;//索引列
select i.index_name,i.uniqueness,c.column_name
from user_indexes i,user_ind_columns c
where i.index_name=c.index_name
and i.table_name ='ACC_NBR';//聯接使用
6、序列:
select * from dba_sequences;
7、檢視:
select * from dba_views;
select * from all_views;
text 可用於查詢檢視生成的指令碼
8、聚簇:
select * from dba_clusters;
9、快照:
select * from dba_snapshots;
快照、分割槽應存在相應的表空間。
10、同義詞:
select * from dba_synonyms
where table_owner='SPGROUP';
//if owner is PUBLIC,then the synonyms is a public synonym.
if owner is one of users,then the synonyms is a private synonym.
11、資料庫鏈:
select * from dba_db_links;
在spbase下建資料庫鏈
create database link dbl_spnew
connect to spnew identified by spnew using 'jhhx';
insert into
select * from acc_nbr where nxx_nbr='237' and line_nbr='8888';
12、觸發器:
select * from dba_trigers;
儲存過程,函式從dba_objects查詢。
其文字:select text from user_source where name='BOOK_SP_EXAMPLE';
建立出錯:select * from user_errors;
oracle總是將儲存過程,函式等軟體放在SYSTEM表空間。
13、約束:
(1)約束是和表關聯的,可在create table或alter table table_name add/drop/modify來建立、修改、刪除約束。
可以臨時禁止約束,如:
alter table book_example
disable constraint book_example_1;
alter table book_example
enable constraint book_example_1;
(2)主鍵和外來鍵被稱為表約束,而not null和unique之類的約束被稱為列約束。通常將主鍵和外來鍵作為單獨的命名約束放在欄位列表下面,而列約束可放在列定義的同一行,這樣更具有可讀性。
(3)列約束可從表定義看出,即describe;表約束即主鍵和外來鍵,可從dba_constraints和dba_cons_columns 查。
select * from user_constraints
where table_name='BOOK_EXAMPLE';
select owner,CONSTRAINT_NAME,TABLE_NAME
from user_constraints
where constraint_type='R'
order by table_name;
(4)定義約束可以無名(系統自動生成約束名)和自己定義約束名(特別是主鍵、外來鍵)
如:create table book_example
(identifier number not null);
create table book_example
(identifier number constranit book_example_1 not null);
14、回滾段:
在所有的修改結果存入磁碟前,回滾段中保持恢復該事務所需的全部資訊,必須以資料庫發生的事務來相應確定其大小(DML語句才可回滾,create,drop,truncate等DDL不能回滾)。
回滾段數量=併發事務/4,但不能超過50;使每個回滾段大小足夠處理一個完整的事務;
create rollback segment r05
tablespace rbs;
create rollback segment rbs_cvt
tablespace rbs
storage(initial 1M next 500k);
使回滾段線上
alter rollback segment r04 online;
用dba_extents,v$rollback_segs監測回滾段的大小和動態增長。
回滾段的區間資訊
select * from dba_extents
where segment_type='ROLLBACK' and segment_name='RB1';
回滾段的段資訊,其中bytes顯示目前回滾段的位元組數
select * from dba_segments
where segment_type='ROLLBACK' and segment_name='RB1';
為事物指定迴歸段
set transaction use rollback segment rbs_cvt
針對bytes可以使用回滾段回縮。
alter rollback segment rbs_cvt shrink;
select bytes,extents,max_extents from dba_segments
where segment_type='ROLLBACK' and segment_name='RBS_CVT';
回滾段的當前狀態資訊:
select * from dba_rollback_segs
where segment_name='RB1';
比多回滾段狀態status,回滾段所屬例項instance_num
查優化值optimal
select n.name,s.optsize
from v$rollname n,v$rollstat s
where n.usn=s.usn;
回滾段中的資料
set transaction use rollback segment rb1;/*回滾段名*/
select n.name,s.writes
from v$rollname n,v$rollstat s
where n.usn=s.usn;
當事務處理完畢,再次查詢$rollstat,比較writes(回滾段條目位元組數)差值,可確定事務的大小。
查詢回滾段中的事務
column rr heading 'RB Segment' format a18
column us heading 'Username' format a15
column os heading 'Os User' format a10
column te heading 'Terminal' format a10
select r.name rr,nvl(s.username,'no transaction') us,s.osuser os,s.terminal te
from v$lock l,v$session s,v$rollname r
where l.sid=s.sid(+)
and trunc(l.id1/65536)=R.USN
and l.type='TX'
and l.lmode=6
order by r.name;
15、作業
查詢作業資訊
select job,broken,next_date,interval,what from user_jobs;
select job,broken,next_date,interval,what from dba_jobs;
查詢正在執行的作業
select * from dba_jobs_running;
使用包exec dbms_job.submit(:v_num,'a;',sysdate,'sysdate + (10/(24*60*60))')加入作業。間隔10秒鐘
exec dbms_job.submit(:v_num,'a;',sysdate,'sysdate + (11/(24*60))')加入作業。間隔11分鐘使用包exec dbms_job.remove(21)刪除21號作業。
相關推薦
Oracle系統表查詢方法
資料字典dict總是屬於Oracle使用者sys的。 1、使用者: select username from dba_users; 改口令 alter user spgroup identified by spgtest; 2、表空間: s
Oracle鎖表查詢和解鎖方法
數據庫查詢 lar 關系 鎖級別 share 技術 獲取 suse b2c 數據庫操作語句的分類 DDL:數據庫模式定義語言,關鍵字:create DML:數據操縱語言,關鍵字:Insert、delete、update DCL:數據庫控制語言 ,關鍵字:grant
oracle系統表及表結構查詢
查詢表結構和欄位說明資訊 --查詢所有使用者表 表結構及註釋 select t.TABLE_NAME, utc.comments, c.COLUMN_NAME, ucc.comments, c.DATA_TYPE,
常用oracle中系統表查詢語句
查詢語句 users status processes sqlplus 用戶 count rom roc sqlplus / as sysdbaSQL>select status from v$instance;1、查看最大連接數show parameter proc
Oracle系統表外鍵的更名
oracle教程 sof 麻煩 某個文件 const 刪除外鍵 詳細 浪費 拒絕 正在看的ORACLE教程是:Oracle系統表外鍵的更名。 Oracle中表的外鍵是保證系統參照完整性的手段,而參照完整性是指分布在兩個表中的列所滿足的具有主從性質的約束關系。外鍵涉及到兩個表
[轉抄]oracle單表查詢去重(效率比較高的一種方式)
sel select 單表查詢 效率 查詢 rownum 說明 acl 分組 1 select 2 * 3 from 4 ( 5 select 6 a.*, rownum r_n 7
Oracle 多表查詢
com span image 使用 eight round 外連接 src 技術 多表查詢 1.1內連接 一般使用INNER JOIN關鍵字指定內連接,INNER可以省略,默認表示內連接。查詢結果中只包含兩表的公共字段值相等的行,列可以是兩表中的任意列 1.2外
ORACLE----多表查詢語句練習
sco tag lead num creat cor 多表數據查詢 pda 查詢 一.建表 1.建立兩張表CLASSINFO,STUDENTINFO. --建表CLASSINFO;CREATE TABLE CLASSINFO ( CLASSID NUMBER(2) P
oracle多表查詢
lec 所有 oracle 日期 sin 自然連接 ner and 笛卡爾積 oracle多表查詢 --1.DEPT表按照部門跟EMP表左關聯 select ename,sal,dname,e.deptno from emp e left outer join dept d
Oracle系統表大全
ORACLE系統表處理 1.取得指定使用者的所有表名: Java程式碼 SELECT OWNER AS "物件所有者",OBJECT_NAME AS "表名",OBJECT_ID A
Oracle單表查詢(一)
1.1獲取表中所有的行與列 若領導要看所有員工的資訊,大家應該都會用,直接select * 就可以了。 1.2從表中檢索出部分行 例如我們只想看job是‘salesman’的員工,則增加判斷條件 where job='SALESMAN'(此處必須是大寫,oracle的關鍵字、表名、使用
Oracle單表查詢(二)
1.1在where子句中引用取別名的列 有時候在做報表的時候,會加上一些條件篩選,直接在別名上加判斷會比在列名上加判斷更加直觀。例如我們要查詢工資大於1500的人的工資和提成。 寫法如下: select * from (select SAL AS 工
oracle多表查詢(一)
在進行多表查詢之前,我們先查詢一下部門表和員工表有多少資料。這個可以用count完成。 select count(*) from emp; select count(*) from dept; 在這裡注意,當我們在日常工作中接手一個新的庫的時候,都會要
Oracle系統表整理+常用SQL語句收集(轉載)
原文:https://www.cnblogs.com/jiangxinnju/p/5840420.html-- DBA/ALL/USER/V_$/GV_$/SESSION/INDEX開頭的絕大部分都是檢視 -- DBA_TABLES意為DBA擁有的或可以訪問的所有的關係表。 -- ALL_TABLES意
Oracle 鎖表查詢
--以下幾個為相關表 SELECT * FROM v$lock; SELECT * FROM v$sqlarea; SELECT * FROM v$session; SELECT * FROM v$process ; SELECT * FROM v$locked_object; SELECT * F
Oracle多表查詢練習,詳細解題步驟(含執行結果)
CREATE TABLE STUDENT (SNO VARCHAR(3) NOT NULL, SNAME VARCHAR(4) NOT NULL, SSEX VARCHAR(2) NOT NULL, SBIRTHDAY DATE, CLASS NUMBER NO
Oracle多表查詢練習
SQL> --等值連線 SQL> --查詢員工資訊:員工號 姓名 月薪 部門名稱 SQL> set linesize 80 SQL> desc dept 名稱 是否為空? 型別
Oracle 多表查詢分析
這兩張表可以直接利用DEPTNO欄位關聯,所以需要利用WHERE欄位來消除笛卡爾積 以上查詢是之前基礎的加強,有明確的關聯欄位,可是很多的查詢是不會明確給出關聯欄位 例:要求查詢每個僱員的編號,姓名,職位,基本工資,工資等級 | - 確定要使用的資料表,
面試題之MySQL多表查詢方法
一使用SELECT子句進行多表查詢 SELECT 欄位名 FROM 表1,表2 … WHERE 表1.欄位 = 表2.欄位 AND 其它查詢條件 SELECT a.id,a.name,a.address,a.date,b.math,b.english,b.chinese
通用屬性系統萬能查詢方法
前段時間寫過一篇通用屬性系統設計與實現,這種屬性設計被我廣泛運用於各種複雜的系統設計之中,一切事物的特徵均可使用屬性來描述。而面對千變萬化的業務系統,一套通用的屬性體系會為我們減少難以估量的開發任務。甚至我們可以用一個通用的查詢方法支援所有型別商品(或文章等)的查詢。 這裡再將前一篇部落格的設計部分(以電商