一、SQL Server 2014的集成內(nèi)存OLTP(Hekaton)有什么戰(zhàn)略意義
1、SQL Server本來就是in memory的,任何數(shù)據(jù)庫都會用大量內(nèi)存去cache磁盤數(shù)據(jù),所以未來內(nèi)存越來越大并不是用in memory字面意思就能說明的優(yōu)勢。
2、oltp除非降低可靠性,憑什么in memory能提高性能?都要落盤和集群才能言及可靠性,然而這一個是磁盤為主的問題,一個是網(wǎng)絡(luò)為主的問題,in memory到底在哪里產(chǎn)生了建樹?
3、據(jù)我所知sql server本來就支持mvcc的,只是默認沒開snapshot級別的事務(wù)模式,snapshot我理解就是multi-version的意思,不知道對不對。
我憑空推測下,in memory表如果要做到實質(zhì)性的提升,可能主要就是優(yōu)化內(nèi)存里的數(shù)據(jù)結(jié)構(gòu)而不是經(jīng)典的cache模式,比如列存儲,拋棄btree(為磁盤設(shè)計的)等。
然后是增加很多in memory適合做的東西,比如高并發(fā)的鎖操作。一臺數(shù)據(jù)庫就能做到隊列的功能,并能保證可靠性。
但是對于oltp,必須落盤的東西,除了改變落盤策略,通過降低可靠性提高性能,其他還真想不到能怎么提升。但是降低可靠性提升性能的落盤策略,同樣適用于普通表。
延伸閱讀:
二、什么是數(shù)據(jù)庫
有組織且相互關(guān)聯(lián)的數(shù)據(jù)的集合稱為數(shù)據(jù)庫。database 是一個存儲數(shù)據(jù)的應(yīng)用程序。它有各種應(yīng)用程序,包括 MySQL、Microsoft SQL、Oracle 等。
每個數(shù)據(jù)庫都不同,因為每個公司/組織都有其結(jié)構(gòu)、數(shù)據(jù)類型和約束。數(shù)據(jù)庫 會定期更新,以獲取有關(guān)公司的最新數(shù)據(jù)。
數(shù)據(jù)庫可以手動和數(shù)字方式維護。在這個數(shù)據(jù)無處不在的時代,數(shù)字數(shù)據(jù)庫是優(yōu)選和使用。數(shù)據(jù)庫的大小取決于組織的數(shù)據(jù)和需求。
數(shù)據(jù)庫有很多種類型,從最簡單的存儲有各種數(shù)據(jù)的表格到能夠進行海量數(shù)據(jù)存儲的大型數(shù)據(jù)庫系統(tǒng)都在各個方面得到了廣泛的應(yīng)用。
數(shù)據(jù)庫是“按照數(shù)據(jù)結(jié)構(gòu)來組織、存儲和管理數(shù)據(jù)的倉庫”。在經(jīng)濟管理的日常工作中,常常需要把某些相關(guān)的數(shù)據(jù)放進這樣“倉庫”,并根據(jù)管理的需要進行相應(yīng)的處理。
例如,企業(yè)或事業(yè)單位的人事部門常常要把本單位職工的基本情況(職工號、姓名、年齡、性別、籍貫、工資、簡歷等)存放在表中,這張表就可以看成是一個數(shù)據(jù)庫。
有了這個”數(shù)據(jù)倉庫”就可以根據(jù)需要隨時查詢某職工的基本情況,也可以查詢工資在某個范圍內(nèi)的職工人數(shù)等等。這些工作如果都能在計算機上自動進行,那的人事管理就可以達到極高的水平。
此外,在財務(wù)管理、倉庫管理、生產(chǎn)管理中也需要建立眾多的這種“數(shù)據(jù)庫”,使其可以利用計算機實現(xiàn)財務(wù)、倉庫、生產(chǎn)的自動化管理。