台灣最大程式設計社群網站
線上人數
745
 
會員總數:245598
討論主題:189304
歡迎您免費加入會員
討論區列表 >> MS SQL >> 設定及語法執行的效能
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
設定及語法執行的效能
價值 : 100 QP  點閱數:1132 回應數:3

樓主

阿杜
初學者
81 105
1916 116
發送站內信

捐贈 VP 給 阿杜
請問, 若有一個欄位是存放"日期"(年月日, 如:2011/11/11),

大家在設定欄位屬性時會開datetime還是nvarchar(8)?

在效能上何者較佳呢?

因為我的資料量很少, 所以感覺不出來有什麼差!

另外, 若現在有一sql script, 若直接於程式中下script, 和先做成view, 再者使用預存程序, 較者較快呢?

記得之前查的文章, 是預存程序較快。

請各位高手解惑一下, 謝謝

本篇文章發表於2011-12-16 10:06
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
回應

pilipala
檢舉此回應


請問, 若有一個欄位是存放"日期"(年月日, 如:2011/11/11),
大家在設定欄位屬性時會開datetime還是nvarchar(8)?


除非有特別的需求,要不然建議使用 datetime ,
使用 datetime 的好處是,有內建函數可以使用,EX:DATEADD()、DATEDIFF 等等...
使用 nvarchar(8) 的話,假如有計算天數...等需求,須自行寫函數處理,來滿足商業邏輯上的需求


另外, 若現在有一sql script, 若直接於程式中下script, 和先做成view, 再者使用預存程序, 較者較快呢?
記得之前查的文章, 是預存程序較快。


指的是這篇嗎
預存 VS view 表
HunterPo 版大在文章 6F 有解釋 ~~
本篇文章回覆於2011-12-16 10:15
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
回應

Dreamyi
捐贈 VP 給 Dreamyi 檢舉此回應
基本上日期存成 datetime 還是 nvarchar(8) 對效能來說不會有太大的影響,主要還是要看您的 INDEX 怎麼下、SQL 語法有沒有用到 INDEX,不過我個人是偏好存 datetime,除了1樓說的好處之外,datetime 比較省空間也比較省記憶體,也不會資料值存錯,譬如:存成 2011/02/30 是不合理的日期,或格式不統一的問題,有些人可能存成 2011/01/01、2011-01-01、20110101、2011/1/1 等。

至於 SCRIPT、VIEW、和預存程序,HunterPo 大解釋得很好,我沒有什麼要補充的了。
本篇文章回覆於2011-12-16 15:03
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
回應

丫呆
檢舉此回應
補充一下,因為VIEW其實就是一個子查詢,如下,他只是將預查詢的資料表,命名為另一個資料表再查詢
而不是直接接觸原始的TABLE所以,一定比較沒有效率
SELECT *FROM (SELECT * FROM A) AS B
本篇文章回覆於2011-12-16 18:21
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.