oracle SQL 面向高效率的優化

2021-06-19 15:54:05 字數 1294 閱讀 7012

一:使用表供高速緩衝(cache bufferiilg),sql語句共享!

oralce為單錶查詢提供了sql語句共享。也就是執行過的sql語句放在快取記憶體裡!下次執行相同的語句是直接執行不在重新解釋!只是針對單錶查詢有效!

sql共享的sql必須,滿足三個條件

當前被執行的語句和共享池中的語句必須完全相同 (包括大小寫、空格、換行等

語句所指物件必須完全相同 即兩條sql語句操作的資料庫物件必須同一

兩個sql語句中必須使用相同的名字的繫結變數(bind variables) ) 

sql語句出來過程

二:繫結變數解決重編譯問題

不繫結變數的sql語句每執行一次就需要在share pool 硬解析一次,一百萬使用者就是一百萬次,消耗cpu和記憶體,如果業務量大,很可能導致宕庫……

如果繫結變數,則只需要硬解析一次,重複呼叫即可

例子:未繫結變數

sprintf(sqlstr, "insert into scott.test1 (v1, v2) values 

(%d,%d)",n_var1, n_var2);

exec sql execute immediate :sqlstr ;

exec sql commit

繫結變數

strcpy(sqlstr, "insert into test (num1, num2) values (:v1, :v2)");

exec sql prepare sql_stmt from :sqlstr;

exec sql execute sql_stmt using :n_var1, :n_var2;

exec sql commit;

三:盡量公尺麵全表少苗,盡量使到rowid

四:大資料表刪除,用truncate table代替delete。

五:查詢盡量用確定的列名,少用*號

盡量少巢狀子查詢,這種查詢會消耗大量的cpu資源;對於有比較多

or運算的查詢,建議分成多個查詢,用union all聯結起來;多表查詢

的查詢語句中,選擇最有效率的表名順序。oracle解析器對錶解析從

右到左,所以記錄少的表放在右邊。

六: 盡量多用commit語句提交事務,可以及時釋放資源、解

鎖、釋放日誌空間、減少管理花費;在頻繁的、效能要求比較高的

資料操作中,盡量避免遠端訪問,如資料庫鏈等,訪問頻繁的錶可

以常駐記憶體:alter table...cache;

高效率秘籍

高效率秘籍1 能量管理 假如今天透支身體數小時,下週你可能要為此償還更多的時間。良好的能量管理有兩步 1 增加你的能量儲備。2 將你的日程表由線性的改為迴圈式的。能量儲備 1 每週有3 5次運動嗎?如果你的回答為否,你正在削弱你的潛在能量水平,除非你的醫生不讓你參加運動,否則最少每天要抽出40分鐘來...

高效率生活

如何高效率生活 我們經常會想,為什麼我天天很努力的工作可是工作還是幹不完,如何才能高效率的工作和學習呢?我想這裡有過一些想法和經驗 經驗2 完成乙個事情再休息。因為人腦和電腦很像,乙個東西只有有了結果之後,再次回想時候才能有用,每個東西都要歸根到乙個節點上,乙個完結的點之後才能由這個點拓展開來,就和...

高效率java程式設計

1 考慮使用靜態工廠方法代替構構方法來例項化類。2 使用私用構構函式,使類具有不可例項化的能力。3 避免建立重複的物件 4 消除過期的物件的使用 5 避免使用終結函式 6 使類和成員的可訪問性最小 7 介面優先於抽象 8 為所有的引數進行有效性檢查 9 謹慎使用過載 10 使用0長度的陣列,而不是空...