>教育資源庫  我們做管理軟件的,主要核心就在數(shù)據(jù)存儲(chǔ)管理上。所以數(shù)據(jù)庫設(shè)計(jì)是我們的重中之重。為了讓我們的管理軟件能夠穩(wěn)定、可擴(kuò)展、性能優(yōu)秀、可跟蹤排錯(cuò)、可升級(jí)部署、可插件運(yùn)行,我們往往研發(fā)自己的管理軟件開發(fā)">
sqlserver內(nèi)核架構(gòu)剖析

sqlserver內(nèi)核架構(gòu)剖析

ID:9508791

大小:62.50 KB

頁數(shù):12頁

時(shí)間:2018-05-01

sqlserver內(nèi)核架構(gòu)剖析_第1頁
sqlserver內(nèi)核架構(gòu)剖析_第2頁
sqlserver內(nèi)核架構(gòu)剖析_第3頁
sqlserver內(nèi)核架構(gòu)剖析_第4頁
sqlserver內(nèi)核架構(gòu)剖析_第5頁
資源描述:

《sqlserver內(nèi)核架構(gòu)剖析》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫。

1、SQLServer內(nèi)核架構(gòu)剖析>>教育資源庫  我們做管理軟件的,主要核心就在數(shù)據(jù)存儲(chǔ)管理上。所以數(shù)據(jù)庫設(shè)計(jì)是我們的重中之重。為了讓我們的管理軟件能夠穩(wěn)定、可擴(kuò)展、性能優(yōu)秀、可跟蹤排錯(cuò)、可升級(jí)部署、可插件運(yùn)行,我們往往研發(fā)自己的管理軟件開發(fā)平臺(tái)。我們總是希望去學(xué)習(xí)別人的開發(fā)平臺(tái)(如用友或金蝶或SAP),但我們卻總是感嘆管理軟件業(yè)務(wù)處理細(xì)節(jié)繁多,而數(shù)據(jù)庫管理軟件卻簡單的SELECT、INSERT、DELETE、UPDATE四個(gè)命令就搞定。我們多希望有一天能做出一個(gè)架構(gòu),也可以這么簡單就搞定管理軟件。我們往往研究別人的架構(gòu),卻忘記了我們身邊

2、我們最熟悉的數(shù)據(jù)庫的架構(gòu)。所以,今天,我想帶領(lǐng)大家一起剖析一下數(shù)據(jù)庫的架構(gòu),來探索數(shù)據(jù)庫的架構(gòu)思想。而我本人呢,只熟悉SQLSERVER這一種數(shù)據(jù)庫產(chǎn)品,所以我就拿SQLSERVER來分析。  在講SQLSERVER內(nèi)部原理的之前,我覺得非常有必要向大家介紹一下SQLSERVER的歷史。  讓我們站在1999年,看看計(jì)算機(jī)數(shù)據(jù)庫業(yè)界到底處于什么狀態(tài)?! ?999年,Oracle已經(jīng)于1998年9月發(fā)布了Oracle8i(可能中文版在1999年才來到中國)。Oracle8i支持用JAVA編寫存儲(chǔ)過程,支持XML,支持Linux。  199

3、9年1月,SQLSERVER7正式發(fā)布。SQLSERVER7重構(gòu)了整個(gè)數(shù)據(jù)庫引擎(相當(dāng)于重寫了SQLSERVER)。SQLSERVER第一次完整性的支持了行鎖(有沒有搞錯(cuò),過去人是怎么使用數(shù)據(jù)庫產(chǎn)品的。1988年,Oracle6就支持行鎖。另外1988年,Oracle就開始研發(fā)ERP產(chǎn)品。誰說Oracle是ERP門外漢,可以參考這個(gè))。  看看他們倆的前一個(gè)版本。如果你入行比較晚(2000年以后),可能對以下文字更感到驚訝?! ?992年,Oracle7發(fā)布。有了存儲(chǔ)過程、觸發(fā)器、引用完整性校驗(yàn)、分布式事務(wù)處理。(天哪,Oracle7才

4、有了這些東西)?! ?995年,SQLSERVER6發(fā)布。SQLSERVER6是微軟真正意義上的第一個(gè)數(shù)據(jù)庫產(chǎn)品(真是爆料,大家沒想到SQLSERVER6才是微軟第一個(gè)數(shù)據(jù)庫產(chǎn)品,那版本6之前的5、4、3、2、1是怎么度過的)。因?yàn)?994年,微軟和Sybase掰了(Sybase是第一個(gè)運(yùn)行于PC上的C/S數(shù)據(jù)庫產(chǎn)品)。微軟為了進(jìn)入數(shù)據(jù)庫產(chǎn)品領(lǐng)域,自己又沒有經(jīng)驗(yàn),于是和Sybase一起合作(當(dāng)時(shí)微軟是全世界第一大軟件公司,微軟1986年上市。Sybase有產(chǎn)品,缺錢。微軟缺產(chǎn)品,有錢。于是一拍即合)。直到1994年,微軟也不需要Syba

