工廠內部的信任
團隊人員要互相建立信任,最好的方式就是解決別人困惱的事情。
在這件事情內,我解決工廠內部長期無法解決的問題「查詢效能太慢」,原本的系統從每次查詢需要2分鐘39秒改進到13秒(每次查詢時間)。
*本文是作者的工廠經驗,文章不包含工廠機密與特殊生產技術。
資訊部*週排程系統
我剛任職第一天讓我印象深刻,總共有23位不同職能的同事請求我協助。我光是接電話就接到手軟,他們跟我討論問題還需要排隊。在我接這個職位時,有6位程式設計師從這個公司離職,其他留在公司內的4位工程師,因為他們手頭上還有其他系統問題要負責,而這個問題不是他們的專業,所以無法處理這個系統問題。
這個改進專案我總共跟4個部門、7個職位合作,資訊部、生產管理部、製造部、廠商、資訊部經理、製造部經理、生產管理員。
*週排程系統(安排訂單系統): 指的是工廠要準備上工「生產線」的產能規畫。例如預計今天要完成那筆訂單,以及相關的生產資訊。裡面通常會記錄日期、生產線名稱、產線工作人員、生產線負責主管、生產的產品、完工數量、重工數量(rework quantity)、報廢數量。
找到問題
上班的第二天,我跟經理申請登入權限,我進去資料庫SQL server 確認一下資料庫的結構,我花了很大的工夫才把它的結構確認完畢,接下來我把所知道的實際情況,跟資訊部的同仁與經理一同報告,並提出快速的解決方案,在資料庫內新增index加快資料的查詢速度,我建立120個Indexes。
系統效能提升的部份:
程式流程:
三層式架構
web-> asp.net iis -> database SQLserver
/*每週「生產線」按排訂單生產系統*/
/*每間工廠一天最多開啟23條生產線 Assembly line or Production line*/
查詢天數: 例如 2022/4/4 – 2022/4/10 這個星期有排多少生產線
for (int j =0; j<= days; j++)/*抓取的天數 10-4 +1 =7*/
{
for(int iPL =0; iPL < PLrows.count; iPL)/*讀取每條生產線的資料*/
{
/*每週 星期一至星期日(星期日用7)*/
/*依每日取得每條產線的內的訂單*/
for(int iWeek=1; iWeek <= 7; iWeek ++)
{
if (dt_c.Rows.Count > 0)/*有資料就進行下一程式*/
{
/*從資料庫讀取資料。例如:讀取4/4 產線:A21 有排幾筆訂單。*/
}
}
}
}
資料庫效能提升
使用Microsoft SQL Server資料庫,總共提升82%效能,而裡的Tables數為80個,7個Triggers,在這個基礎上我新增加120 indexes跟 5個Stored Procedures。總共的資料筆數為八百萬筆資料,每批次新增的資料筆數為3萬筆資料。
例如: 訂單與客戶之間的join
SELECT customer_name, customer_city, customer_mail, sales_total
FROM online_customers AS oc
INNER JOIN
orders AS o
ON oc.customer_id = o.customer_id
INNER JOIN
sales AS s
ON o.order_id = s.order_id
以上述的SQL 來做例子,
所以要在這幾個位置新增index:
如果有事情找我,請到Linkedin,謝謝
轉貼政策:著明作者 Billour Ou 歐育溙 就可以自由轉貼。
關於作者:
Billour Ou
歐育溙 的資歷