版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、Oracle TimesTen 產(chǎn)品和技術 Oracle 白皮書2005 年 12 月 引言. 3“滿足實時應用場合的需要”.3 實時應用程序的發(fā)展. 3實時行業(yè). 3實時企業(yè). 4實時數(shù)據(jù)管理軟件. 4應用程序?qū)硬渴? 4 產(chǎn)品. 5Oracle TimesTen In- Memory Database.5Replication TimesTen to TimesTen.5Cache Connect to Oracle.5 內(nèi)存中數(shù)據(jù)庫技術. 5ORACLE TIMESTEN 的物理結構. 6應用程序?qū)庸蚕韼? 6內(nèi)存中數(shù)據(jù)結構. 7系統(tǒng)進程. 8管理程序. 8檢查點和日志文件. 8 數(shù)據(jù)復
2、制技術. 8 高速緩存技術. 9 深入研究 IMDB 技術. 11查詢優(yōu)化. 11緩沖池管理. 11索引結構. 12差別體現(xiàn)在哪里. 13 非凡的性能. 13可伸縮性. 13響應時間. 14 實時功能. 15數(shù)據(jù)管理. 15查詢處理. 19數(shù)據(jù)復制. 19高速緩存. 21事件處理. 24 結論. 25“Oracle 收購 TimesTen 是一次絕好的技術整合,它將TimesTen 高性能內(nèi)存中體系結構與 Oracle 巨大的數(shù)據(jù)庫潛力結合起來”Rob Hailstone,需要實時應用程序的行業(yè)包括網(wǎng)絡設備制造商、電信運營商、證券交易所和經(jīng)紀公司、航空公司、貨運和物流公司以及國防和情報機構等O
3、racle TimesTen 產(chǎn)品和技術 引言 2005 年 6 月,Oracle 收購了內(nèi)存中數(shù)據(jù)庫軟件的領先供應商 TimesTen, Inc.。Oracle 產(chǎn)品與 TimesTen 產(chǎn)品的結合為端到端數(shù)據(jù)管理提供了獨有的單供應商解決方案。 本文介紹了 Oracle TimesTen 產(chǎn)品和技術及其與其他 Oracle 產(chǎn)品集成方面的問題,并使用該軟件及其手冊前的“書面”評估。 “滿足實時應用場合的需要” Oracle TimesTen 產(chǎn)品為性能關鍵系統(tǒng)提供了應用層數(shù)據(jù)管理,并針對快速響應以及實時高速緩存 Oracle 數(shù)據(jù)進行了優(yōu)化。公司可以使用 Oracle TimesTen 擴展
4、其軟件基礎架構,以創(chuàng)建具有以下特性的系統(tǒng): 即時響應性 高度可伸縮性 連續(xù)可用性 這些系統(tǒng)用于: 提高客戶忠誠度 吸引新客戶 簡化操作 避免采用昂貴的專用軟件開發(fā)方法。 自 1998 起,Oracle TimesTen 先后部署到網(wǎng)絡、電信服務、運營支持系統(tǒng)、聯(lián)系中心、航空和預訂系統(tǒng)、指揮和控制系統(tǒng)以及證券交易系統(tǒng)的生產(chǎn)環(huán)境中,并在時間關鍵的行業(yè)和實時企業(yè)中發(fā)揮了出色的作用。全球范圍內(nèi)的數(shù)百家公司在生產(chǎn)應用程序中使用了 Oracle TimesTen ,其中包括 Amdocs、Aspect 、Avaya 、Cisco 、Ericsson 、JP Morgan、Lucent 、Nokia 、S
5、和 Sprint。 實時應用程序的發(fā)展 實時行業(yè) 很多公司都離不開實時應用程序。它們對于公司運營必不可少。需要實時應用程序的典型行業(yè)包括網(wǎng)絡設備制造商、電信運營商、證券交易所和經(jīng)紀公司、航空公司、貨運和物流公司以及國防和情報機構。以往,為這些行業(yè)構建實時應用程序還需要開發(fā)實時基礎架構軟件。商業(yè)性的實時基礎架構軟件當時并不能否使用實時處理智能地捕獲、分析和響應重要事件逐漸成為衡量優(yōu)秀企業(yè)的標準。僅僅收集并高速緩存與應用程序密切相關的數(shù)據(jù)是不夠的,而將企業(yè)數(shù)據(jù)庫與某個應用程序放到同一平臺上也是不切實際的所需要的是一代可以利用當前內(nèi)存豐富的互聯(lián)計算平臺的全部潛在性能的輕型基礎架構軟件。OracleT
6、imesTen 產(chǎn)品無縫地集成到這些環(huán)境中,并提供了針對應用程序?qū)硬渴饍?yōu)化的體系結構存在。只要對應用程序的要求保持不變,這些系統(tǒng)便可以起作用,盡管速度快但卻不夠靈活。然而,動態(tài)行業(yè)對功能的要求將很快超出靜態(tài)應用程序的能力范圍,而在存在商業(yè)基礎架構軟件的情況下,不值得為開發(fā)、測試以及維護專用基礎架構軟件進行投資。 實時企業(yè) 隨著企業(yè)網(wǎng)絡傳輸?shù)男畔⒘坎粩嘣龆?,能否使用實時處理智能地捕獲、分析和響應重要事件逐漸成為衡量優(yōu)秀企業(yè)的標準。這不僅僅對業(yè)務關鍵流程的執(zhí)行和管理很重要。客戶希望任何與他們保持重要業(yè)務關系的公司能夠提供高度定制的交互和最快的響應。 業(yè)務活動監(jiān)視、復雜事件處理、RFID/基于傳感器
7、的應用程序、Web 門戶以及 Web 服務有助于將應用程序擴展到企業(yè)邊界。由于配置為由相互關聯(lián)的例程的動態(tài)集合,因此這些應用程序構成面向服務體系結構 (SOA 這一總體方法的一部分。盡管許多應用程序擴展到企業(yè)邊界,但大多數(shù)據(jù)源仍存在于后端,其中主要包含大量很少訪問的舊數(shù)據(jù)以及少量當前活動的信息。SOA 概念的自然擴展包括應用程序?qū)又械妮p型、實時數(shù)據(jù)管理,連接到企業(yè)數(shù)據(jù)源以為當前活動的數(shù)據(jù)提供實時性能。 實時數(shù)據(jù)管理軟件 作為實時處理最大的受益者,企業(yè)體系結構在應用程序?qū)又刑峁┝耸录?、?shù)據(jù)和事務管理,從而使前端系統(tǒng)具備了快速響應性和更深入的洞察力。僅僅收集和高速緩存與應用程序密切相關的數(shù)據(jù) 第一
8、代內(nèi)部基礎架構軟件通常如此 還不夠。此外,將企業(yè)數(shù)據(jù)庫與某個應用程序放到同一平臺也是不實際的。 所需要的是一代輕型基礎架構軟件,它應提供易于使用、功能強大的界面和廣泛使用的查詢語言 可以輕松地與現(xiàn)有后端數(shù)據(jù)庫、消息處理系統(tǒng)以及應用服務器進行通信,可以充分利用當前內(nèi)存豐富的聯(lián)網(wǎng)計算平臺的全部潛在性能。這正是 Oracle TimesTen 提供的用于管理實時數(shù)據(jù)的新一代基礎架構軟件。 應用程序?qū)硬渴?當前的很多新應用程序開發(fā)都著力于提高與客戶之間的交互或簡化內(nèi)部操作以消除延遲和多余的成本。它們是位于網(wǎng)絡邊界附近(在某些情況下,作為網(wǎng)絡內(nèi)部的托管服務)的實時應用程序。這是一個新的企業(yè)應用程序?qū)?,?/p>
9、在平臺、性能和可用性方面的要求不同于舊的后端應用程序。業(yè)務事件包含在應用程序預訂的網(wǎng)絡消息中,用于觸發(fā)實時處理以及其他消息發(fā)布。要滿足這些應用程序的響應時間和可伸縮性目標,通常必須將基礎架構軟件和應用程序(包括驅(qū)動該應用程序的某些或所有數(shù)據(jù))部署到同一平臺上。Oracle TimesTen 產(chǎn)品可以無縫地集成到這些環(huán)境中,并提供了針對應用程序?qū)硬渴饍?yōu)化的體系結構以及用于實現(xiàn)高度定制解決方案的配置選項。產(chǎn)品Oracle TimesTen 由三個基于內(nèi)存中數(shù)據(jù)庫、數(shù)據(jù)復制和高速緩存技術的產(chǎn)品組成Oracle TimesTen 實時數(shù)據(jù)管理軟件由三個基于內(nèi)存中數(shù)據(jù)庫、數(shù)據(jù)復制和高速緩存技術的產(chǎn)品組成
10、。本文該部分簡要介紹了這些產(chǎn)品和技術。后續(xù)部分將提供更多詳細信息。內(nèi)存中數(shù)據(jù)庫技術實現(xiàn)了這樣一個關系數(shù)據(jù)庫:其所有運行時數(shù)據(jù)都位于內(nèi)存中且數(shù)據(jù)結構和訪問算法利用該特性實現(xiàn)了性能突破 Oracle TimesTen In- Memory Database Oracle TimesTen In-Memory Database 是一個內(nèi)存優(yōu)化的關系數(shù)據(jù)庫,它為應用程序提供了當今實時企業(yè)和行業(yè)(例如電信、資本市場和國防)所需的即時響應性和非常高的吞吐量。Oracle TimesTen In-Memory Database 作為高速緩存或嵌入式數(shù)據(jù)庫被部署在應用程序?qū)又校脴藴实?SQL 接口對完全
11、位于物理內(nèi)存中的數(shù)據(jù)存儲區(qū)進行操作。 Replication TimesTen to TimesTen Replication TimesTen to TimesTen 是 Oracle TimesTen In-Memory Database 的一個選項,它支持服務器間的實時數(shù)據(jù)復制,以獲得高可用性和負載共享。數(shù)據(jù)復制配置可以是雙機熱備份 (active-standby 或負載均衡 (active-active,可以使用異步或同步傳輸,可以包含沖突檢測和沖突解決以及在故障服務器恢復后自動重新同步。數(shù)據(jù)復制與 Cache Connect to Oracle 選項完全兼容。 Cache Conne
12、ct to Oracle Cache Connect to Oracle 是 Oracle TimesTen In- Memory Database 的一個選項,它為位于應用程序?qū)又械?Oracle 數(shù)據(jù)創(chuàng)建實時、可更新的高速緩存。它免除了后端系統(tǒng)的計算負擔,并支持反應靈敏且可伸縮的實時應用程序。Cache Connect to Oracle 能夠?qū)?Oracle 數(shù)據(jù)的子集加載到 TimesTen 中,能夠雙向傳播更新,能夠使對非高速緩存數(shù)據(jù)的 SQL 請求的透傳自動化,并能夠在故障之后自動重新同步數(shù)據(jù)。Cache Connect to Oracle 與 Replication TimesT
13、en to TimesTen 選項完全兼容。 內(nèi)存中數(shù)據(jù)庫技術 內(nèi)存中數(shù)據(jù)庫 (IMDB 技術是 Oracle TimesTen 產(chǎn)品的基礎技術。IMDB 技術實現(xiàn)了這樣一個關系數(shù)據(jù)庫:其所有運行時數(shù)據(jù)都位于內(nèi)存中且數(shù)據(jù)結構和訪問算方利用該特性實現(xiàn)了性能突破。與完全高速緩存的 RDBMS 相比,IMDB 技術使用的 CPU 資源少很多,這是因為它避免了用于管理內(nèi)存緩沖區(qū)并處理多個數(shù)據(jù)位置(磁盤和內(nèi)存)的開銷。對 IMDB 技術Oracle TimesTen 的性能由提供事務屬性功能、持久保存機制以及系統(tǒng)故障恢復所完善SQL 操作包含一組共享庫中,開發(fā)人員將這些庫鏈接到應用程序而言,磁盤用于實現(xiàn)
14、持久保存和恢復,而不是用作主要的數(shù)據(jù)庫存儲位置。 Oracle TimesTen 內(nèi)存優(yōu)化的性能由提供事務屬性功能、持久保存機制以及系統(tǒng)故障恢復所完善。有各種方法可用于鎖定、多用戶隔離和記錄,從而滿足了各種應用情形(從臨時的查找高速緩存到核心事務交易和計費系統(tǒng))。 TimesTen 通過將已提交事務中的更改記錄到磁盤并定期更新數(shù)據(jù)庫的磁盤鏡像(稱作“檢查點”)實現(xiàn)了持久性。應用程序可以對日志寫入磁盤的時間進行配置(要么與事務的結束時間同步,要么一直延遲到事務完成之后),從而實現(xiàn)了更高的性能。在許多情況下,高吞吐率要比同步記錄重要,尤其是當事務的貨幣價值很低或事務數(shù)據(jù)的生存時間較短時(如,當在每
15、幾秒種傳輸一次移動電話位置的網(wǎng)絡中跟蹤移動電話的位置時)。 Oracle TimesTen 產(chǎn)品支持的原生接口符合標準,且一般與任何其他符合標準的關系數(shù)據(jù)庫兼容。應用程序通過 JDBC(Java 數(shù)據(jù)庫連接)或 ODBC(開放數(shù)據(jù)庫連接)接口發(fā)出 SQL(結構化查詢語言)命令。用于定義數(shù)據(jù)存儲區(qū)和復制配置的語句也遵守 SQL 語法慣例。此外,還使用 SNMP(簡單網(wǎng)絡管理協(xié)議)發(fā)出標準化的系統(tǒng)管理警報。 Oracle TimesTen 提供了具有標準 JMS 接口的開放式事務日志 API (XLA 來讀取事務日志。它對于創(chuàng)建響應數(shù)據(jù)庫更新的應用程序很有用。在這方面,XLA 是一個輕型“觸發(fā)器”
16、。它還用于構建從 Oracle TimesTen 到其他數(shù)據(jù)庫系統(tǒng)的自定義數(shù)據(jù)復制。 ORACLE TIMESTEN 的物理結構 本部分從安裝、運行和使用計算資源的角度介紹了 Oracle TimesTen 產(chǎn)品的系統(tǒng)組件。 Oracle TimesTen 產(chǎn)品由以下組合組成: 共享庫 內(nèi)存中數(shù)據(jù)結構 系統(tǒng)進程(后臺程序/子后臺程序/代理) 管理程序 磁盤上的檢查點和日志文件 應用程序?qū)庸蚕韼?實施 SQL 操作的例程以及相關函數(shù)包含在一組共享庫中,開發(fā)人員將這些庫鏈接到應用程序并作為應用程序進程的一部分執(zhí)行。此共享庫方法與更常規(guī)的 RDBMS 不同,后者實現(xiàn)為與應用程序連接(通常通過客戶端/
17、服務器網(wǎng)絡連接)的一組可執(zhí)IMDB 技術實現(xiàn)為由應用程序、實用程序和系統(tǒng)進程通過共享庫例程訪問的內(nèi)存中數(shù)據(jù)存儲區(qū)??筛鶕?jù)恢復目的有選擇地維護日志和檢查點(備份副本)的磁盤文件行程序。通常,將數(shù)據(jù)管理器庫嵌入到應用程序中可能會使數(shù)據(jù)存儲區(qū)在應用程序進程異常終止時容易遭到破壞。Oracle TimesTen 解決了這一難題。Oracle TimesTen 庫使用正在申請專利的算法(稱作“MicroLogging ”)保護自身不受應用程序進程故障的影響。內(nèi)存中數(shù)據(jù)庫保持一致,并且其他應用程序不受影響而繼續(xù)運行。 圖 1:Oracle TimesTen In-Memory Database 產(chǎn)品的組件
18、應用程序還可以使用客戶端/服務器連接訪問 Oracle TimesTen 數(shù)據(jù)庫,但在大多數(shù)情況下,使用直接鏈接的應用程序?qū)崿F(xiàn)最佳性能。對于客戶端/服務器訪問,服務器后臺程序(后臺進程)將遠程用戶連接到服務器代理,服務器代理包含代表遠程客戶端訪問數(shù)據(jù)存儲區(qū)的共享庫。內(nèi)存中數(shù)據(jù)庫在操作系統(tǒng)的共享內(nèi)存段中維護,它包含所有用戶數(shù)據(jù)、索引、系統(tǒng)目錄、日志緩沖區(qū)、鎖表和臨時空間。多個應用程序可以共享一個數(shù)據(jù)存儲區(qū),而單個程序可以訪問同一系統(tǒng)上的多個數(shù)據(jù)存儲區(qū)。內(nèi)存中數(shù)據(jù)結構 內(nèi)存中數(shù)據(jù)存儲區(qū)在操作系統(tǒng)的共享內(nèi)存段中維護,它包含用戶數(shù)據(jù)、索引、系統(tǒng)目錄、日志緩沖區(qū)、鎖表和臨時空間。多個應用程序可以共享一
19、個數(shù)據(jù)存儲區(qū),而單個應用程序可以訪問多個數(shù)據(jù)存儲區(qū)并定期將數(shù)據(jù)存儲區(qū)和事務日志的更改寫入磁盤 圖 2:內(nèi)存中數(shù)據(jù)存儲區(qū) 系統(tǒng)進程 后臺進程在系統(tǒng)級別為啟動、關閉和應用程序故障檢測提供服務,并在數(shù)據(jù)存儲區(qū)級別為加載、檢查點和死鎖處理提供服務。每個數(shù)據(jù)存儲區(qū)都有一個實例范圍的 TimesTen 后臺程序(一個系統(tǒng)可能有多個實例)和一個單獨的數(shù)據(jù)存儲區(qū)子后臺程序。 管理程序 用戶、腳本或應用程序顯式調(diào)用實用程序來執(zhí)行交互式 SQL、批量復制、備份/恢復、數(shù)據(jù)存儲區(qū)移植和系統(tǒng)監(jiān)視等服務。 檢查點和日志文件 并定期將數(shù)據(jù)存儲區(qū)和事務日志的更改寫入磁盤。如果需要恢復數(shù)據(jù)存儲區(qū),Oracle TimesTe
20、n 將把磁盤上的數(shù)據(jù)存儲區(qū)檢查點 與仍位于日志文件中的已完成事務合并在一起。檢查點和日志文件使用普通的磁盤文件系統(tǒng)。在有限情況下,可以將 Oracle TimesTen 配置為執(zhí)行無磁盤操作。數(shù)據(jù)復制技術當需要近乎連續(xù)的可用性或負載分配時,可以將數(shù)據(jù)復制配置為在兩個或多個服務器間發(fā)送更新。將主服務器配置為發(fā)送更當需要近乎連續(xù)的可用性或負載分配時,可以將復制配置為在兩個或多個服務器間發(fā)送更新。服務器可以同時用作主服務器和用戶服務器以執(zhí)行雙向復制新,將用戶服務器配置為接收更新,而服務器可以同時用作主服務器和用戶服務器來執(zhí)行雙向復制?;跁r間的沖突檢測和解決用于當同時在多個位置更新同一數(shù)據(jù)時(這種情
21、況很少出現(xiàn))建立優(yōu)先級。 圖 3:添加數(shù)據(jù)復制以獲得高可用性配置復制后,將為每個數(shù)據(jù)存儲區(qū)啟動復制代理 進程。如果為復制而配置了同一服務器上的多個數(shù)據(jù)存儲區(qū),則每個數(shù)據(jù)存儲區(qū)將有一個單獨的復制代理。每個復制代理能夠向一個或多個用戶服務器發(fā)送更新,并從一個或多個主服務器那里接收更新。這些連接分別在復制代理進程的內(nèi)部實現(xiàn)為一個單獨的執(zhí)行線程。復制代理通過 TCP/IP 流套接字進行通信。為獲得最高性能,復制代理通過監(jiān)視現(xiàn)有的事務日志檢測數(shù)據(jù)存儲區(qū)更新,并在可能的情況下向用戶服務器發(fā)送批量更新。只復制提交的事務。在用戶服務器節(jié)點上,復制代理通過高效的低級接口更新數(shù)據(jù)存儲區(qū), 從而避免了 SQL 層的
22、開銷。高速緩存技術當使用 Oracle TimesTen 將 Oracle 數(shù)據(jù)的某些部分高速緩存到內(nèi)存中數(shù)據(jù)庫時,將創(chuàng)建一個高速緩存組 數(shù)據(jù)庫結構來保存高速緩存的數(shù)據(jù),應用程序?qū)⒄{(diào)用其他共享庫例程,同時啟動一個系統(tǒng)代理(即高速緩存代理),此代理在高速緩存數(shù)據(jù)庫和 Oracle 數(shù)據(jù)庫之間執(zhí)行所有異步數(shù)據(jù)傳輸。當使用 Cache Connect to Oracle 選項將 Oracle 數(shù)據(jù)庫的某些部分高速緩存到 Oracle TimesTen 數(shù)據(jù)存儲區(qū)時,將創(chuàng)建一個高速緩存組結構來保存緩存數(shù)據(jù),應用程序?qū)⒄{(diào)用其他共享庫例程,同時高速緩存代理在TimesTen 高速緩存與 Oracle 數(shù)據(jù)
23、庫之間執(zhí)行異步數(shù)據(jù)傳輸高速緩存組是由一個或多個通過主鍵/外鍵關系以邏輯層次結構排列的表的集合。高速緩存組中的每個表都與Oracle 數(shù)據(jù)庫表相關 圖 4:為 Oracle 數(shù)據(jù)添加高速緩存 高速緩存組是由一個或多個通過主鍵/外鍵關系以邏輯層次結構排列的表的集合。高速緩存組中的每個表都與 Oracle 數(shù)據(jù)庫表相關。一個高速緩存組表可以包含相關 Oracle 表中的所有行和列或行和列的一個子集??梢酝ㄟ^基于高速緩存管理器 的瀏覽器或通過 SQL 語句創(chuàng)建和修改高速緩存組。高速緩存組支持以下特性:應用程序可以對高速緩存組執(zhí)行讀取和寫入操作可以自動或手動刷新高速緩存組(將 Oracle 數(shù)據(jù)庫數(shù)據(jù)置
24、于高速緩存組中)可以自動或手動清理高速緩存組(將高速緩存更新傳播到 Oracle 表)可以自動跟蹤對 Oracle 表或高速緩存組的更改如果應用程序更新了高速緩存組中的行,則將 Oracle 表中的相應行作為同一事務的一部分同步更新,或在事務執(zhí)行后立即異步更新,具體情況取決于所創(chuàng)建的高速緩存組的類型。異步配置顯著提高了吞吐量并縮短了響應時間。如果在同步提交至 Oracle 時因某種原因失敗,則回滾事務,從而保持一致性,而異步配置將只記錄 Oracle 失敗,而不是自動回滾 Oracle TimesTen 事務(因為該事務已經(jīng)提交)。而異步配置的優(yōu)點(除性能外)在于,即使在與 Oracle 的連
25、接斷開的情況下,它仍將繼續(xù)運行,并在恢復連接時自動將更新應用于 Oracle。源自 Oracle 表的更改通過高速緩存代理刷新到高速緩存中。通過在內(nèi)存中管理所有數(shù)據(jù)并對該環(huán)境進行優(yōu)化,內(nèi)存中數(shù)據(jù)庫技術可以更高效地發(fā)揮作用,從而顯著提高了性能由于磁盤 I/O 的開銷遠遠高于內(nèi)存訪問,因此基于磁盤的 RDBMS必須假設數(shù)據(jù)位于磁盤上盡管緩沖池在基于磁盤的數(shù)據(jù)管理解決方案中是必要的,但在基于內(nèi)存的數(shù)據(jù)管理中卻不是必要的。數(shù)據(jù)早已位于內(nèi)存中對高速緩存數(shù)據(jù)的更新置于表中,并定期由代理放到高速緩存中。用戶在高速緩存外部所定義數(shù)據(jù)的老化也是由代理執(zhí)行的異步操作。 深入研究 IMDB 技術 內(nèi)存中數(shù)據(jù)庫技術通
26、過更改有關數(shù)據(jù)在運行時所在位置的假設 提供了引人注目的性能。通過在內(nèi)存中管理所有數(shù)據(jù) 并針對該環(huán)境進行優(yōu)化,內(nèi)存中數(shù)據(jù)庫技術可以更高效地發(fā)揮作用 ,從而顯著顯著提高響應性和 吞吐量。 但這種性能的核心是什么?應用程序能否只通過將其所有 RDBMS 數(shù)據(jù)置于主內(nèi)存中而獲得同一結果? RDBMS 執(zhí)行的大部分工作都是基于數(shù)據(jù)主要位于磁盤中這一假設完成的。優(yōu)化算法、緩沖池管理以及索引化檢索技術都有利于此基本假設。 而 Oracle TimesTen 知道 數(shù)據(jù)位于主內(nèi)存中,因此可以更直接地路由數(shù)據(jù),從而降低了代碼路徑長度并簡化了算法和結構。 在比較這些體系結構時,有一些重要的差別清楚地說明了如何實現(xiàn)
27、數(shù)倍的性能改進。為了進行說明,在查詢優(yōu)化算法、緩沖池管理和索引結構中只提供了其中少數(shù)幾個差別。 查詢優(yōu)化 基于磁盤的系統(tǒng)與基于內(nèi)存的系統(tǒng)使用不同的查詢優(yōu)化算法。RDBMS 優(yōu)化決策依賴于數(shù)據(jù)主要位于磁盤上這一假設。在動態(tài)的運行時環(huán)境中(數(shù)據(jù)在任何給定時刻都可能位于磁盤上或緩存在主內(nèi)存中),基于磁盤的系統(tǒng)必須假設最差的情形。由于磁盤 I/O 的開銷遠遠高于內(nèi)存訪問,因此基于磁盤的 RDBMS 必須假設數(shù)據(jù)位于磁盤上。它們針對減少性能瓶頸點(即磁盤 I/O)進行了優(yōu)化。如果這就是所采用的假設,那么基于磁盤的優(yōu)化器不會總為主要(或完全)位于主內(nèi)存中的數(shù)據(jù)生成最佳計劃。 而 IMDB 技術知道數(shù)據(jù)位于
28、主內(nèi)存中,并基于更簡單的假設優(yōu)化它的查詢。它不需要根據(jù)磁盤駐留進行最差情形假設,因此它的開銷估算可能會更簡單并更準確。 緩沖池管理 在常規(guī)的 RDBMS 體系結構中,必須為已經(jīng)高速緩存到主內(nèi)存中的數(shù)據(jù)維護高速緩沖池。當 SQL 查詢處理器需要一頁數(shù)據(jù)將數(shù)據(jù)保存到內(nèi)存中以后,索引模式的目標是減少 CPU 周期而非 I/O時,訪問方法必須先在緩沖池中搜索該內(nèi)存中數(shù)據(jù)。即使該數(shù)據(jù)位于緩沖池中,在許多情況下仍必須將它復制出緩沖池以便隨后進行處理。此緩沖池的維護和管理以及額外的數(shù)據(jù)副本顯著增加了將數(shù)據(jù)提供給應用程序的最初開銷。盡管緩沖池在基于磁盤的數(shù)據(jù)管理解決方案中是必要的,但在基于內(nèi)存的數(shù)據(jù)管理中卻不
29、是必要的。Oracle TimesTen 沒有緩沖池。由于數(shù)據(jù)已經(jīng)位于主內(nèi)存中,因此不需要緩沖池。這樣便降低了代碼路徑的長度和引擎的內(nèi)存需求,避免了復制,簡化了算法并更迅速地將數(shù)據(jù)傳輸給應用程序。 此外,這些 RDBMS 產(chǎn)品不會在運行時動態(tài)改變這些基于磁盤的假設?;诖疟P的假設在系統(tǒng)代碼庫中的交錯過于緊密,以至于無法使用幾個精心設計的 if-then-else 語句來簡化它們。在以下兩個體系結構的索引樹結構中可以看到有關這個相互交錯、基于磁盤的假設示例。 索引結構 (i B+ 樹 在典型的 RDBMS B + 樹索引頁中,鍵值和數(shù)據(jù)指針均保存在 B + 樹條目中。B + 樹節(jié)點(磁盤上的頁)
30、由許多 B + 樹條目組成,每個條目都保存索引數(shù)據(jù)值和下一個相應索引節(jié)點的頁碼或保存所搜索到的數(shù)據(jù)行的磁盤塊頁碼。該結構使得樹非常平和寬(非常適于減少磁盤 I/O)。在 B + 樹結構中,主要的目標是減少完成數(shù)據(jù)文件索引化查找所需的磁盤 I/O 數(shù)量。B + 樹實現(xiàn)此目標的方法是:(1 將鍵值保存在 B + 樹節(jié)點本身中(減少磁盤 I/O),(2 將盡可能多的索引條目保存到節(jié)點中(增加可以用單個 I/O 提供服務的 B + 樹條目數(shù))。該結構盡管對于磁盤上的數(shù)據(jù)和索引文件比較適合,但對于內(nèi)存中的數(shù)據(jù)則不太適合。將數(shù)據(jù)保存到內(nèi)存中以后,索引模式的目標是減少 CPU 周期而非 I/O。CPU 周期
31、用于擴展和比較 B + 樹中的壓縮索引值。大量的 CPU 周期還用來管理保存數(shù)據(jù)的緩沖區(qū)以及已經(jīng)從磁盤讀取到內(nèi)存中的索引。(ii T 樹在 Oracle TimesTen 中,情況要簡單一些。T 樹針對主內(nèi)存訪問進行了優(yōu)化。就大小和算法而言,它的索引條目比 B + 樹的更經(jīng)濟。T 樹節(jié)點之間的連接通過 <= 和 >= 指針實現(xiàn)。這兩個指針引用內(nèi)存位置,而非磁盤上的頁。僅僅通過這兩個比較,T 樹搜索算法便知道它正在搜索的值是位于當前節(jié)點上還是位于內(nèi)存中其他位置了。每次使用新的索引節(jié)點指針間接運算符都會使搜索區(qū)域減半 體現(xiàn)了真正的二分搜索。 T 樹索引針對內(nèi)存中的數(shù)據(jù)體系結構進行了優(yōu)化
32、。由于所有行已經(jīng)位于內(nèi)存中,因此 T 樹不包含鍵值 僅指向?qū)嶋H行(本示例中顯示的鍵值僅用于說明目的)刪除磁盤駐留假設后,一切變得更簡單、更別致、更精巧和更快速將其處理時間的一半用于管理數(shù)據(jù)的應用程序可以使容量增長近一倍 圖 5:內(nèi)存中數(shù)據(jù)存儲區(qū)的 T 樹索引 主內(nèi)存數(shù)據(jù)管理的目標是減低空間要求、消除磁盤 I/O 以及簡化算法、代碼路徑和內(nèi)存使用量。T 樹減少空間要求的方法是不在索引節(jié)點本身中保存鍵值,而是只指向已經(jīng)位于內(nèi)存的數(shù)據(jù)行中的值。由于索引樹結構全部位于內(nèi)存中,因此樹沒有磁盤 I/O。T 樹是一個非常簡單的算法,降低了代碼復雜性和代碼路徑的長度。使用 T 樹,您將獲得基于 B+ 樹訪問的
33、所有優(yōu)勢,并可以大量節(jié)省移動操作以及縮小大小。 差別體現(xiàn)在哪里 前面的體系結構差別示例表明,消除磁盤駐留性假設(或數(shù)據(jù)位置的模糊性)將顯著降低復雜性。計算機指令數(shù)至少降低十倍,緩沖池管理不復存在,不需要額外的數(shù)據(jù)副本,索引頁減小,并且它們的結構得到簡化。當數(shù)據(jù)的內(nèi)存駐留性成為基本事實假設時,一切變得更簡單、更簡潔、更精巧、更快速。 (a 全新的性價比 對于許多應用程序而言,利用內(nèi)存中數(shù)據(jù)庫技術為獲得競爭優(yōu)勢、提高用戶滿意度以及增加投資回報提供了一個新契機。 性能將成倍而非少量增長。將其處理時間的一半用于管理數(shù)據(jù)并將另一半用于其應用程序區(qū)域或業(yè)務邏輯的應用程序可以通過使用內(nèi)存中數(shù)據(jù)管理產(chǎn)品使容量
34、增長近一倍。就市場策略、體系結構經(jīng)濟和系統(tǒng)選擇而言,系統(tǒng)容量增加一倍顯著擴大了候選對象的范圍。非凡的性能可伸縮性Oracle TimesTen 的技術可利用對稱多處理器計算機上的多個 CPU 。下圖顯示了 Oracle TimesTen 6.0 在 4 CPU Linux/IntelOracle TimesTen 的吞吐量極大,當事務包含一個 SQL 操作時,吞吐量的范圍從每秒數(shù)萬個更新事務到數(shù)十萬個讀取操作。這些結果是在具有3.0 GHz 處理器的 4 CPULinux/Intel 系統(tǒng)上記錄的系統(tǒng)上的最大事務吞吐量。每個事務執(zhí)行一個 SQL 更新或選擇(讀?。┎僮鳎ㄈ鐖D所示)。該圖顯示了單
35、 CPU、雙 CPU 和 4 CPU 的結果。 圖 6:Oracle TimesTen 吞吐量最簡單也是最高容量的負載是“100% 讀取”測試,該測試度量使用鍵值查找可以檢索的單個記錄數(shù)。在本示例中,平均每秒完成 250,550 次讀取操作。在只使用 1 個 CPU 的情況下,速率接近 100,000。更新操作需要的遠非一個讀取操作,部分是因為必須為恢復而記錄更改。該結果表明,在 4 CPU 上,每秒更新的記錄數(shù)超過 70,000,而在 1 個 CPU 上,每秒更新的記錄數(shù)超過 30,000。盡管這些純負載不代表任何特定的業(yè)務應用程序,但這些結果卻證明了 Oracle TimesTen 具有極
36、高的性能,任何實際的混合 SQL 操作都有可能獲得最大的吞吐量(從每秒數(shù)千次操作到每秒數(shù)萬次操作不等)。如果需要更高的容量,Oracle TimesTen 可以擴展到使用 4 個以上 CPU 的系統(tǒng)。響應時間吞吐量是單個事務響應時間的副產(chǎn)品。隨著吞吐量增加,平均響應時間將縮短。在當前系統(tǒng)的各種數(shù)據(jù)管理負載下,吞吐量極高的 Oracle TimesTen 將獲得微秒級的響應時間。1 微妙 = 1/1000000 秒。下面兩個圖形顯示了前面描述的吞吐量負載的平均響應時間。 對于單記錄操作,Oracle TimesTen 延遲(響應時間)以微妙(1/1000000 秒)計。數(shù)據(jù)密集型應用程序由于其總
37、響應時間不僅僅包含數(shù)據(jù)管理部分而將成為最大受益者。這些結果是在具有3.0 GHz 處理器的 4 CPU Linux/Intel 系統(tǒng)上記錄的Oracle TimesTen 數(shù)據(jù)管理器采用了一個真正的關系數(shù)據(jù)庫模型。它不是一個混合模型,也不是一個移植了關系視圖的其他模型。熟悉常見RDBMS 產(chǎn)品的開發(fā)人員很快便可圖 7:Oracle TimesTen 延遲 必須注意,事務的響應時間是組成事務的各處理步驟(如業(yè)務邏輯、聯(lián)網(wǎng)、I/O 和數(shù)據(jù)管理)響應時間的總和。Oracle TimesTen 部分的性能并不是總響應時間的唯一決定因素。有時,某個步驟(通常是 I/O 或聯(lián)網(wǎng))將影響其他步驟。 例如,如
38、果使用客戶端/服務器網(wǎng)絡,而不是在應用程序與數(shù)據(jù)管理器之間直接建立連接,則網(wǎng)絡中的每次往返響應時間將增加 1 毫秒或更多。同樣,如果使用同步 I/O 記錄更改,則響應時間將包含相對較慢的磁盤操作。在這兩種情況下,如果數(shù)據(jù)管理部分在幾微秒內(nèi)完成,總應用程序響應時間將仍是網(wǎng)絡和 I/O 延遲的一個因素。 對于數(shù)據(jù)管理部分起決定因素的應用程序而言,Oracle TimesTen 技術的高速性將顯著縮短響應時間。性能最高的應用程序是指直接連接的、能夠使用異步日志記錄并頻繁進行數(shù)據(jù)管理的應用程序。典型例子包括頻繁執(zhí)行搜索操作的在線預訂系統(tǒng)、基于在線狀態(tài)和位置的通信服務以及聯(lián)系中心路由引擎。 通常,許多因
39、素(如事務大小、非數(shù)據(jù)訪問邏輯的數(shù)量以及平臺性能)將對性能結果產(chǎn)生重要影響。 實時功能 本部分介紹了 Oracle TimesTen 產(chǎn)品的功能以及開發(fā)人員在編寫實時應用程序時使用的接口和特性。 數(shù)據(jù)管理 關系數(shù)據(jù)庫模型 在關系模型中,用戶數(shù)據(jù)存儲為表中的行(記錄)。行被定義為一系列的列(數(shù)據(jù)字段),每個字段都有一個指定的數(shù)據(jù)類高速緩存組是由一組表組成的層次結構,這些表映射為一組相應的Oracle 表并包含某些或所有相同數(shù)據(jù)。可以對高速緩存組執(zhí)行讀寫操作,并且對數(shù)據(jù)的更新可以在高速緩存組和 Oracle 數(shù)據(jù)庫之間自動傳播表、索引、物化視圖和高速緩存組在數(shù)據(jù)存儲區(qū)中創(chuàng)建和維護。同一計算機系統(tǒng)上
40、可能存在多個由同一應用程序訪問的數(shù)據(jù)存儲區(qū)型??梢燥@式或隱式地創(chuàng)建索引,以便加快對表執(zhí)行的基于鍵的搜索或值范圍搜索。Oracle TimesTen 支持散列索引以及前面介紹的 T 樹索引,并自動實施定義的各種約束,如唯一性或引用完整性(表之間的父子關系)。 在表中,可以指定由一列或多列組成的主鍵。主鍵是行的唯一標識符,Oracle TimesTen 將自動禁止插入具有同一主鍵值的其他行。還可以為每個表指定一個或多個外鍵,每個外鍵都與另一表的主鍵關聯(lián)。外鍵建立兩個表之間的父子關系。例如,如果某一行有一個主鍵,而另一個表中的關聯(lián)外鍵與該主鍵的值相同,則不會刪除該行。 物化視圖是可以定義的可選結構。
41、物化視圖是源自常規(guī)(基)表的只讀表。它可以包含一個或多個表中的部分或所有數(shù)據(jù),并可以包含經(jīng)計算得到的值(如總數(shù)和平均數(shù))。由于基表每次更改時系統(tǒng)都會自動更新物化視圖,因此物化視圖使應用程序能夠更快速地訪問頻繁更新的數(shù)據(jù)。如果沒有物化視圖,則每當應用程序需要讀取數(shù)據(jù)時,將需要執(zhí)行聯(lián)接和其他計算。物化視圖對于支持事件處理(稍后將對其進行介紹)尤其有用。 如果使用 Cache Connect to Oracle,則可以在內(nèi)存中數(shù)據(jù)存儲區(qū)中定義一個或多個“高速緩存組”。高速緩存組是由一組表組成的層次結構(通過外鍵實現(xiàn)),這些表映射到一組相應的 Oracle 表并包含一些或所有相同數(shù)據(jù)??梢詫Ω咚倬彺娼M
42、執(zhí)行讀寫操作,并且對數(shù)據(jù)的更新可以在高速緩存組和 Oracle 之間自動傳播。 數(shù)據(jù)管理操作使用行業(yè)標準的結構化查詢語言 (SQL 表示。主要操作包括 SELECT(讀)、UPDATE 、INSERT 和 DELETE。還支持關系聯(lián)接操作(將多個表中的列組合為一個結果集),并且支持大多數(shù)在基準 SQL92 標準中定義的 SQL 選項。 表、索引、物化視圖和高速緩存組在數(shù)據(jù)存儲區(qū)中創(chuàng)建和維護。應用程序連接到數(shù)據(jù)存儲區(qū)并對其中的數(shù)據(jù)請求數(shù)據(jù)管理操作。同一計算機系統(tǒng)上可能存在多個由同一應用程序訪問的數(shù)據(jù)存儲區(qū)。但任何單個操作(例如,兩個表之間的聯(lián)接操作)都無法跨越多個數(shù)據(jù)庫。應用程序可以通過 Ora
43、cle TimesTen支持的分兩階段提交的標準 XA(或 JTA for Java)接口參與分布式事務。前面對 Oracle TimesTen IMDB 技術的介紹解釋了數(shù)據(jù)管理服務的“實時”性。值得重申的是,并不不是因為整個數(shù)據(jù)庫全部位于內(nèi)存中才消除了 I/O 實際上與此無關。確保 數(shù)據(jù)存儲區(qū)位于內(nèi)存中可以免去處理指令,否則這些指令可能導致數(shù)據(jù)位置模糊不清。這些指令包括間接的搜索算法、緩沖區(qū)管理開銷、數(shù)據(jù)副本以及次佳的索引結構和執(zhí)行計劃。此外,為了實現(xiàn)快速處理并節(jié)省內(nèi)存,還對 Oracle TimesTen 數(shù)Oracle TimesTen 符合數(shù)據(jù)管理系統(tǒng)的“ACID ”屬性:原子性、一
44、致性、孤立性和持久性一個常見的誤區(qū)是,內(nèi)存中數(shù)據(jù)管理器無法防止因系統(tǒng)故障而導致的數(shù)據(jù)丟失。實際上,TimesTen 使用了與常規(guī)數(shù)據(jù)庫中持久保存事務和數(shù)據(jù)的技術相同的技術。其主要差別在于,TimesTen 為應用程序提供了對持久性和總吞吐量進行權衡的控制可以在 Oracle TimesTen 中創(chuàng)建永久或臨時的數(shù)據(jù)存儲區(qū),并可以將其指定為獨占訪問或共享訪問為基于磁盤的日志記錄配置的數(shù)據(jù)存儲區(qū)可以在事務提交操作過程中據(jù)庫內(nèi)部的信息布局進行了優(yōu)化。在基于磁盤的 RDBMS 中,磁盤結構和內(nèi)存結構幾乎相同;內(nèi)存頁的大小與 I/O 塊的大小相等,從而最大限度地降低了 I/O 延遲。對 TimesTen
45、 而言,這并不重要,因此可以使內(nèi)存結構最大限度地減少處理指令。 持久性和并發(fā)性 Oracle TimesTen 符合數(shù)據(jù)管理系統(tǒng)的“ACID ”屬性:原子性、一致性、孤立性和持久性。這些屬性確保在多用戶系統(tǒng)中,每個事務在運行時就好像此時只有它運行一樣,并且系統(tǒng)可以確保不喪失已提交事務的效果。這些屬性是數(shù)據(jù)管理器所需的最嚴格的屬性,而 TimesTen 能夠完全具有這些屬性。 一個常見的誤區(qū)是,內(nèi)存中數(shù)據(jù)管理器無法防止因系統(tǒng)故障而導致的數(shù)據(jù)丟失。實際上,TimesTen 使用了與常規(guī)數(shù)據(jù)庫中持久保存事務和數(shù)據(jù)的技術相同的技術。在所有面向事務的系統(tǒng)中,可以組合使用更改日志記錄以及定期刷新數(shù)據(jù)存儲區(qū)
46、的磁盤版來實現(xiàn)持久性。 其主要差別在于,Oracle TimesTen 為應用程序提供了對持久性和總吞吐量進行權衡的控制過多的強調(diào)某一方將減弱另一方,而 Oracle TimesTen 在權衡二者方面提供了選擇。 磁盤操作 如果應用程序要求不能丟失更改,則在提交事務的過程中將把日志記錄保存到磁盤上。如果性能最大化的重要性超過丟失一些事務的可能性,則不用頻繁地將日志記錄寫入磁盤(與每次提交事務異步進行)。在任一情況下,Oracle TimesTen 數(shù)據(jù)管理器都將嘗試將多個事務一起“分組提交”,從而最大限度地降低磁盤寫操作。 應用程序可以定期請求 Oracle TimesTen 檢查數(shù)據(jù)存儲區(qū)的
47、磁盤鏡像變化。在必要情況下,應用程序可以控制記錄檢查點的頻率,這將決定完成恢復操作所用的時間。應用程序也可以選擇允許系統(tǒng)執(zhí)行自動檢查點記錄。支持在后臺運行的“模糊匹配”檢查點,該檢查點對正在運行的應用程序的影響很小。從系統(tǒng)故障恢復是指將日志記錄與最新的檢查點文件合并。 可以將 Oracle TimesTen 中的數(shù)據(jù)庫創(chuàng)建為永久數(shù)據(jù)庫或臨時數(shù)據(jù)存儲區(qū),并可以將其指定為獨占訪問(即單用戶)或共享(多用戶)訪問。永久數(shù)據(jù)存儲區(qū)(檢查點)在不使用時保存在磁盤中。臨時數(shù)據(jù)存儲區(qū)只位于內(nèi)存中,并在不使用時將其刪除。這兩種形式的數(shù)據(jù)存儲區(qū)都可以將更改記錄到磁盤上或只記錄在內(nèi)存中。日志記錄起兩個作用。首先,
48、日志記錄可以在系統(tǒng)發(fā)生故障后根據(jù)永久數(shù)據(jù)存儲區(qū)恢復事務。其次,在共享訪問模式下使用時,日志記錄使 Oracle TimesTen 數(shù)據(jù)管理器可以檢測和消除死鎖。 為基于磁盤的日志記錄配置的數(shù)據(jù)存儲區(qū)可以在事務提交(稱無磁盤數(shù)據(jù)存儲區(qū)適用于未連接磁盤存儲器的系統(tǒng),而故障后的恢復必須依賴從數(shù)據(jù)的遠程主副本重新創(chuàng)建數(shù)據(jù)存儲區(qū)這一功能鎖被放置在數(shù)據(jù)存儲區(qū)、表或行等級別的數(shù)據(jù)存儲區(qū)對象中。行級鎖定提供最大程度的多用戶并發(fā)性,并且是Oracle TimesTen 的默認設置應用程序有兩個隔離級別可以選擇:可串行化或讀提交讀提交隔離獲得最大程度的多用戶并發(fā)性。它確保讀取者將只看到已提交的數(shù)據(jù)值,但不用等待寫
49、入者釋放為持久提交)操作過程中將日志記錄寫入磁盤,也可以覆蓋日志記錄,并通過調(diào)用內(nèi)置過程使應用程序能夠確定何時寫入日志記錄。并非所有應用程序都需要持久提交。權衡之處在于性能。采用持久提交的高容量應用程序?qū)е麓疟P到日志的吞吐量出現(xiàn)瓶頸,并很快將耗盡現(xiàn)代處理器的 CPU 帶寬。較快的日志設備(如具有電池備份的高速緩存磁盤陣列或固定狀態(tài)磁盤)將在一定程度減輕瓶頸。 無磁盤數(shù)據(jù)存儲區(qū)適用于未連接磁盤存儲器的系統(tǒng),如嵌入式網(wǎng)絡處理器。對于多用戶訪問,將創(chuàng)建和維護內(nèi)存中日志文件(但并非用于恢復),因此應用程序可以終止并回滾事務,并且可以實施多用戶并發(fā)控制(如死鎖檢測)。因此,無磁盤數(shù)據(jù)存儲區(qū)可用于讀寫操
50、作,但故障恢復依賴從數(shù)據(jù)的遠程“主”副本重新創(chuàng)建數(shù)據(jù)存儲區(qū)(如通過復制工具維護的另一 Oracle TimesTen 數(shù)據(jù)存儲區(qū)或另一數(shù)據(jù)源)這一功能。 非記錄數(shù)據(jù)存儲區(qū)提供最快的性能。但在禁用日志記錄后,將無法回滾或恢復事務,并且只能在數(shù)據(jù)存儲區(qū)級別放置鎖(不允許使用行級或表級鎖定)。禁用日志只適用于在發(fā)生故障時可以從頭重新啟動的單用戶操作。 永久、共享的磁盤記錄數(shù)據(jù)存儲區(qū)是最常部署的配置。而在應用程序大多使用臨時數(shù)據(jù)的情況下,系統(tǒng)出現(xiàn)故障后恢復數(shù)據(jù)存儲區(qū)沒有任何意義,這是通常使用臨時數(shù)據(jù)存儲區(qū)。呼叫中心應用程序中高度動態(tài)的“狀態(tài)”信息就是其中一個例子。 鎖定和隔離 Oracle Times
51、Ten 使用鎖來防止用戶更改其他用戶當前正在讀取或更改的數(shù)據(jù)。鎖是在數(shù)據(jù)存儲區(qū)、表或行等級別置于數(shù)據(jù)存儲區(qū)對象中的“保留地”。 行級鎖定提供最大程度的多用戶并發(fā)性,并且是 Oracle TimesTen 數(shù)據(jù)存儲區(qū)的默認設置。應用程序可以在運行時調(diào)用過程將鎖級別更改為行級或數(shù)據(jù)存儲區(qū)級。當 TimesTen 優(yōu)化器確定其有利或當應用程序調(diào)用一個指示優(yōu)化器在事務持續(xù)期間應用表級鎖定的過程時將使用表級鎖定。 “隔離”指定為響應讀取操作而采用的鎖行為。應用程序有兩個隔離級別可以選擇:可串行化或讀提交(默認設置)。 可串行化隔離用于需要在事務生存期中獲得一致的、可預測的數(shù)據(jù)值的事務。使用可串行化隔離,在提交或回滾事務前,將禁止其他用戶更新或刪除不常讀取的記錄。此外在該時刻,如果新記錄是這些讀取操作結果集的一部分,則不允許其他用戶插入這些新記錄。換言之,可串行化隔離確??梢允褂猛唤Y果重復讀取操作。使用數(shù)據(jù)存儲區(qū)級鎖定,事
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 班主任心理健康與壓力管理的培訓總結
- 公交掃惡除霸承諾書范本
- 2025-2030全球船用防火窗行業(yè)調(diào)研及趨勢分析報告
- 2025年全球及中國運動刺激療法行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2025年全球及中國矩形橋式起重機行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2025-2030全球便攜式鼻腔沖洗器行業(yè)調(diào)研及趨勢分析報告
- 2025-2030全球農(nóng)用氧化亞銅行業(yè)調(diào)研及趨勢分析報告
- 2025年全球及中國鋼制螺旋錐齒輪行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2025年全球及中國戶外電氣箱行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2025-2030全球軸承精密滾珠行業(yè)調(diào)研及趨勢分析報告
- 蛋糕店服務員勞動合同
- 土地買賣合同參考模板
- 2025高考數(shù)學二輪復習-專題一-微專題10-同構函數(shù)問題-專項訓練【含答案】
- 2025年天津市政建設集團招聘筆試參考題庫含答案解析
- 2024-2030年中國烘焙食品行業(yè)運營效益及營銷前景預測報告
- 2025年上半年水利部長江水利委員會事業(yè)單位招聘68人(湖北武漢)重點基礎提升(共500題)附帶答案詳解
- 寧德時代筆試題庫
- 五年級下冊北京版英語單詞
- 康復醫(yī)院患者隱私保護管理制度
- 新課標I、Ⅱ卷 (2024-2020) 近五年高考英語真題滿分作文
- 浙江省嘉興市2023-2024學年六年級(上)期末數(shù)學試卷
評論
0/150
提交評論