推 JoeHorn:維護、除錯的方便,DBMS 異質整合、轉移、備份、更版...07/01 22:36
我也有原PO的疑問
可以在DB內一次處理好的事情 為何要拉到AP上來做呢!?
目前還沒碰到大型的專案 所以真的不太清楚SP的缺點
(除了SP真的很難Debug...)
今天如要UPDATE一筆User資料 可能需要三句SQL指令
(判斷是否已存在 選擇要Insert Or update)
1. SELECT * FROM User WHERE User_Id = @User_Id
2. INSERT INTO User VALUES(User_Id, User_Name)
3. UPDATE User SET User_Name = @User_Name WHERE User_Id = @User_Id
如果全部寫在AP裡 需要二次DB Connection
那一般這種狀況會用SP嗎!?
又假設今天可能要從三個Table各自抓出資料做運算然後再存回另外一個Table
如果單純以AP來做的話 可能就是各自抓出來塞進變數
然後排列組合運算後再存進另一個Table
這樣一來不就會用到更多DB Connection!?
一直以來觀念都是 DB Connection是最耗資源的部份
所以像這種狀況 只要不涉及太複雜的邏輯 (SP無法處理)
通常都會在SP裡處理掉就好
想請教除了Debug以外 有沒有其他缺點的實際狀況能夠描述一下!?
--
◢ █◣ ◢◢◣ ◢◣◥████
◢███◣ ◢ ◣ █╴█╴█ ████
███▉█ ◢█◢ ◣◢ ██ ≡███≡ ◥█
███▉█ ◢▉█ ◢██ ███ ◢██ ◢██ ███ ◥█﹋█◤ ◎ █
█▇▇▇◤ █▉█ █▇▇ █▇▏ ▉▇▇ █▉█ ██ ▉▉█▏▏/ ◢█
██▇▏◣ █▇█ ▇▇█ ██▏ ███ █▇█▎██ █▉▉█▏▏█ rushcat
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 219.87.128.113
※ 編輯: rushcat 來自: 219.87.128.113 (07/02 18:16)
※ 引述《RichFU (小富哥~~~)》之銘言:
: 請問為什麼現在很多application都盡量避免把mail logic放在
: stored procedure呢?
: 以stored procedure方式可以集中化處理邏輯,也可以減少
: application對資料庫的呼叫次數,效能上不是也會比較好?
: 還是有什麼缺點存在所以才避免放在procedure?