Time of Update: 2017-02-27
Oracle資料庫在不同的地區被人們廣泛使用,所以就必須要有專業的Oracle人員懂得網路連接是怎麼樣影響資料庫效能的。Oracle提供的 TNS允許在每個資料庫中進行分配通訊。TNS伺服器被看作Oracle的邏輯資料請求中的絕緣體和遠程伺服器間的伺服器。同樣的,網路系統管理員有能力控制網路效能調諧性,但是Oracle管理員沒有控制影響資料庫效能的網路設定的權利。可以利用下面我所說的重要的設定來改變分布式事物元的效能。其中包括了sqlnet.ora, tnsnames.ora, 和
Time of Update: 2017-02-27
在Oracle資料庫中,undo主要有三大作用:提供一致性讀(Consistent Read)、復原事務(Rollback Transaction)以及執行個體恢複 (Instance Recovery)。一致性讀是相對於髒讀(Dirty Read)而言的。假設某個表T中有10000條記錄,擷取所有記錄需要15分鐘時間。目前時間為9點整,某使用者A 發出一條查詢語句:select * from
Time of Update: 2017-02-27
使用者要想使用Oracle資料庫,首先要與資料庫建立串連。針對資料庫連接,Oracle提供了兩種解決方式:專用連線和共用串連。大部分情況下,我們使用專用連線方式。對專用連線來說,使用者在用戶端啟動了一個應用程式,比如SQL*Plus,於是就在用戶端本地啟 動了一個使用者進程。與Oracle伺服器成功建立串連以後,就會在資料庫伺服器端產生一個對應的伺服器處理序,該伺服器處理序作為使用者進程 的代理
Time of Update: 2017-02-27
Oracle資料庫作為一個管理資料的產品,必須能夠認出使用者所提交的管理命令(通常叫做SQL語句),從而進行響應。認出的過程叫做解析SQL語句的過程,響應的過程叫做執行SQL語句的過程。解析是一個相當複雜的過程,它要考慮各種可能的異常情況,比如SQL語句涉及的對象不存在、提交的使用者沒有許可權等。而且,還需要考慮如何執行SQL語句,採用什麼方式去擷取資料等。解析的最終結果是要產生 Oracle自
Time of Update: 2017-02-27
library cache最主要的功能就是存放使用者提交的SQL語句、SQL語句相關的解析樹(解析樹也就是對SQL語句中所涉及的所有對象的展現 )、 執行計畫、使用者提交的PL/SQL程式塊(包括Anonymizer塊、預存程序、包、函數等)以及它們轉換後能夠被Oracle執行的代碼等。為了 對這些 記憶體結構進行管理,library cache中還存放了很多控制結構,包括lock、pin、dependency table等。library
Time of Update: 2017-02-27
1、LRU鏈表結構概述在前面,我們已經知道了Oracle是如何在hash chain中搜尋要找的資料區塊所對應的buffer header的過程,我們也知道如果在hash chain上沒有找到所要的buffer header時,Oracle會發出I/O調用,到磁碟上的資料檔案中擷取資料區塊,並將該資料區塊的內容複寫一份到buffer cache中的記憶體資料區塊裡。這個時候,假如buffer cache是空的,比較好辦,直接拿一個空的記憶體資料區塊來用即可。但是如果buffer
Time of Update: 2017-02-27
為了將使用者寫的SQL文本轉化為Oracle認識的且可執行檔語句,這個過程就叫做解析過程。解析分為硬解析和軟解析。一條SQL語句在第一次被執行時必須進行硬解析。當用戶端發出一條SQL語句(也可以是一個預存程序或者一個匿名PL/SQL塊)進入shared pool時(注意,我們從前面已經知道,Oracle對這些SQL不叫做SQL語句,而是稱為遊標。因為Oracle在處理SQL時,需要很多相關的輔助資訊,這些輔助資訊與SQL語句一起組成了遊標),
Time of Update: 2017-02-27
建立預存程序create or replace procedure test(var_name_1 in type,var_name_2 out type) as--聲明變數(變數名 變數類型)begin--預存程序的執行體end test;列印出輸入的時間資訊E.g:create or replace procedure test(workDate in Date) isbegindbms_output.putline('The input date
Time of Update: 2017-02-27
ORACLE日期時間函數大全TO_DATE格式(以時間:2007-11-02 13:45:25為例)Year:yy two digits 兩位年 顯示值:07yyy three digits 三位年 顯示值:007yyyy four digits 四位年 顯示值:2007Month:mm number 兩位月 顯示值:11mon abbreviated 字元集表示 顯示值:11月,若是英文版,顯示novmonth spelled out 字元集表示
Time of Update: 2017-02-27
Oracle預存程序包含三部分:過程聲明,執行過程部分,預存程序異常。Oracle預存程序可以有無參數預存程序和帶參數預存程序。一、無參程式過程文法create or replace procedure NoParProas ;begin;exception //預存程序異常 ;end;二、帶參預存程序執行個體create or replace procedure queryempname(sfindno
Time of Update: 2017-02-27
SQL
Time of Update: 2017-02-27
程序呼叫方式declarerealsal emp.sal%type;realname varchar(40);realjob varchar(40);begin //預存程序調用開始realsal:=1100;realname:='';realjob:='CLERK';runbyparmeters(realsal,realname,realjob); --必須按順序DBMS_OUTPUT.PUT_LINE(REALNAME||'
Time of Update: 2017-02-27
ORACLE中,資料表空間是資料管理的基本方法,所有使用者的對象要存放在資料表空間中,也就是使用者有空間的使用權,才能建立使用者對象.否則是不充許建立對象,因為就是想建立對象,如表,索引等,也沒有地方存放,Oracle會提示:沒有儲存配額.因此,在建立對象之前,首先要分配儲存空間.分配儲存,就要建立資料表空間:建立資料表空間樣本如下:CREATE TABLESPACE "SAMPLE"LOGGINGDATAFILE
Time of Update: 2017-02-27
對於設定shared pool的大小來說,沒有一個通用的、普遍適用的值,不同的系統負載需要不同大小的shared pool來管理。通常我們在設定shared pool時,應該遵循“不要太大、也不要太小”的原則,設定一個初始的值,然後讓系統正常運行一段時間,在這段時間裡,對shared
Time of Update: 2017-02-27
資料庫在運行過程中,不可避免地要遇到各種能夠導致資料庫損壞的情況。比如突然斷電、Oracle或者作業系統的程式bug導致資料庫內部邏輯結構損壞、磁碟介質損壞等,都有可能造成資料庫崩潰,從而導致資料丟失的現象發生。為了避免,或者說為了修複這些狀況所導致的資料丟失現象,Oracle引入了日誌緩衝區和記錄檔的概念。所謂日誌,就是將資料庫中所有改變資料區塊的操作,都原原本本地記錄下來。這些改變資料區塊的操作不僅包括對資料表的DML命令或者引起資料字典內容變化的DDL命令,還包括對索引的改變、對復原段資料
Time of Update: 2017-02-27
我們已經知道,日誌緩衝區用來存放事務對資料區塊的變化的日誌資訊。那麼這裡的日誌資訊到底包含哪些內容,是由哪些結構組成的呢?Oracle記錄資料庫變化(也就是記錄日誌資訊)的最小單位是改動向量(change
Time of Update: 2017-02-27
日誌緩衝區的內部管理分為兩部分,一部分是產生重做記錄,另一部分就是重做記錄寫入聯機記錄檔。這兩部分不是孤立的,沒有關聯的。在產生重做記錄的過程中,可能會觸發LGWR將重做記錄寫入聯機記錄檔。我們先用一個例子來說明在日誌緩衝區中的操作過程,並使用[file# , blk#]來表示某個資料區塊;file#表示檔案號;blk#表示資料區塊號。假設session 1發出更新語句:update redo_test set name='cdf' where
Time of Update: 2017-02-27
對於日誌緩衝區來說,設定過小,容易引起log buffer
Time of Update: 2017-02-27
建立觸發器建立觸發器的一般文法是:CREATE [OR REPLACE] TRIGGER trigger_name{BEFORE | AFTER }{INSERT | DELETE | UPDATE [OF column [, column …]]}[OR {INSERT | DELETE | UPDATE [OF column [, column …]]}...]ON [schema.]table_name |
Time of Update: 2017-02-27
觸發器是許多關聯式資料庫系統都提供的一項技術。在ORACLE系統裡,觸發器類似過程和函數,都有聲明,執行和異常處理過程的PL/SQL塊。1 觸發器類型觸發器在資料庫裡以獨立的Object Storage