iT邦幫忙

0

資料庫設計

各位大大
目前公司有一個db server
因當初施工廠商規畫不佳,能力不足等問題
造成讀取資料速度太慢,甚至失敗等問題
系統效能常處於80%以上(db每分鐘也進行相關資料寫入及定時計算處理)

目前欲施作新的db server,為避免上述問題再次發生
有2件事情須請協助解答
1.在規劃階段,可以要求廠商提供那些資料或是甲方訂定相關基本標準,
以確認在初期規劃是正確的。
2.需要規範讀取資料的標準,例如在存取多大的資料筆數須在多少時間完成,或是可以訂定其他標準呢?

看更多先前的討論...收起先前的討論...
Albert iT邦高手 1 級 ‧ 2013-03-16 17:24:01 檢舉


1.在規劃階段,可以要求廠商提供那些資料或是甲方訂定相關基本標準,
以確認在初期規劃是正確的。



要將
開發技術發包

實作人力發包
完全拆離

例如
整個專案
[開發技術] 價值 3萬美金 , 整個專案技術 [完全示範] 教育監督
每一個
[實作工時] 價值 3百美金 , 每天要在規範下組合 300個欄位運算

訓練 300小時可以做的事情 2百美金 - 3百美金 這很棒了!!
實作 30年經驗的[開發技術] 2萬美金 - 3萬美金 這很棒了!!




2.需要規範讀取資料的標準,例如在存取多大的資料筆數須在多少時間完成,或是可以訂定其他標準呢?



要將
開發技術發包

實作人力發包
完全拆離

一切就在完全掌控中

千萬別讓 [開發技術] + [實作人力] 混合一起

Albert iT邦高手 1 級 ‧ 2013-03-16 17:27:12 檢舉
幫你設計製造模具的



幫你操作模具大量複製的

不要混為一談
既然預算很多就找顧問公司,用最大的、最好的伺服主機,將資料庫都放到RAM上,
就可以提昇n倍了!
charmmih iT邦研究生 5 級 ‧ 2013-03-16 21:17:46 檢舉
richardsuma提到:
用最大的、最好的伺服主機,將資料庫都放到RAM上