5、se了(已經(jīng)學(xué)會(huì)了數(shù)據(jù)庫技術(shù)),Sybase也感覺微軟太狼子野心,于是合作分裂。微軟開始自己做自己的數(shù)據(jù)庫?! v史說完。我們言歸正傳。  很多入門級(jí)做管理軟件的,SQL語句玩的熟練,從子查詢到Having到交叉表統(tǒng)計(jì)SQL都能做出來,甚至存儲(chǔ)過程能寫2000多行,游標(biāo)、自定義函數(shù)、觸發(fā)器、約束用的眼花繚亂。再入點(diǎn)門,在SQL查詢器中可以使用SQL分析優(yōu)化索引,用SQLProfile可以跟蹤SQL,甚至在性能查看器中監(jiān)測SQLSERVER內(nèi)存、CPU、線程、I/O的運(yùn)行狀態(tài),甚至為自己會(huì)使用DBCC而沾沾自喜?! ∧闶侨绱耸煜QLSE

6、RVER,又是對SQLSERVER如此陌生?! ∥医裉炀陀眉軜?gòu)的角度來給大家分析一下SQLSERVER架構(gòu)和原理。短短一篇博文肯定只能面上的多一些,深一層的可能需要連載數(shù)篇文章甚至一塊大磚頭書才能講完整。不過,我希望我的博文能夠拋磚引玉,使大家能從一個(gè)過去沒有想過的角度去看SQLSERVER?! QLSERVER,作為一個(gè)數(shù)據(jù)庫產(chǎn)品,我個(gè)人認(rèn)為,最重要的就是兩大塊:存儲(chǔ)引擎和查詢引擎?! ∑渌娜罩尽⑹聞?wù)、鎖、索引等等都是圍繞他們來工作的?! QLSERVER是C/S產(chǎn)品,所以一條SQL語句要讓SQLSERVER執(zhí)行,必須要傳輸?shù)絊

7、QLSERVER服務(wù)器端。傳輸,我們當(dāng)然知道需要NetBEUI、TCP/IP等等網(wǎng)絡(luò)傳輸協(xié)議。但是光有這些還不行。客戶端如何發(fā),服務(wù)器端如何收,如何確認(rèn)發(fā)的和收的正確完整,如何確實(shí)發(fā)的和收的已經(jīng)結(jié)束,如何發(fā)和收能跨越各種網(wǎng)絡(luò)協(xié)議(如UNIX和。這個(gè)數(shù)據(jù)流是令牌控制客戶端和服務(wù)器端對話(否則,客戶端說了N句話,服務(wù)器端返回N句話,沒有令牌就混在一起了,不知道哪個(gè)回答是對應(yīng)哪個(gè)請求的)。我們往往不能直接和OpenDataServices打交道,把數(shù)據(jù)放進(jìn)來。而是我們必須通過ODBC、ADO或DB-Library來發(fā)送tabulardatas

8、tream。而SQLSERVER返回的數(shù)據(jù)結(jié)果,也是通過這些ODBC之類發(fā)回tabulardatastream。你看看SQLSERVER設(shè)計(jì)的多巧妙,一個(gè)通用數(shù)據(jù)訪問接口屏蔽了你和SQLSERVER之間,就

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時(shí)聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請聯(lián)系客服處理。