下面是類比過程1,在一個session中類比CPU高使用率,如下:declarenum int:=0;beginloopnum:=num+1;end loop;end;/2,在shell視窗用top命令查看CPU使用方式: PID USER PRI NI SIZE RSS SHARE STAT %CPU %MEM TIME CPU COMMAND 7913 oracle 25 0 24364 23M 22144 R 91.7 2.3 0:44 0
v$database:資料庫的資訊,如資料庫名,建立時間等。v$instance 執行個體資訊,如執行個體名,啟動時間。v$parameter 參數資訊,select * from v$parameter where name like '%name' ----> show parameter name(sqlplus中執行)v$process
Oracle的索引是以平衡樹的方式組織儲存的:儲存的是索引列的值,以及該行的rowid的一部分(檔案號,塊號,行號)下面我們通過例子來瞭解一下:1,create table test(id int,name varchar2(20))insert into test values(1,'A');insert into test values(2,'B');beginfor i in 3..2000 loopinsert into test values(i,'t'||i);end
本文簡單介紹一下把一台機器上的資料庫執行個體註冊到另外一台機器上的步驟,比如把機器A的資料庫執行個體註冊到機器B.1,在機器A註冊到機器B之前查看一下機器B的listener的status,如下:C:\Documents and Settings\Administrator>lsnrctl statusLSNRCTL for 32-bit Windows: Version 10.2.0.1.0 - Production on 16-JAN-2012 17:10:39Copyright
資料庫的臨時檔案和undo檔案不需要做備份,丟失後可以恢複,資料不會有丟失.一,暫存資料表空間的檔案丟失後,在資料庫啟動後自動建立,不需要做幹預.類比:在資料庫shutdown後將臨時檔案刪除,啟動的時候發現自動建立.二,undo資料表空間對應的檔案丟失.類比:在資料庫shutdown後將undo檔案刪除,啟動的時候出錯:ORA-01157: cannot identify/lock data file 2 - see DBWR trace fileORA-01110: data file 2:
過程如下:SQL> show user;USER is "SYS"SQL> create user test identified by test;User created.SQL> create table test.t(id int);create table test.t(id int)*ERROR at line 1:ORA-01950: no privileges on tablespace
不發生髒讀,使用者A對錶更新了,沒有提交,使用者B對進行查詢,沒有提交的更新不能出現在使用者的查詢結果中。執行個體類比:表test中的資料如下1,使用者A查詢:SQL> select * from test; ID NAME---------- ---------- 1 A 2 B2,使用者B:update test set name='C' where id=1;沒有提交3,使用者A重新查詢:SQL> select * from
下表是在Oracle文檔裡裡面列出的操作會對錶加上什麼類型的lock,以及該鎖和其他類型的操作的相容性。Table 13-3 Summary of Table LocksSQL StatementMode of Table LockLock Modes Permitted?RSRXSSRXXSELECT...FROM table...noneYYYYYINSERT INTO table...RXYYNNNUPDATE table ...RXY*Y*NNNDELETE FROM
在通過DML操作Oracle的視圖的時候,有一個很重要的條件是操作的base表必須是Key-Preserved Table.那麼,什麼是Key-Preserved Table呢.Oracle給出的定義是:A table is key preserved if every key of the table can also be a key of the result of the join.It is not necessary that the key or keys of a table
在應用中,很多時候會對錶的主鍵用一個自動增漲的數來付值,如Oracle的sequence,插入後又想得到的主鍵的值。下面介紹一下相關的方法。1,用Oracle 的returning 語句。PreparedStatement sta = conn.prepareStatement("INSERT INTO LOGGING VALUES (TESTSEQ.NEXTVAL,SYSDATE)returning id into ? "); sta.execute(); ResultSet
下面的指令碼在oracle中如何將一個使用者所擁有的所有對象,表,sequence,procedure。。。全部刪掉。 1,drop 對象的方式,注意要先將所有的外鍵約束刪掉。 DECLARETYPE cst_table_list IS TABLE OF VARCHAR2(40);TYPE cst_list IS TABLE OF VARCHAR2(40);TYPE name_list IS TABLE OF VARCHAR2(40);TYPE type_list IS TABLE OF
由於鎖的機制,當某一條DML或者DDL SQL語句執行被阻塞的時候,需要找出是什麼原因導致這條SQL被阻塞了,下面介紹一下通常的診斷方法:假設有這樣一個表: table t(id int primary key,val int);資料為:idval11221,在一個Session,這裡把它叫做Session A,做了如下的update語句,沒有提交或者復原.SQL> update t set val = 3 where id=1;2,在一另一個Session,這裡把它叫做Session
我們經常聽到在Oracle中,通過角色授予使用者權限的時候需要使用者重新登陸才能獲得授與權限,這句話到底怎麼理解呢?通過下面的步驟我們來理解這句話的含義.1,DBA做如下的操作:create user u1 identified by u1create role r1;grant create session to r1;grant r1 to u1;通過查詢 select * from dba_sys_privs where grantee='R1',發現許可權已經付給了角色.通過查詢