這篇文章將為大家詳細講解有關SQL存儲過程是如何快速執行的,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。
曾經維修一些老系統,查詢一個報表,在漫長的等待之后,仍然出來不來結果,而客戶端往往是單線程的,這段時間用戶只能等的干瞪眼,做不了任何其它的事情,即使讓人暴躁如雷,但仍然只能忍受。
客戶將查詢慢的問題投訴過來,處理的工程師往往發現查詢的存儲過程寫的太爛,其實查詢的數據量并不大,算法也并不如何的復雜,但結果硬是讓爛存儲過程給害了。往往對爛存儲過程進行優化以后,原來執行需要30分鐘,現在可能就只需要幾秒鐘。
寫出好的存儲過程,其實是有規可循的。算法無非是時空轉換,要寫出執行快速的存儲過程,就要盡量地空間(內存空間)換時間(CPU處理時間)。對存儲過程來說,緩存往往就是臨時表。在臨時表中創建必需要用到的字段,多余的字段一個也不要。然后定義嚴格的過濾條件從源表中將數據插入臨時表中。中間的計算處理都對臨時表進行,如果需要將處理結果更改回源表,再從臨時表中將數據更新回源表。這樣充分利用了內存空間而盡量地少占用CPU的處理時間。竊以為這就是撰寫存儲過程的道。
關于SQL存儲過程是如何快速執行的就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。