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

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

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

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

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

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

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

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

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

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

        		

延伸閱讀

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