訪問(wèn)Sybase服務(wù)器的基本過(guò)程如下:
(1)建立客戶(hù)與服務(wù)器之間的連接,包括網(wǎng)絡(luò)連接、客戶(hù)進(jìn)程與服務(wù)器進(jìn)程之間的連接;
(2)客戶(hù)端通過(guò)網(wǎng)絡(luò)發(fā)送SQL語(yǔ)句給服務(wù)器,用來(lái)查詢(xún)或操作服務(wù)器中的數(shù)據(jù)或數(shù)據(jù)庫(kù)對(duì)象;
(3)服務(wù)器接收到SQL語(yǔ)句后,對(duì)其進(jìn)行語(yǔ)法分析、優(yōu)化和編譯后執(zhí)行;
(4)如果執(zhí)行的語(yǔ)句產(chǎn)生一個(gè)結(jié)果集,服務(wù)器通過(guò)網(wǎng)絡(luò)把結(jié)果集返回給客戶(hù);
(5)客戶(hù)端對(duì)收到的結(jié)果作相應(yīng)的處理。
在客戶(hù)/服務(wù)器體系,有兩種數(shù)據(jù)庫(kù)引擎結(jié)構(gòu),即多進(jìn)程數(shù)據(jù)庫(kù)引擎和單進(jìn)程、多線程引擎結(jié)構(gòu)。
多進(jìn)程結(jié)構(gòu)即多個(gè)可執(zhí)行程序同時(shí)運(yùn)行。每當(dāng)用戶(hù)登錄到數(shù)據(jù)庫(kù)系統(tǒng)時(shí)實(shí)際上都啟動(dòng)了數(shù)據(jù)庫(kù)引擎的一個(gè)獨(dú)立實(shí)例。存在起協(xié)調(diào)作用的進(jìn)程協(xié)調(diào)進(jìn)行之間的通訊以保證當(dāng)多用戶(hù)訪問(wèn)相同數(shù)據(jù)時(shí)數(shù)據(jù)的完整性。多進(jìn)程數(shù)據(jù)庫(kù)引擎一般用在大型機(jī)數(shù)據(jù)庫(kù)上。單進(jìn)程多線程數(shù)據(jù)庫(kù)引擎在原理上和多進(jìn)程數(shù)據(jù)庫(kù)引擎類(lèi)似,不同的是多線程數(shù)據(jù)庫(kù)引擎自己負(fù)責(zé)調(diào)度各應(yīng)用程序占用CPU的時(shí)間,而不依賴(lài)于操作系統(tǒng)。這樣,多線程數(shù)據(jù)庫(kù)引擎自我保護(hù)的能力更強(qiáng)。
Oracle Server是一個(gè)真正的多進(jìn)程數(shù)據(jù)庫(kù)引擎,Sybase數(shù)據(jù)庫(kù)管理系統(tǒng)采用的是單進(jìn)程多線程的引擎結(jié)構(gòu)。
新聞熱點(diǎn)
疑難解答