国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > SQL Server > 正文

SQL SERVER 2014--內存表實現秒殺場景

2024-08-31 00:55:35
字體:
來源:轉載
供稿:網友
SQL SERVER 2014--內存表實現秒殺場景

=====================================

網上針對“秒殺”的解決方案很多,數據拆分化解熱點,READPAST解決鎖問題,應用程序排隊限制并發等等很多方式,各有優缺點,只為證明一句名言:條條大路通羅馬。

=====================================

今天拿SQL SERVER 2014的內存表來試水“秒殺”,內存表使用“版本”解決了高并發下鎖請求和阻塞的問題,使用HASH索引來處理數據頁“熱點”的問題,解決了PAGE_LATCH等待,雖然本地編譯在本測試中效果不是那么明顯,但是聊勝于無。

由于測試代碼在別人代碼基礎上修改而來,就不拿出來共享了,具體實現思路:

1. 使用本地編譯存儲過程來封裝秒殺(實現對庫存UPDATE和對秒殺成功訂單的INSERT操作)

2. 在步驟1的基礎上封裝一層,實現重試邏輯,重試相關基礎請重擊

3. 將秒殺商品拆分到多條記錄中,避免單條記錄成為熱點

4. 將秒殺成功的訂單表設計為內存表,避免插入記錄時的PAGE_LATCH等待

=========================================

測試環境

Windows版本:Windows Server 2012 企業版

數據庫版本:SQL SERVER 2014 企業版

服務器CPU: 4個物理CPU 64個邏輯CPU

服務器內存:128GB

模擬秒殺300000商品,1200個線程模擬并發

測試結果

記錄數耗時(毫秒)每秒秒殺商品數
3002786107681.26
100362082872.93
50436368760.03
20524057251.91
10769039011.70
51226624457.85
2311869619.70
1697704299.84
以上測試結果僅供參考!--=============================================雖然內存表沒有鎖阻塞的情況,但是對兩個事務更新同一條數據時,只有第一個事務提交后第二個事務才能更新成功,而事務提交受日志寫入速度的影響,因此在對單條記錄或少量記錄更新的時候,磁盤單詞寫入的時間(Avg. Disk sec/Write) 至關重要,本次測試的服務器上,Avg. Disk sec/Write 平均值在0.05ms到0.09ms之間,因此理論上對單條記錄的每秒最大更新次數在1w到2w左右,這也是為什么要拆分成多條記錄的原因。--=============================================福利依舊是妹子


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 依安县| 维西| 济源市| 江陵县| 芦山县| 岳池县| 灌云县| 湖州市| 永宁县| 祁东县| 中山市| 大悟县| 沽源县| 防城港市| 临沂市| 宾川县| 拜泉县| 轮台县| 辉南县| 哈尔滨市| 莱阳市| 德兴市| 普陀区| 新乐市| 汉中市| 仙桃市| 繁峙县| 沐川县| 阳泉市| 潜江市| 洪泽县| 洪湖市| 苍溪县| 依安县| 临颍县| 潼南县| 法库县| 高碑店市| 永靖县| 东方市| 门源|