iT邦幫忙

1

MSSQL計算欄位與實體欄效能差異

  • 分享至 

  • xImage

您好:
若TABLE中有很多欄位,欄位監會需要計算

但欄位有2個類型
實體欄位:B-A (邏輯另計),前端填入後,寫入TABLE;撈取時直接撈取
計算欄位:只抓B-A(邏輯另計),應該撈取時才計算

這樣,兩者間效能差異會很大嗎?
謝謝

SunM0on iT邦新手 3 級 ‧ 2024-09-12 14:37:37 檢舉
這牽扯到妳的運算規則,如果只是單純加減沒啥問題,但如果存在一些function、加解密運算就不一定了,但妳說了邏輯另計,單純比較純撈取跟撈B-A的話是幾乎沒差的,但記得運算規則很複雜的話,資料量越大,兩者耗費的時間差距自然會越大
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
0
sam0407
iT邦大師 1 級 ‧ 2024-09-13 09:17:28
最佳解答

採用實體欄位在讀取時肯定是會快一丟丟,但就如在SunM0on大大說的視運算規則及資料量而定,除此之外您還要考慮的是查詢頻率。

但若您最後決定是要採用實體欄位,您必須注意的當A、B任一欄位有異動後要重新計算再存入的問題(包含使用者透過系統資料更新或DBA直接下指令修改的情境)

0
wilson1966
iT邦研究生 1 級 ‧ 2024-09-13 10:22:58

<<計算欄位:只抓B-A(邏輯另計),應該撈取時才計算
<<這樣,兩者間效能差異會很大嗎?

計算結果的欄位通常是用計算欄位的,此時不會管效能問題,正確才是最重要。

0
jejoy615
iT邦見習生 ‧ 2025-02-27 17:00:16

您好,

關於您提到的兩種類型欄位之間的效能差異,這裡有一些考量因素:

實體欄位:實體欄位是預先計算好的值,並且在寫入資料庫時就已經儲存在TABLE中。因此,當您撈取這些欄位時,只需從TABLE中讀取數據,這樣的操作效能相對較高,特別是在大量查詢的情況下。

計算欄位:計算欄位是在撈取數據時才進行計算。這意味著每次查詢時都需要進行計算操作。如果計算公式複雜或者需要大量數據進行運算,效能可能會受到影響 word games。此外,如果您同時有很多使用計算欄位的查詢,效能問題可能會更加明顯。

總結來說,實體欄位在查詢時的效能會比計算欄位更好,因為計算欄位需要額外的計算時間。不過,具體的效能差異取決於您的系統架構、數據量、查詢頻率和計算複雜度。

我要發表回答

立即登入回答