1984年Guttman發(fā)表了《R-樹(shù):一種空間查詢的動(dòng)態(tài)索引結(jié)構(gòu)》
SQL Server 2008的空間索引
SQL Server 2008 引入了對(duì)空間數(shù)據(jù)和空間索引的支持,"空間索引"是一種擴(kuò)展索引,允許您對(duì)空間列編制索引??臻g列是包含空間數(shù)據(jù)類(lèi)型(如 geometry 或 geography)數(shù)據(jù)的表列。本節(jié)中的主題介紹了空間索引。
在 SQL Server 2008 中,空間索引(存儲(chǔ)在:sys.spatial_indexes表中)使用 B 樹(shù)構(gòu)建而成,也就是說(shuō),這些索引必須按 B 樹(shù)的線性順序表示二維空間數(shù)據(jù)。因此,將數(shù)據(jù)讀入空間索引之前,SQL Server 2008 先實(shí)現(xiàn)對(duì)空間的分層均勻分解。索引創(chuàng)建過(guò)程會(huì)將空間分解成一個(gè)四級(jí)"網(wǎng)格層次結(jié)構(gòu)"。這些級(jí)別指的是"第 1 級(jí)"(頂級(jí))、"第 2 級(jí)"、"第 3 級(jí)"和"第 4 級(jí)"。
每個(gè)后續(xù)級(jí)別都會(huì)進(jìn)一步分解其上一級(jí),因此上一級(jí)別的每個(gè)單元都包含下一級(jí)別的整個(gè)網(wǎng)格。在給定級(jí)別上,所有網(wǎng)格沿兩個(gè)軸都有相同數(shù)目的單元 (例如 4x4 或 8x8),并且單元的大小都相同。下圖顯示了網(wǎng)格層次結(jié)構(gòu)每個(gè)級(jí)別的右上角單元被分解成 4x4 網(wǎng)格的情況。事實(shí)上,所有單元都是以這種方式分解的。因此,以此為例,將一個(gè)空間分解成四個(gè)級(jí)別的 4x4 網(wǎng)格際上會(huì)總共產(chǎn)生 65,536 個(gè)第四級(jí)單元。針對(duì)空間索引進(jìn)行的空間分解與應(yīng)用程序數(shù)據(jù)使用的度量單位無(wú)關(guān)。
網(wǎng)格層次結(jié)構(gòu)的單元是利用多種 Hilbert 空間填充曲線以線性方式編號(hào)的。然而,出于演示目的,這里使用的是簡(jiǎn)單的按行編號(hào),而不是由 Hilbert 曲線實(shí)際產(chǎn)生的編號(hào)。在下圖中,幾個(gè)表示建筑物的多邊形和表示街道的線已經(jīng)放進(jìn)了一個(gè) 4x4 的 1 級(jí)網(wǎng)格中。第 1 級(jí)單元的編號(hào)為 1 到 16,編號(hào)從左上角的單元開(kāi)始。
沿網(wǎng)格軸的單元數(shù)目確定了網(wǎng)格的"密度":單元數(shù)目越大,網(wǎng)格的密度越大。例如,8x8 網(wǎng)格(產(chǎn)生 64 個(gè)單元)的密度就大于 4x4 網(wǎng)格(產(chǎn)生 16 個(gè)單元)的密度。網(wǎng)格密度是以每個(gè)級(jí)別為基礎(chǔ)定義的。網(wǎng)格配置單元數(shù)目低 :4X4 =16,中8X8 = 64,高16X16 =256,默認(rèn)設(shè)置所有級(jí)別都為 中。
您可以通過(guò)指定非默認(rèn)的網(wǎng)格密度控制分解過(guò)程。例如,在不同級(jí)別指定不同網(wǎng)格密度對(duì)于基于索引空間的大小和空間列中的對(duì)象來(lái)優(yōu)化索引可能非常有 用??臻g索引的網(wǎng)格密度顯示在 sys.spatial_index_tessellations 目錄視圖的 level_1_grid、level_2_grid、level_3_grid 和 level_4_grid 列中。
將索引空間分解成網(wǎng)格層次結(jié)構(gòu)后,空間索引將逐行讀取空間列中的數(shù)據(jù)。讀取空間對(duì)象(或?qū)嵗?的數(shù)據(jù)后,空間索引將為該對(duì)象執(zhí)行"分割過(guò)程"。分割過(guò)程通過(guò)將對(duì)象與其接觸的網(wǎng)格單元集("接觸單元")相關(guān)聯(lián)使該對(duì)象適合網(wǎng)格層次結(jié)構(gòu)。從網(wǎng)格層次結(jié)構(gòu)的第 1 級(jí)開(kāi)始,分割過(guò)程以"廣度優(yōu)先"方式對(duì)整個(gè)級(jí)別進(jìn)行處理。在可能的情況下,此過(guò)程可以連續(xù)處理所有四個(gè)級(jí)別,一次處理一個(gè)級(jí)別。
研究歷程
當(dāng)前數(shù)據(jù)搜索的一個(gè)關(guān)鍵問(wèn)題是速度。提高速度的核心技術(shù)是空間索引??臻g索引是由空間位置到空間對(duì)象的映射關(guān)系。當(dāng)前的一些大型數(shù)據(jù)庫(kù)都有空間索引能力,像Oracle,DB2??臻g索引技術(shù)并不單是為了提高顯示速度,顯示速度僅僅是它所要解決的一個(gè)問(wèn)題??臻g索引是為空間搜索提供一種合適的數(shù)據(jù)結(jié)構(gòu),以提高搜索速度??臻g索引技術(shù)的核心是:根據(jù)搜索條件,比如一個(gè)矩形,迅速找到與該矩形相交的所有空間對(duì)象集合。當(dāng)數(shù)據(jù)量巨大,矩形框相對(duì)于全圖很小時(shí),這個(gè)集合相對(duì)于全圖數(shù)據(jù)集大為縮小,在這個(gè)縮小的集合上再處理各種復(fù)雜的搜索,效率就會(huì)大大提高。所謂空間索引,就是指依據(jù)空間實(shí)體的位置和形狀或空間實(shí)體之間的某種空間關(guān)系,按一定順序排列的一種數(shù)據(jù)結(jié)構(gòu),其中包含空間實(shí)體的概要信息如對(duì)象的標(biāo)識(shí)、外接矩形及指向空間實(shí)體數(shù)據(jù)的指針。簡(jiǎn)單的說(shuō),就是將空間對(duì)象按某種空間關(guān)系進(jìn)行劃分,以后對(duì)空間對(duì)象的存取都基于劃分塊進(jìn)行。 1 引言 空間索引是對(duì)存儲(chǔ)在介質(zhì)上的數(shù)據(jù)位置信息的描述,用來(lái)提高系統(tǒng)對(duì)數(shù)據(jù)獲取的效率。空間索引的提出是由兩方面決定的:其一是由于計(jì)算機(jī)的體系結(jié)構(gòu)將存貯器分為內(nèi)存、外存 兩種,訪問(wèn)這兩種存儲(chǔ)器一次所花費(fèi)的時(shí)間一般為30~40ns,8~10ms,可以看出兩者相差十 萬(wàn)倍以上,盡管有"內(nèi)存數(shù)據(jù)庫(kù)"的說(shuō)法,但絕大多數(shù)數(shù)據(jù)是存儲(chǔ)在外存磁盤(pán)上的,如果對(duì)磁盤(pán)上數(shù)據(jù)的位置不加以記錄和組織,每查詢一個(gè)數(shù)據(jù)項(xiàng)就要掃描整個(gè)數(shù)據(jù)文件,這種訪問(wèn)磁盤(pán)的代價(jià)就會(huì)嚴(yán)重影響系統(tǒng)的效率,因此系統(tǒng)的設(shè)計(jì)者必須將數(shù)據(jù)在磁盤(pán)上的位置加以記錄和組織,通過(guò)在內(nèi)存中的一些計(jì)算來(lái)取代對(duì)磁盤(pán)漫無(wú)目的的訪問(wèn),才能提高系統(tǒng)的效率,尤其是GIS涉及的是各種海量的復(fù)雜數(shù)據(jù),索引對(duì)于處理的效率是至關(guān)重要的。其二是GIS 所表現(xiàn)的地理數(shù)據(jù)多維性使得傳統(tǒng)的B樹(shù)索引并不適用,因?yàn)锽樹(shù)所針對(duì)的字符、數(shù)字等傳統(tǒng)數(shù)據(jù)類(lèi)型是在一個(gè)良序集之中,即都是在一個(gè)維度上,集合中任給兩個(gè)元素,都可以在這個(gè)維度上確定其關(guān)系只可能是大于、小于、等于三種,若對(duì)多個(gè)字段進(jìn)行索引,必須指定各個(gè)字段的優(yōu)先級(jí)形成一個(gè)組合字段,而地理數(shù)據(jù)的多維性,在任何方向上并不存在優(yōu)先級(jí)問(wèn)題,因此B樹(shù)并不能對(duì)地理數(shù)據(jù)進(jìn)行有效的索引,所以需要研究特殊的能適應(yīng)多維特性的空間索引方式。 1984年Guttman發(fā)表了《R樹(shù):一種空間查詢的動(dòng)態(tài)索引結(jié)構(gòu)》,它是一種高度平衡的樹(shù),由中間節(jié)點(diǎn)和頁(yè)節(jié)點(diǎn)組成,實(shí)際數(shù)據(jù)對(duì)象的最小外接矩形存儲(chǔ)在頁(yè)節(jié)點(diǎn)中,中間節(jié)點(diǎn)通過(guò)聚集其低層節(jié)點(diǎn)的外接矩形形成,包含所有這些外接矩形。其后,人們?cè)诖嘶A(chǔ)上針對(duì)不同空間運(yùn)算提出了不同改進(jìn),才形成了一個(gè)繁榮的索引樹(shù)族,是流行的空間索引。
常見(jiàn)空間索引類(lèi)型有BSP樹(shù)、K-D-B樹(shù)、R樹(shù)、R+樹(shù)和CELL樹(shù),空間索引的性能的優(yōu)越直接影響空間數(shù)據(jù)庫(kù)和地理信息系統(tǒng)的整體性能。結(jié)構(gòu)較為簡(jiǎn)單的格網(wǎng)型空間索引在各GIS軟件和系統(tǒng)中(如ArcGIS)都有著廣泛的應(yīng)用。
分形(Fractal)理論,是現(xiàn)代數(shù)學(xué)的一個(gè)新分支。分形幾何學(xué)是一門(mén)以非規(guī)則幾何形態(tài)為研究對(duì)象的幾何學(xué)。通過(guò)對(duì)分形理論的深入研究,證明了皮亞諾曲線的一些性質(zhì),尤其對(duì)Hilbert空間填(略),為空間索引的研究提供了必要的理論知識(shí)。
空間數(shù)據(jù)(略)空間信息領(lǐng)域的核心研究?jī)?nèi)容之一.隨著空間信息基礎(chǔ)設(shè)施建設(shè)和空間數(shù)據(jù)獲取技術(shù)的快速發(fā)展,空間數(shù)據(jù)規(guī)模越來(lái)越大,對(duì)空間數(shù)據(jù)共享的要求越來(lái)越高,與此同時(shí)空間數(shù)據(jù)倉(cāng)庫(kù)、空間數(shù)據(jù)挖掘等(略)系統(tǒng)性能提出了日益增長(zhǎng)的需求。在依賴(lài)硬件改善數(shù)據(jù)庫(kù)系統(tǒng)性能越來(lái)越困難的情況下,以提高空間數(shù)據(jù)共享能力,增強(qiáng)空間數(shù)據(jù)的索引效率成為當(dāng)前研究的熱點(diǎn)前沿。
基于分形理論,通過(guò)生成Hilbert曲線,將空間數(shù)據(jù)進(jìn)行有效合理的劃分,并且結(jié)合當(dāng)前空間索引系統(tǒng)中應(yīng)用廣泛的R-樹(shù)空間(略)成了一種新的空間索引算法及體系,很好地解決了空間索引速度和索引精度問(wèn)題,(略)分布式海量空間數(shù)據(jù)的空間索引效率。具體如下:深入研究了分形圖形的編碼理論,L系統(tǒng)和迭代函數(shù)系統(tǒng)繪制分形圖形的方法,并給出Hilbert空間填充曲線的生成方案,設(shè)計(jì)出掃描矩陣算法。
對(duì)一個(gè)數(shù)據(jù)集做"索引",是為了提高對(duì)這個(gè)數(shù)據(jù)集檢索的效率。書(shū)的"目錄"就是這本書(shū)內(nèi)容的"索引",當(dāng)我們拿到一本新書(shū),想查看感興趣內(nèi)容的時(shí)候,我們會(huì)先查看目錄,確定感興趣的內(nèi)容會(huì)在哪些頁(yè)里,直接翻到那些頁(yè),就OK了,而不是從第一章節(jié)開(kāi)始翻,一個(gè)字一個(gè)字地找我們感興趣的內(nèi)容,直到找到為止,這種檢索內(nèi)容的效率也太低了,如果一本書(shū)沒(méi)有目錄,可以想象有多么不方便…指可空間在索引查找中的重要性 可見(jiàn)書(shū)的目錄有多重要 索引有多重要啊!
下面有-一橫的就表示,本圖紙的大樣1
1、本圖中符合陽(yáng)臺(tái)尺寸及造型要求,都和標(biāo)示的節(jié)點(diǎn)做法相同 ? 2、余同指的就是符合相同條件的,不在進(jìn)行標(biāo)示,參照此節(jié)點(diǎn)做法
天正建筑怎么調(diào)整索引符號(hào)中的索引圖名和索引編號(hào)的字高比例
天正建筑調(diào)整索引符號(hào)中的索引圖名和索引編號(hào)的字高比例的方法:在天正建筑中只需要在天正選項(xiàng)-高級(jí)選項(xiàng)當(dāng)中選擇-符號(hào)標(biāo)注-圓圈文字字高系數(shù)修改為0.8就O可以了 ;分別選中索引符號(hào)和索引圖名;鼠標(biāo)右鍵對(duì)象...
R樹(shù)
R樹(shù)是B樹(shù)向多維空間發(fā)展的另一種形式,它將空間對(duì)象按范圍劃分,每個(gè)結(jié)點(diǎn)都對(duì)應(yīng)一個(gè)區(qū)域和一個(gè)磁盤(pán)頁(yè),非葉結(jié)點(diǎn)的磁盤(pán)頁(yè)中存儲(chǔ)其所有子結(jié)點(diǎn)的區(qū)域范圍,非葉結(jié)點(diǎn)的所有子結(jié)點(diǎn)的區(qū)域都落在它的區(qū)域范圍之內(nèi);葉結(jié)點(diǎn)的磁盤(pán)頁(yè)中存儲(chǔ)其區(qū)域范圍之內(nèi)的所有空間對(duì)象的外接矩形。每個(gè)結(jié)點(diǎn)所能擁有的子結(jié)點(diǎn)數(shù)目有上、下限,下限保證對(duì)磁盤(pán)空間的有效利用,上限保證每個(gè)結(jié)點(diǎn)對(duì)應(yīng)一個(gè)磁盤(pán)頁(yè),當(dāng)插入新的結(jié)點(diǎn)導(dǎo)致某結(jié)點(diǎn)要求的空間大于一個(gè)磁盤(pán)頁(yè)時(shí),該結(jié)點(diǎn)一分為二。R樹(shù)是一種動(dòng)態(tài)索引結(jié)構(gòu),即:它的查詢可與插入或刪除同時(shí)進(jìn)行,而且不需要定期地對(duì)樹(shù)結(jié)構(gòu)進(jìn)行重新組織。
1 R-Tree數(shù)據(jù)結(jié)構(gòu)
R-Tree是一種空間索引數(shù)據(jù)結(jié)構(gòu),下面做簡(jiǎn)要介紹:
(1)R-Tree是n 叉樹(shù),n稱(chēng)為R-Tree的扇(fan)。
(2)每個(gè)結(jié)點(diǎn)對(duì)應(yīng)一個(gè)矩形。
(3)葉子結(jié)點(diǎn)上包含了小于等于n 的對(duì)象,其對(duì)應(yīng)的矩為所有對(duì)象的外包矩形。
(4)非葉結(jié)點(diǎn)的矩形為所有子結(jié)點(diǎn)矩形的外包矩形。
R-Tree的定義很寬泛,同一套數(shù)據(jù)構(gòu)造R-Tree,不同方可以得到差別很大的結(jié)構(gòu)。什么樣的結(jié)構(gòu)比較優(yōu)呢?有兩標(biāo)準(zhǔn):
(1)位置上相鄰的結(jié)點(diǎn)盡量在樹(shù)中聚集為一個(gè)父結(jié)點(diǎn)。
(2)同一層中各兄弟結(jié)點(diǎn)相交部分比例盡量小。
R樹(shù)是一種用于處理多維數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu),用來(lái)訪問(wèn)二維或者更高維區(qū)域?qū)ο蠼M成的空間數(shù)據(jù).R樹(shù)是一棵平衡樹(shù)。樹(shù)上有兩類(lèi)結(jié)點(diǎn):葉子結(jié)點(diǎn)和非葉子結(jié)點(diǎn)。每一個(gè)結(jié)點(diǎn)由若干個(gè)索引項(xiàng)構(gòu)成。對(duì)于葉子結(jié)點(diǎn),索引項(xiàng)形如(Index,Obj_ID)。其中,Index表示包圍空間數(shù)據(jù)對(duì)象的最小外接矩形MBR,Obj_ID標(biāo)識(shí)一個(gè)空間數(shù)據(jù)對(duì)象。對(duì)于一個(gè)非葉子結(jié)點(diǎn),它的索引項(xiàng)形如(Index,Child_Pointer)。 Child_Pointer 指向該結(jié)點(diǎn)的子結(jié)點(diǎn)。Index仍指一個(gè)矩形區(qū)域,該矩形區(qū)域包圍了子結(jié)點(diǎn)上所有索引項(xiàng)MBR的最小矩形區(qū)域。一棵R樹(shù)的示例如圖所示:
2 R-Tree算法描述
算法描述如下:
對(duì)象數(shù)為n,扇區(qū)大小定為fan。
(1)估計(jì)葉結(jié)點(diǎn)數(shù)k=n/fan。
(2)將所有幾何對(duì)象按照其矩形外框中心點(diǎn)的x值排序。
(3)將排序后的對(duì)象分組,每組大小為 *fan,最后一組可能不滿員。
(4)上述每一分組內(nèi)按照幾何對(duì)象矩形外框中心點(diǎn)的y值排序。
(5)排序后每一分組內(nèi)再分組,每組大小為fan。
(6)每一小組成為葉結(jié)點(diǎn),葉子結(jié)點(diǎn)數(shù)為nn。
(7)N=nn,返回1。
3 R-Tree空間索引算法的研究歷程
1 R-Tree
多維索引技術(shù)的歷史可以追溯到20世紀(jì)70年代中期。就在那個(gè)時(shí)候,諸如Cell算法、四叉樹(shù)和k-d樹(shù)等各種索引技術(shù)紛紛問(wèn)世,但它們的效果都不盡人意。
R+樹(shù)
在Guttman的工作的基礎(chǔ)上,許多R樹(shù)的變種被開(kāi)發(fā)出來(lái), Sellis等提出了R+樹(shù),R+樹(shù)與R樹(shù)類(lèi)似,主要區(qū)別在于R+樹(shù)中兄弟結(jié)點(diǎn)對(duì)應(yīng)的空間區(qū)域無(wú)重疊,這樣劃分空間消除了R樹(shù)因允許結(jié)點(diǎn)間的重疊而產(chǎn)生的"死區(qū)域"(一個(gè)結(jié)點(diǎn)內(nèi)不含本結(jié)點(diǎn)數(shù)據(jù)的空白區(qū)域),減少了無(wú)效查詢數(shù),從而大大提高空間索引的效率,但對(duì)于插入、刪除空間對(duì)象的操作,則由于操作要保證空間區(qū)域無(wú)重疊而效率降低。同時(shí)R+樹(shù)對(duì)跨區(qū)域的空間物體的數(shù)據(jù)的存儲(chǔ)是有冗余的,而且隨著數(shù)據(jù)庫(kù)中數(shù)據(jù)的增多,冗余信息會(huì)不斷增長(zhǎng)。Greene也提出了他的R樹(shù)的變種。
R*樹(shù)
在1990年,Beckman和Kriegel提出了最佳動(dòng)態(tài)R樹(shù)的變種--R*樹(shù)。R*樹(shù)和R樹(shù)一樣允許矩形的重疊,但在構(gòu)造算法R*樹(shù)不僅考慮了索引空間的"面積",而且還考慮了索引空間的重疊。該方法對(duì)結(jié)點(diǎn)的插入、分裂算法進(jìn)行了改進(jìn),并采用"強(qiáng)制重新插入"的方法使樹(shù)的結(jié)構(gòu)得到優(yōu)化。但R*樹(shù)算法仍然不能有效地降低空間的重疊程度,尤其是在數(shù)據(jù)量較大、空間維數(shù)增加時(shí)表現(xiàn)的更為明顯。R*樹(shù)無(wú)法處理維數(shù)高于20的情況。
QR樹(shù)
QR樹(shù)利用四叉樹(shù)將空間劃分成一些子空間,在各子空間內(nèi)使用許多R樹(shù)索引,從而改良索引空間的重疊。QR樹(shù)結(jié)合了四叉樹(shù)與R樹(shù)的優(yōu)勢(shì),是二者的綜合應(yīng)用。實(shí)驗(yàn)證明:與R樹(shù)相比,QR樹(shù)以略大(有時(shí)甚至略小)的空間開(kāi)銷(xiāo)代價(jià),換取了更高的性能,且索引目標(biāo)數(shù)越多,QR樹(shù)的整體性能越好。
SS樹(shù)
SS樹(shù)對(duì)R*樹(shù)進(jìn)行了改進(jìn),通過(guò)以下措施提高了最鄰近查詢的性能:用最小邊界圓代替最小邊界矩形表示區(qū)域的形狀,增強(qiáng)了最鄰近查詢的性能,減少將近一半存儲(chǔ)空間;SS樹(shù)改進(jìn)了R*樹(shù)的強(qiáng)制重插機(jī)制。當(dāng)維數(shù)增加到5是,R樹(shù)及其變種中的邊界矩形的重疊將達(dá)到90%,因此在高維情況(≥5)下,其性能將變的很差,甚至不如順序掃描。
X樹(shù)
X樹(shù)是線性數(shù)組和層狀的R樹(shù)的雜合體,通過(guò)引入超級(jí)結(jié)點(diǎn),大大地減少了最小邊界矩形之間的重疊,提高了查詢效率。X樹(shù)用邊界圓進(jìn)行索引,邊界矩形的直徑(對(duì)角線)比邊界圓大,SS樹(shù)將點(diǎn)分到小直徑區(qū)域。由于區(qū)域的直徑對(duì)最鄰近查詢性能的影響較大,因此SS樹(shù)的最鄰近查詢性能優(yōu)于R*樹(shù);邊界矩形的平均容積比邊界圓小,R*樹(shù)將點(diǎn)分到小容積區(qū)域;由于大的容積會(huì)產(chǎn)生較多的覆蓋,因此邊界矩形在容積方面要優(yōu)于邊界圓。SR樹(shù)既采用了最小邊界圓(MBS),也采用了最小邊界矩形(MBR),相對(duì)于SS樹(shù),減小了區(qū)域的面積,提高了區(qū)域之間的分離性,相對(duì)于R*樹(shù),提高了鄰近查詢的性能。
格式:pdf
大?。?span id="oc7x1tb" class="single-tag-height">93KB
頁(yè)數(shù): 4頁(yè)
評(píng)分: 4.4
空間是動(dòng)態(tài)的空間,它充滿了活力,如同一個(gè)有著很強(qiáng)生命力的精靈;建筑師通過(guò)自己掌握的知識(shí)積累,貫注自己的思想,運(yùn)用不同的思維方式,采用不同的處理手法,精心創(chuàng)造著每一個(gè)動(dòng)人的動(dòng)態(tài)空間。動(dòng)態(tài)空間形態(tài)只有滿足了空間所追求的本質(zhì)與目的,才會(huì)有活力,才能達(dá)到創(chuàng)造良好的空間視覺(jué)效果與使用效果的目的。介紹了空間序列組合、空間的界面處理、燈飾與陳設(shè)的空間創(chuàng)造、以及空間的相互滲透等幾種創(chuàng)造動(dòng)態(tài)空間的手段與方法。
格式:pdf
大?。?span id="lw7kqwf" class="single-tag-height">93KB
頁(yè)數(shù): 2頁(yè)
評(píng)分: 4.6
筑神-建筑資料下載:http://www.zhushen.com.cn 通用圖集,規(guī)范,工程表格,施工組織設(shè)計(jì),CAD 圖塊,工程論文,建筑模型等全部免費(fèi)下載 陶瓷標(biāo)準(zhǔn)索引 標(biāo)準(zhǔn)代號(hào) 標(biāo) 準(zhǔn) 名 稱(chēng) GB/T1964-1996 多孔陶瓷壓縮強(qiáng)度試驗(yàn)方法 GB/T1965-1996 多孔陶瓷彎曲強(qiáng)度試驗(yàn)方法 GB/T2832-1996 陶管抗外壓強(qiáng)度試驗(yàn)方法 GB/T2833-1996 陶管抗彎強(qiáng)度試驗(yàn)方法 GB2835-81 陶管耐酸性能試驗(yàn)方法 GB/T3810-1996 陶瓷磚抽樣方案及抽樣方法 GB/T4100-92 釉面內(nèi)墻磚 GB6952-86 衛(wèi)生陶瓷 GB6953-86 衛(wèi)生陶瓷規(guī)格及連接尺寸 GB6954-86 陶瓷墻地磚濕膨脹試驗(yàn)方法 GB6955-86 陶瓷墻地磚抗凍性能試驗(yàn)方法 GB8488-87 耐酸磚
BSP樹(shù)能很好地與空間數(shù)據(jù)庫(kù)中空間對(duì)象的分布情況相適應(yīng),但對(duì)一般情況而言,BSP樹(shù)深度較大,對(duì)各種操作均有不利影響。
按其作用與格式可分為兩種:①全宗存放位置索引。即以全宗及其組成部分(如全宗內(nèi)各類(lèi))的檔案為單位,指出它們的存放處所,格式見(jiàn)表1。②庫(kù)房存放全宗索引,即以庫(kù)房和架(柜)為單位,指出它們所存的是什么全宗及其組成部分的檔案,格式見(jiàn)表2。庫(kù)房存放全宗索引亦可按每個(gè)庫(kù)房 (或樓、層、房間)內(nèi)檔案存放的情況繪制成示意圖,掛貼在相應(yīng)庫(kù)房的入口處,便于保管人員和調(diào)卷人員隨時(shí)參看。2100433B
索引建好后,如果表中的數(shù)據(jù)發(fā)生變化,比如增加或修改了記錄,怎么辦?由于對(duì)表所發(fā)生的任何DML語(yǔ)句,都不會(huì)自動(dòng)修改索引,因此,必須定時(shí)同步(sync)和優(yōu)化(optimize)索引,以正確反映數(shù)據(jù)的變化。
在索引建好后,可以在該用戶下查到Oracle自動(dòng)產(chǎn)生了以下幾個(gè)表:(假設(shè)索引名為myindex):
DR$myindex$I,DR$myindex$K,DR$myindex$R,DR$myindex$N
其中以I表最重要,可以查詢一下該表:
select token_text,token_count from DR$ myindex $I where rownum<=20;
查詢結(jié)果在此省略。可以看到,該表中保存的其實(shí)就是Oracle 分析你的文檔后,生成的term記錄
在這里,包括term出現(xiàn)的位置、次數(shù)、hash值等。當(dāng)文檔的內(nèi)容改變后,可以想見(jiàn)這個(gè)I表的內(nèi)容也應(yīng)該相應(yīng)改變,才能保證Oracle在做全文檢索時(shí)正確檢索到內(nèi)容(因?yàn)樗^全文檢索,其實(shí)核心就是查詢這個(gè)表)。那么如何維護(hù)該表的內(nèi)容,不能每次數(shù)據(jù)改變都重新建立索引,這就要用到sync 和 optimize了。
同步(sync):將新的term 保存到I表;
優(yōu)化(optimize):清除I表的垃圾,主要是將已經(jīng)被刪除的term從I表刪除。
Oracle提供了一個(gè)所謂的ctx server來(lái)做這個(gè)同步和優(yōu)化的工作,只需要在后臺(tái)運(yùn)行這個(gè)進(jìn)程,它會(huì)監(jiān)視數(shù)據(jù)的變化,及時(shí)進(jìn)行同步。另外,也可以用以下的job來(lái)完成(該job要建在和表同一個(gè)用戶下):
create or replace procedure sync
is
begin
execute immediate
'alter index myindex rebuild online' ||
' parameters (''sync'')' ;
execute immediate
'alter index myindex rebuild online' ||
' parameters (''optimize full maxtime unlimited'')' ;
end sync;
/
Set ServerOutput on
declare
v_job number;
begin
Dbms_Job.Submit
(
job => v_job,
what => 'sync;',
next_date => sysdate,/* default */
interval => 'sysdate + 1/720' /* = 1 day / (24 hrs * 30 min) = 2 mins */
);
Dbms_Job.Run (v_job);
Dbms_Output.Put_Line ('Submitted as job # ' || to_char (v_job));
end;
/
job的SYSDATE + (1/720)是指每隔2分鐘同步一次。具體的時(shí)間間隔,可以根據(jù)自己的應(yīng)用的需要而定。