RAM 是暫存, 緩衝, 運算, 電關掉就沒了...
最終資料還是要寫到實體的磁碟上.....
Albert iT邦高手 1 級 ‧ 2013-03-16 22:24:32 檢舉
這些只會快10倍
如果以經很慢 跑個報表 8小時 快 10倍 還是 要48分鐘
要跟 [台灣最大電腦製造廠] 一樣快 100倍 一定要改程式
Albert iT邦高手 1 級 ‧ 2013-03-16 22:25:07 檢舉
[quote=albertachen]這些只會快10倍
如果以經很慢 跑個報表 8小時 快 10倍 還是 要48分鐘
要跟 [台灣最大電腦製造廠] 一樣快 100倍 一定要改程式
[/quote
這些只會快10倍
如果已經很慢 跑個報表 8小時 快 10倍 還是 要48分鐘
要跟 [台灣最大電腦製造廠] 一樣快 100倍 一定要改程式
charmmih iT邦研究生 5 級 ‧ 2013-03-17 00:30:28 檢舉
是啊...
會調整索引, 會改寫原本耗時SQL, 改寫成精準SQL, 加快百倍是容易的事.

之前一個案例:
調整客戶調撥確認作業, 由20秒以上, 進步到1秒內(約0.2秒), 只不過調了3個表格索引....
外獅佬 iT邦大師 1 級 ‧ 2013-03-17 00:40:42 檢舉
很多時候....資料庫效能的耗損,來自於過度正規化....
外獅佬 iT邦大師 1 級 ‧ 2013-03-17 00:45:58 檢舉
早期的正規化,大多目的是為了節省磁碟使用空間,
現在,儲存設備便宜了,容量也都以TB為單位在成長
是不是有需要做到這麼多階層的正規化,有待商榷。
Albert iT邦高手 1 級 ‧ 2013-03-17 07:07:14 檢舉
charmmih提到:
由20秒以上, 進步到1秒內(約0.2秒), 只不過調了3個表格索引....

表格索引
在 [台灣最大電腦製造廠] 有一堆 DBA
表格索引是基本要求,
表格索引沒做好在 [開發機][測試機] 上就被會 [修理] 了

大都是用了 DELETE / UPDATE 卡住了系統執行績效
DBA 是不調校 Developer 的程式

好幾千萬筆的 BOM 表 跟 好幾千萬筆的料件主表
一起在 Cursor 裡
代表 Developer 需要好好再教育
Oracle ERP/ASCP 原廠也都是這樣寫
因為 BENZ 需要 AMG 好好來調校

[台灣最大電腦製造廠]
[全球最大電腦服務業]
都會指定

技術轉移顧問
Albert
Skype: Adempiere/Compiere
charmmih iT邦研究生 5 級 ‧ 2013-03-17 11:32:46 檢舉
albertachen提到:
在 [台灣最大電腦製造廠] 有一堆 DBA
表格索引是基本要求,
表格索引沒做好在 [開發機][測試機] 上就被會 [修理] 了

是啊....表格索引確實是基本要求,
但是光是誰該開立, 誰該建立這些索引就推來推去,
表格索引是介於DBA,DEVELOPER中間的灰色地帶....
這樣子的表格索引, 豈不會建得2266...
有建索引,和索引建得好 是不一樣的....


albertachen提到:

大都是用了 DELETE / UPDATE 卡住了系統執行績效
DBA 是不調校 Developer 的程式

好幾千萬筆的 BOM 表 跟 好幾千萬筆的料件主表
一起在 Cursor 裡
代表 Developer 需要好好再教育

是啊....許多用到CURSOR 是不必要的,
尤其是在交易時(insert, update, delete), 不會使用批次處理的SQL,
就會動不動就用CURSOR , 然後一筆一筆的處理,
確實需要好好教育....
charmmih iT邦研究生 5 級 ‧ 2013-03-17 12:06:25 檢舉
wiselou提到:
很多時候....資料庫效能的耗損,來自於過度正規化....


有時正規化並不是效能耗損的真因,
而是正規化後, 這些表格的索引KEY值有建好索引嗎?
SA做了正規化的設計後, 會連帶為這些表格設計好使用的索引嗎?
SA一開好若不做或不會, 那資料庫的效能就會2266,
事後就需要做資料庫調校了;
沒有DBA , 或是DBA不做或不會, 那就委外吧...;
不然, 往往就是花錢做硬體提昇, 把效能硬撐上來,
就看可以用多久了, 或是考驗使用者耐性...
Albert iT邦高手 1 級 ‧ 2013-03-17 14:48:04 檢舉
charmmih提到:
是啊....表格索引確實是基本要求,
但是光是誰該開立, 誰該建立這些索引就推來推去,
表格索引是介於DBA,DEVELOPER中間的灰色地帶....
這樣子的表格索引, 豈不會建得2266...
有建索引,和索引建得好 是不一樣的....

在不幸的環境裡
會有千萬種不幸
[Developer] 沒開好 index 根本上不了 [正式機]
DBA 根本不會幫讓你上 [正式機]
你就領不到獎金,
推來推去是[管理制度]有問題
[月薪不到十萬元] 誰會把 [每隻程式萬元獎金] 推出去,
好好寫獎金不比月薪少
................
執行績效不好的程式根本過不了[專案經裡]這一關,更過不了[客戶]這一關
................
沒錯,對資料庫來說,index是非常重要的,它可以讓你上天堂,也可以讓你下地獄。
記得10多年前,我們公司有請一家軟體公司開發一套系統,第一年使用都很正常,
印1萬張票,大概30分鐘,但是第二年,因為index被改變,變成印1萬張票需要8小時,
結果花了一天4萬元,請資料庫顧問做效能調校,才將index恢復正常?

所以,資料庫的index 足以影響整個專案成功與否。
8
poemnite
iT邦研究生 3 級 ‧ 2013-03-16 09:52:36

整個看不太懂..
施工廠商 db server 能力不足?
所以, 是硬體造成的 performance 不好, 還是程式寫法的問題?
db 部份有先做過 performance tuning 了嗎?

上面的問題先確認過, 才有辦法找到解決的方法
看是要改程式, upgrade server, 或是在 db 做調整

你是可以要求廠商很多事, 有能力的接的廠商會先問你的預算有多少

Albert iT邦高手 1 級 ‧ 2013-03-17 11:37:35 檢舉

你是可以要求廠商很多事, 有能力的接的廠商會先問你的預算有多少

爛廠商
只想要你的錢
解決問題有時候是避開就好
不一定要花錢

8
Albert
iT邦高手 1 級 ‧ 2013-03-16 12:03:17

a27087提到:
各位大大
目前公司有一個db server
因當初施工廠商規畫不佳,能力不足等問題
造成讀取資料速度太慢,甚至失敗等問題
系統效能常處於80%以上(db每分鐘也進行相關資料寫入及定時計算處理)

[施工廠商規畫不佳] 你是說 Oracle ERP/ASCP 嗎 ?

Oracle 不是不佳, 是用 [習慣寫作][快速寫作] 的方法寫出來,
我們領先全球經驗
協:全球最大資訊服務業
在:全台灣最大電腦公司
將整個系統架構翻轉
不用 cursor 就會快
不用 delete 就會快
不用 update 就會快
要用 矩陣運算 就會快
要用 只承載要用的資料來運算就會快

技術轉移顧問
Albert
Skype: Adempiere/Compiere

6
summertw
iT邦好手 1 級 ‧ 2013-03-17 13:56:34

你的問題,需要現在診斷..
這種問題有千百種解答,在這裡紙上談兵,未免太輕蔑了技術的本質..
請一位專責的顧問幫你現場看診才是正道...

4
pantc328
iT邦研究生 1 級 ‧ 2013-03-17 19:32:54

albertachen

最愛開玩笑
依發文者問的問題
對這方面根本不熟
談技術的東西怎麼可能知道??

很多公司的資訊人員根本沒那麼大的能力
你跟他講Tech Detail
不用 cursor 就會快
不用 delete 就會快
不用 update 就會快
白談

你就告訴他,我一小時有多少訂單,每分鐘需處理多少訂單比數..
你只要符合我的需求
不用去管廠商怎麼做

系統要成功,一定要花錢
請22k 5個,不如花100k請一個我
資料庫打開,看Table
用工具監測一下
用壓力測試一下
.....

就知道是資料庫問題,程式問題,網路問題,磁碟問題...
哪邊問題補哪邊,最大問題解,然後第二大.....

看更多先前的回應...收起先前的回應...
Albert iT邦高手 1 級 ‧ 2013-03-17 19:48:09 檢舉

pantc328提到:
系統要成功,一定要花錢
請22k 5個,不如花100k請一個我

pantc328大大, 你跟 [全球最大資訊系統公司] 講的一樣
找我講規格一定會成功
何必去找一堆人講規格

pantc328大大, 你跟 [全台最大電腦公司] 講的一樣
如果不是請 Albert 來做
我們自己模仿他以前作法
總比 [原廠] 寫法更好

Albert iT邦高手 1 級 ‧ 2013-03-17 19:49:09 檢舉

albertachen提到:
pantc328大大

pantc328大大
你比較有 [行銷經驗]
感謝你

Albert iT邦高手 1 級 ‧ 2013-03-17 20:15:44 檢舉

pantc328提到:
你就告訴他,我一小時有多少訂單,每分鐘需處理多少訂單比數..
你只要符合我的需求
不用去管廠商怎麼做

專案技術工程 跟 專案施工人力

不分離怎麼驗收
難怪用遠搞不清

pantc328 iT邦研究生 1 級 ‧ 2013-03-18 08:40:53 檢舉

人家只要解決目前的問題
人家只是幾十人幾百人小企業

根本不用找到全球最大的電腦公司
只要找幾家系統廠商就好了

swift iT邦新手 2 級 ‧ 2013-03-18 09:21:19 檢舉

為什麼同一個post,albertachen要回三次?
是表達能力有問題?還是搶版面佔篇幅引人注意?

echen688 iT邦研究生 1 級 ‧ 2013-03-18 10:27:37 檢舉

swift提到:
為什麼同一個post,albertachen要回三次?
是表達能力有問題?還是搶版面佔篇幅引人注意?

應該是用到了電競型滑鼠.......... 偷笑

Albert iT邦高手 1 級 ‧ 2013-03-20 19:41:51 檢舉

swift 說:
為什麼同一個post,albertachen要回三次?
是表達能力有問題?還是搶版面佔篇幅引人注意?

應該是表達能力有問題
應為沒讓大家都聽懂
一定是有問題

作個好教授
一定要好好表達
讓學生誤會
一定是教授表達能力有問題

不能把學生教好
一定是教授表達能力有問題

沒能講學生能聽懂的語言
一定是教授表達能力有問題

4
kiwiaa
iT邦研究生 3 級 ‧ 2013-03-17 22:10:09

你要先訂出你DB的細部量化 別人才可依據資料加上備用空間去估出以需要的主機等級規格 你這樣講得沒人可幫得上忙

6
shuan0114
iT邦好手 1 級 ‧ 2013-03-18 08:43:01

在需求書上就清楚列出貴公司需要的,(清楚白紙黑字寫明)
包含貴公司初期要達到目標?後期資料庫效能、運行...等。
通常有能力的廠商才會來承包該案子,
記的要分階段付款,
不要一次付清款項,
很多廠商拿了錢就不太想理會了!!
(※最好在需求書中規定,要對方付一筆保證金!)

pantc328 iT邦研究生 1 級 ‧ 2013-03-18 09:10:41 檢舉

不要一次付清款項
果然有經驗

以前我都會切款項
不同驗收階段付不同的款
感覺廠商無法做,前面的錢付一付,不要再跟廠商有瓜葛
然後剩下一半的款項當成一年維護合約,一個月付一筆

Albert iT邦高手 1 級 ‧ 2013-03-18 20:02:14 檢舉

技術 與 工程 要分離

捨不得 : 30萬技術費
把日付 : 2千元/工資 當 2萬/工資 付
因此兩個都不爽

shuan0114 iT邦好手 1 級 ‧ 2013-03-19 08:54:32 檢舉

沒錯!
就是過來人的經驗,
遇到太多種情況了!!
也看曾遇過同的案子...連續讓三家公司倒閉!!XD

4
swift
iT邦新手 2 級 ‧ 2013-03-18 09:23:22

一般來說,透過SQL Monitor(MS SQL Server, Oracle也有類似的工具)去找出執行最久的SQL Command,再去分析是程式的哪一段沒寫好占用DB的resource,大概是這樣解吧...

Albert iT邦高手 1 級 ‧ 2013-03-18 19:53:11 檢舉

swift提到:
哪一段沒寫好占用DB的resource

不該用 View 用 View =/= 沒寫好

0
jojojjjo
iT邦新手 4 級 ‧ 2015-04-09 13:52:54

還要記得為server 備份, 以防止在問題發生後, 要重頭開始, 試試ahsay吧
http://www.ahsay.com/jsp/tc/home/

我要發表回答

立即登入回答