簡體   English   中英

在32位Windows XP下的C#4 / T-SQL2008應用程序中使用Int64 / bigint而不是Int32 / int會有多大的性能損失?

[英]How significant is a performance penalty for using Int64/bigint instead of Int32/int in a C#4/T-SQL2008 application under 32-bit Windows XP?

對於我的一個科學項目,我正在開發(在C#4和T-SQL中)一個應用程序可能意味着處理非常大量非常簡單的記錄,用它們執行簡單的操作(科學模擬引擎,而不是線性時間序列計算器) )。 我想使用64位整數作為主鍵以獲得更好的容量。

我將實際集成使用Entity Framework,POCO集合和數組處理以及T-SQL存儲過程。

我將在SQL Server 2008上存儲數據庫,並同時從多個應用程序實例訪問它以進行分布式處理。

SQL Server和應用程序實例將在32位Windows XP系統上運行,有時在完全64位無意識的硬件上運行。

使用64位整數類型作為主鍵我將面臨什么懲罰?

只要你堅持閱讀和編寫這些數字(即沒有算術,只是數據庫查詢),性能損失將是微不足道的。 這就像使用2 int作為參數而不是1。

然而,一旦你開始對它們進行算術運算,就會開始變得混亂。 相加和相減是作為正常大致3倍慢int秒。 乘法和除法比較慢,超過一個數量級。 我在這個網站的某個地方發布了在32位cpu上乘以2個64位數字的代碼,如果你願意,我可以查找它,但它超過3頁。

看到你如何談論ID字段,你不應該對它們進行任何算術嗎? 所以你應該沒事。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM