『壹』 如何診斷Oracle資料庫運行緩慢或hang住的問題 第3頁
如何診斷Oracle資料庫運行緩慢或hang住的問題
1 JDK是c/c++寫的, 編譯就是把JDK編譯成可以運行的狀態, 可運行的意思是指可以編譯運行.java文件. 而一般情況下官方下載的JDK都是已經幫你編譯好而已.
2 作者可以用自己編譯的, 也可以用官方編譯好的. 這個要看書中的說明了
3 JDK是c/c++寫的, 裡面和其他c++程序沒什麼區別, windows下面是一堆dll和一堆exe. 你說的.java文件是JDK的功能之一, 幫你編譯java文件成class, JVM是運行class文件的容器
『貳』 Oracle資料庫里什麼情況下select操作會hang住
你說的問題比較奇怪,可能是你的程序邏輯問題,不應該是Oracle的問題
oracle支持MVCC,允許你在加寫鎖的時候,其它查詢可以讀取這個數據。但不會出現把所有記錄A欄位的值變掉的問題。
你再仔細確認一邊吧,關注中。。。
『叄』 資料庫實例HANG住了,具體是什麼原因
可以看一下系統中是否有多個pmon進程,如果有幾個pmon進程,就說明有幾個實例。命令如下: ps -ef|grep ora_pmon 解釋:pmon進程,進程監視器(Process Monitor)oracle中用於恢復失敗的資料庫用戶的強制性進程,它先獲取失敗用戶的標識,釋放該用戶佔有的所有資料庫資源。一般一個oracle實例只能有一個pmon進程,可能通過查看pmon進程的多少來判斷有幾個實例。
『肆』 資料庫因為什麼情況會出現checkpoint not complete
當我們進行redo 切換的時候,會觸發checkpoint 事件。 觸發該事件有5個條件。 下文有說明。 Checkpoint做的事情之一是觸發DBWn把buffer cache中的Dirty cache磁碟。另外就是把最近的系統的SCN更新到datafile header和control file(每一個事務都有一個SCN),做第一件事的目的是為了減少由於系統突然宕機而需要的恢復時間,做第二件事實為了保證資料庫的一致性。
Checkpoint will flush dirty block to datafile, 從而觸發DBWn書寫dirty buffer,等到redo log覆蓋的dirty block全部被寫入datafile後才能使用redo log(循環使用),如果DBWn寫入過慢,LGWR必須等待DBWn完成,則這時會出現「checkpoint not completed!」。 所以當出現checkpointnot competed的時候,還會伴隨cannot allocate new log的錯誤。
如果遇到這個問題,可以增加日誌組和增大日誌文件,當然也可以修改 checkpoint參數使得檢查點變頻繁一些。
在出現這個錯誤的時候,資料庫是短暫hang住的,等待checkpoint的完成。 在hang住的時候,沒有日誌產生。
『伍』 如何診斷Oracle資料庫運行緩慢或hang住的問題
把oralcle的OracleServiceORCL服務設置為手動啟動就可以了。每次開機啟動肯定會讓你電腦慢,特別是電腦內存小。至於怎嘛找應該知道吧:我的電腦右鍵-》管理-》服務-》OracleServiceORCL-》手動
『陸』 連接本地oracle資料庫卡死
你說的卡死,就是資料庫hang住了吧
先看看操作系統資源使用情況
再看看alert日誌中有沒有記錄
『柒』 伺服器 文件系統hang住是什麼意思
暫時停止執行。
如果系統HANG住了,這個時候做一個SYSTEM STATE DUMP,對於分析HANG的原因十分重要,但是很多情況下,系統HANG住了就無法登錄。
找到一個前台進程的PID(ps -ef|grep LOCAL),然後用gdb $ORACLE_HOME/bin/oracle進行跟蹤來解決此問題。
『捌』 oracle停止過程中hang住怎麼解決
1. 在V$ACCESS視圖中找到要停止進程的SID:
SELECT SID FROM V$ACCESS WHERE NAME='存儲過程名稱';
2. 在V$SESSION視圖中查找到查出SID和SERIAL#
SELECT SID,SERIAL#,FROM V$SESSION WHERE SID='剛才查到的SID'。
3.殺掉查找出來的進程
alter system kill session 'SID,SERIAL#' immediate;
解釋:進程都有唯一的進程id(SID)和序列號(SERIAL#),之後通過kill命令即可強制停止進程。
『玖』 如何mysql 進程 hang 住
Class.forName(className) 實際上是調用Class.forName(className, true, this.getClass().getClassLoader())。注意第二個參數,是指Class被loading後是不是必須被初始化。 ClassLoader.loadClass(className)實際上調用的是ClassLoader.loadClass(name, false),第二個參數指出Class是否被link。 區別就出來了。Class.forName(className)裝載的class已經被初始化,而ClassLoader.loadClass(className)裝載的class還沒有被link
『拾』 oracle 的hint有什麼用
相對而言ORACLE優化器已經非常智能,產生的執行計劃也是最優的,但是ORACLE還是提供了一些hint供用戶顯示的控制執行計劃,因為大千世界各種各樣的業務都有,ORACLE優化器生成的執行計劃並不一定適用於所有業務,同時hint對於DBA而言更是一件利器,我們可以通過hint看到優化後的執行計劃,總結一下常用hint。1.全表掃描hintfull(table_name)相對而言,全表掃描hint使用場合較少,但是要知道,全表掃描並不一定比索引效率低,特別是查詢表中80%以上的資料庫,全表掃描的效率要高於索引掃描。2.索引hintindex(table_nameindex_name)這兩種hint一個是強制使用索引,另一個是強制執行計劃不要走索引,什麼用呢?常用於SQL調優過程中對比索引和非索引掃描。3.索引快速掃描hintindex_ffs(table_nameindex_name)這種索引稱之為索引快速掃描,常用於統計索引列鍵值的個數,如count(object_id),跟全表掃描很像,但效率要比全表掃描要高很多,也就是執行計劃中看到的FASTFULLSCN。4.索引跳躍掃描hintindex_ss(table_nameindex_name)該hint在執行計劃中就是傳說中的INDEXSKIPSCAN這個對新手而言不太好理解,舉個例子索引有兩個列(A,B)類型組合索引,但是查詢中where條件只有B沒有Aselect*fromwhereb=1,此時ORACLE優化器走的索引就是所謂的索引跳躍掃描,只在CBO下適用,在RBO不適用。5.表關聯hintuser_nl(table_name1table_name2)此hint是表之間關聯效率最高的一種,通常用於一大一小兩表之間進行關聯查詢,小表作驅動表進行全表掃描,大表上要求有索引,走索引掃描,代價最低。6.表關聯hintuse_hash(table_name1table_name2)如果兩個表一大一小,但是大表沒有索引就會選擇HASH,如果兩個結果集比較小還可以承受,但是如果兩個較大的表HASH的話,會直接將資料庫HANG住,最好避免這種演算法7.表關聯hintuser_merge(table_name1table_name2)兩個表進行關聯,分別對全個表進行全表掃描後排序然後進行合並,排序既消耗內存又消耗CPU,總之代價比較大,常通過在兩個表上創建索引避免此類連接的發生。因此對比後發現,只有nested_loop方式進行關聯是最優的。8.表順序hintleading(table_name1table_name2)在RBO模式下,我們常常通過考慮from後面表的先後順序來進行SQL優化,但是此方法對RBO模式不再適用,CBO模式下按照順序選擇驅動表9.數據載入hintappend()直接路徑載入,對於大表操作極為有用,原理是什麼呢?打個比方,好比兩個超市理貨員,一人一箱貨需要上架到貨架上,一個人去找貨架中空閑位置去放,可能需要找N個空閑位,另一個人找一個空的貨架直接放上去,那個效果最高?當然是第二個,此hint的作用就是讓ORACLE找一個大空親塊直接存放新數據,而不是擠空閑位置去放新數據,如果此hint同時加上nologing聯合使用效果更高,常用於數據遷移項目中。10.dblink處理端hintdriving_site(table_name)此hint常用於通過dblink連接處理數據的業務,它的作用是將本地表推送到遠端資料庫進行關聯然後將結果返回,常用於本地表較小,遠端表較大的情況,效果很是不錯。11.數據返回模式hintfirst_rows該hint是影響數據返回模式hint,添加後ORACLE將邊處理邊返回,數據倉庫中用的比較多,但是在OLTP系統中也常見,上次系統優化就因為一兄弟在添加hint時,添加後發現執行計劃沒變,於是將原有的hintfirst_rows然後添加hintdriving_site(),執行計劃是變了,變化是因去去掉first_rows引起的,並且通過dblink遠端資料庫執行時查詢全變成的全表掃描,導致兩個業務大表hash,業務高峰直接將資料庫宕機,因此該hint添加或刪除一定要看遠端執行計劃有無發生變化,否則後果不開設想(切記)。