看板 Database 關於我們 聯絡資訊
※ 引述《adrianshum (Alien)》之銘言: : 問題在於 scalability. : DB 相比起 app server, scalability 不可同日而語. : 你的系統可能用 SP, 應付一百人沒問題, 但要應付一 : 千人, DB 機器的 CPU, memory 都花在 biz logic 上, : 你要找一部更強的 DB 並不是想那麼容易, 價錢也可以 : 嚇你一大跳. : 同樣能應付一百人份量的複雜 SP 的 DB, 單用來作簡 : 單的CRUD operation, biz logic 移回 app server, : DB 應付一千人份量的 simple CRUD 說不定也綽綽有餘. : 一般作為 transactional 類型的 application, 要應付 : 多一些 user, 差不多按比例加 app server 數類就行了. : (DB 可不是簡單加 server 就能應付更多 user) : 當然不能一刀切. 有些大量資料的處理, 比如 batch : processing 之類, 把部份東西放回 SP 做也是蠻正常 : 的做法. : (這類單談 performance/scalability, multi-tier 對 : 於架構和設計上的好處就不說了) 之前已經提過,SP應該避免把不必要的邏輯放進來,如果一個邏輯 能複雜到消耗過多的cpu cycle或是memory,基本上要被歸類到不必 要的邏輯去。 要提到scalability,原則上要視每個case而定,有的時候邏輯放在 SP反而能夠scale,你舉得batch processing是一個例子,其他像是 減少不必要的大量資料回傳到APP、有hot table/block的情況、或是 減低lock contention時,把(部份)邏輯放在SP反而是對scalability 有幫助。 在performance上,使用SP有很大的優勢,在scalability上,並沒有 一定,要依各個case而定。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 71.142.74.199