關於執行一段時間後sql變慢原因分析

2021-06-02 02:05:42 字數 799 閱讀 4871

突然某天接到某個介面執行變慢,呼叫超時的故障。

這個介面是乙個儲存過程,在前幾天剛加入了新的sql進去。

通過斷點這個儲存過程,發現確實是卡在了這個新新增的sql中。

把sql扣出來,做oracle的執行計畫分析,發現該用到索引的地方都用了,並且儲存過程的效率看起來是不低的。

總結下現象:

某個sql執行了一段時間,在出問題之前,效率是沒問題的,但是某天突然變慢,直接影響到了應用的執行效率,執行計畫沒問題,索引也沒失效。

分析:既然索引沒問題,執行計畫沒問題,那麼問題應該不在sql上。

通過後台分析,發現oracle執行該條語句的時候有兩套執行計畫,一套是走索引的,效率上沒問題,一套是走全表掃瞄的,執行計畫看起來也是沒問題的,但是確實和走索引的是一樣的的效率,明顯是不正確的。

解決方法:

既然問題定位到了oracle中,那麼目前就是讓oracle強制使用索引了,此時需要用到oracle的hint

列出幾個常用的:

/*+full(table)*/

表明對錶選擇全域性掃瞄的方法.

例如:select /*+full(a)*/ emp_no,emp_nam from bsempms a where emp_no=』scott』;

/*+index(table index_name)*/

表明對錶選擇索引的掃瞄方法.

例如:select /*+index(bsempms ***_index) use ***_index because there are fewmale bsempms */ from bsempms where ***=』m';

lwip執行一段時間後ping時間延長

原文 很多在學習lwip的時候,都遇到過 剛開始ping 裝置的時候返回時間都在1ms以下,可是工作了一段時間後,ping返回的時間卻越來越長,甚至達到了超時的程度,通過使用ip tool等抓包工具可以發現,其實是有資料返回的,只不過返回的間隔太久了,有的達到了3000ms以上,可是這已經超出了tc...

雙網絡卡IIS執行一段時間後假死

故障現象 區域網中伺服器,作業系統多見於win2003server,win2003serser 的事件檢視器不時顯示 名稱 workgroup 1d 不能註冊到 ip 位址 xx.xx.xx.xx1 的介面上。具有 ip 位址 xx.xx.xx.xx2 的機器沒有 允許這個名稱被此機器占用。事件 為...

最近一段時間

嗯。乙個是從那時候開始忙了一段時間,然後就沒有時間寫博,而且那段時間也緊張,還有就是人的劣根性 惰性。從那時候開始,大概過了一周5.30號的進候辭職了,因為拿到了南京一家公司的offer,很快,大概是週三面試,周五面試,周五下午發offer。然後周一去辭職的。一切都是這麼快。其實為什麼決定這麼快,因...