在Disk-Base數(shù)據(jù)庫中,由于臨時表和表變量的數(shù)據(jù)存儲在tempdb中,如果系統(tǒng)頻繁地創(chuàng)建和更新臨時表和表變量,大量的IO操作集中在tempdb中,tempdb很可能成為系統(tǒng)性能的瓶頸。在SQL Server 2016的內(nèi)存(Memory-Optimized)數(shù)據(jù)庫中,如果考慮使用內(nèi)存優(yōu)化結(jié)構(gòu)來存儲臨時表,表變量,表值參數(shù)的數(shù)據(jù),那么將完全消除IO操作的負(fù)載消耗,發(fā)揮大內(nèi)存的優(yōu)勢,大幅提高數(shù)據(jù)庫的性能。

在SQL Server 2016中,能夠直接創(chuàng)建內(nèi)存優(yōu)化的表類型,表變量和表值參數(shù)的數(shù)據(jù)只存儲在內(nèi)存中;不能直接在內(nèi)存中創(chuàng)建臨時表,但是,SQL Server提供一個變通方法(Workaround),通過行級安全RLS(Row-Level-Security)控制,指定只有當(dāng)前Session才能訪問特定的數(shù)據(jù),將內(nèi)存優(yōu)化表轉(zhuǎn)換為Session級別的臨時表,間接實現(xiàn)臨時表的局部性和自動清空特性。

一,內(nèi)存優(yōu)化表類型(Memory-Optimized Table Type)

內(nèi)存優(yōu)化表類型定義的表變量,表值參數(shù)能夠大幅提高效率(efficiency),有4個顯著的特點:

  • 數(shù)據(jù)僅存儲在內(nèi)存中,在讀寫數(shù)據(jù)時,不會產(chǎn)生任何的IO消耗,消除了tempdb的競爭和利用率;

  • 必須有一個索引,Hash 或 Nonclustered 都行;每一個內(nèi)存優(yōu)化表必須創(chuàng)建一個索引;

  • 只需要指定啟用內(nèi)存優(yōu)化:MEMORY_OPTIMIZED = ON,只持久化Schema;

  • 必須先創(chuàng)建表類型,后創(chuàng)建表值變量;

1,創(chuàng)建內(nèi)存優(yōu)化表類型

平面設(shè)計培訓(xùn),網(wǎng)頁設(shè)計培訓(xùn),美工培訓(xùn),游戲開發(fā),動畫培訓(xùn)

        		

延伸閱讀

學(xué)習(xí)是年輕人改變自己的最好方式-Java培訓(xùn),做最負(fù)責(zé)任的教育,學(xué)習(xí)改變命運(yùn),軟件學(xué)習(xí),再就業(yè),大學(xué)生如何就業(yè),幫大學(xué)生找到好工作,lphotoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)學(xué)習(xí)是年輕人改變自己的最好方式