[Microsoft — SSMS] How to Improve Job (TBC)

Dana Huang
Apr 21, 2021

--

很久沒更新了,因為最近都在做資料流程開發,非常忙碌且覺得挑戰,但看很多電腦概念。

起因: 近期公司資料量因訂單變多而增加不少,導致server 負荷變過重,於是一些job或query以往都可順利運行,現在變成會fail掉。整理幾個遇到的issue:

issue1: query got abortion

這個狀況是,你會無意中收到job這樣的訊息

這種訊息看起來就是連線壞了,但是為什麼會壞,明明好幾個月跑起來都很正常啊! 所以我一開始做法,就是把資料庫帳號換掉,公司是用Teradata account做BI上游的萃取,所以我最快的作法,就是換掉帳號,沒想到竟然就可行了。

但長期的solution還是要有品質優良的SQL query。

什麼叫做良好? 就是執行時間在3分鐘內,才知道原來SQL query,collect和generate result是分二段進行的,這個效能和你抓的資料量無關,而是你的SQL code能否讓電腦在2~3分鐘內判斷出你要抓哪裡的資料,以及資料範圍。至於如何精進SQL,之後完成後再來說明 點我

issue2: optimize the data flow

這個範圍就非常大了,因為公司是用微軟的BI solution,我們用來開發的資料流主要是SSIS,一些如何抓資料的順序與邏輯,以及各地資料源頭,都可以由他來定義,我最近遇到個最大問題是,一個SSIS package,竟然會先在Teradata資料庫更新後,一時仍抓不到資料,還有裡面某個步驟執行時間不固定,有時半小時有時一小時,這樣如何improve data flow,需要先分析出buttle neck才能執行改善。

以下圖來說,我highlight的是procedure,這個步驟不是SQL query loading資料而是用store procedure 去merge和整理資料這一段,SQL乍看之下實在看不出原因,需要各階段測試並再去追蹤這個store procedure每一段query效能紀錄吧!

資料來源:

query斷線的處理

Sign up to discover human stories that deepen your understanding of the world.

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

--

--

Dana Huang
Dana Huang

Written by Dana Huang

我做數據處理的工作已超過五年,從資料驗證、報表整理到自動化呈現,形形色色的工具真的用不完,突然覺得透過網址寫寫寫心路歷程還不錯!另外也記錄一些生活、工作與理財相關的心情記錄與訊息!

No responses yet