SQL Server 2012 自增列異常成長問題
在 SQL Server 2012 中,觀察到一個異常行為: “Fee” 表中 “ReceiptNo” 列的自增值會間歇性地跳躍增加 100。這與自增列通常的增量模式不符。
異常行為細節:
原因:
此行為是 SQL Server 2012 中引入的效能改進的結果。預設情況下,資料庫現在在為 int 列分配自增值時會快取 1000 個值。重新啟動後,未使用的快取值可能會遺失,導致自增序列出現間隙。
文件參考:
SQL Server 文件說明:
「出於效能原因,SQL Server 可能會快取自增值,並且在資料庫故障或伺服器重新啟動期間,一些已分配的值可能會遺失…這可能會導致插入時自增值出現間隙。」
可能的解決方法:
如果自增列的間隙令人擔憂,請考慮以下解決方法:
重要提示:
務必了解,這些解決方法不能保證完全沒有間隙。由於故障或回滾的事務,自增列本身並不能保證無間隙的序列。對於真正無間隙的值,請考慮其他解決方案,例如自訂演算法或外部金鑰產生器。
以上是為什麼My SQL Server 2012 Identity Column重啟後會增加100秒?的詳細內容。更多資訊請關注PHP中文網其他相關文章!