Dùng các thu瓜c tính 違o (virtual properties):

Một phần của tài liệu QUẢN LÍ HỆ THỐNG THÔNG TIN ĐỊA LÍ (Trang 32)

Có m瓜t ý t逢荏ng khác t衣o nên s詠 “trong su嘘t” cho PERST d詠a trên vi羽c dùng các thu瓜c tính 違o (virtual properties). Không gi嘘ng nh逢 Java, C# cung

e医p c挨 ch院 cho phép 8óng gói các thu瓜c tính, thành ph亥n c栄a m瓜t l噂p. Ý

v逢荏ng ban 8亥u r医t 8挨n gi違n: T衣o ra l噂p bao b丑c (wrapper class) s胤 cài 8員t các thu瓜c tính này. Nh逢 v壱y l壱p trình viên s胤"8逢嬰c gi違i phóng kh臼i nhi隠u vi羽c nh臼 nh員t nh逢 không ph違i lo 8院n chuy羽n quá t違i hàm recursiveLoading, hay

i丑i t逢運ng minh hàmLoad"8吋 load 8嘘i t逢嬰ng c ng nh逢"8ánh d医u 8嘘i t逢嬰ng b鵜

thay 8鰻i b荏i hàm Modify n英a…. Tuy nhiên cách này v磯n có nh英ng h衣n ch院 e栄a riêng nó:

1.A嘘i t逢嬰ng c栄a chúng ta không 8逢嬰c có các tr逢運ng l逢u tr英" 8逢嬰c (persistent fields). Thay vì th院, ta ph違i 8鵜nh ngh a các thu瓜c tính tr瑛u

v逢嬰ng. C# cung c医p c挨 ch院 cho phép ta d宇 dàng làm vi羽c v噂i các thu瓜c tính, nên vi羽c l壱p trình s胤"8叡 n員ng n隠 h挨n.

2.Ta c ng không th吋 t衣o ra các 8嘘i t逢嬰ng này b茨ng toán t穎 new nh逢

bình th逢運ng. Ta ph違i dùng ph逢挨ng th泳c IStorage.CreateClass dùng 8吋 t衣o

n噂p bao b丑c và t衣o ra 8嘘i t逢嬰ng c栄a l噂p này. L噂p này c ng không có hàm kh荏i t衣o nào khác ngoài hàm kh荏i t衣o m員c 8鵜nh, và hàm kh荏i t衣o m員c 8鵜nh

này c ng không làm gì khác ngoài vi羽c kh荏i t衣o các thành ph亥n không

8逢嬰c l逢u tr英 (vì hàm kh荏i t衣o này s胤" 8逢嬰c g丑i m厩i khi 8嘘i t逢嬰ng 8逢嬰c load t瑛 b瓜 nh噂 ph映).

3.Ta c ng không th吋 có thành ph亥n c栄a 8嘘i t逢嬰ng là m違ng các tham chi院u 8院n các 8嘘i t逢嬰ng khác. Ta ph違i dùng PERST.PArray"8吋 thay th院.

4.S詠 phát sinh l噂p bao b丑c nh逢 v壱y có chi phí cao, làm gi違m hi羽u su医t ch逢挨ng trình n院u có nhi隠u l噂p.

5.Cu嘘i cùng, c挨 ch院 này không 8逢嬰c h厩 tr嬰 trong môi tr逢運ng .NET Compact framework do môi tr逢運ng này không h厩 tr嬰 vi羽c t衣o mã trong th運i gian th詠c thi (runtime).

2.4 E挨 ch院 th詠c hi羽n giao tác (Transaction):

O厩i record hay 8嘘i t逢嬰ng trong PERST có duy nh医t m瓜t s嘘"8鵜nh danh g丑i là OID. OID"8逢嬰c dùng 8吋 tham chi院u gi英a các 8嘘i t逢嬰ng v噂i nhau. A吋"8鵜nh

x鵜 chính xác m瓜t 8嘘i t逢嬰ng b茨ng tham chi院u, OID c栄a chúng 8逢嬰c dùng nh逢

ch雨 s嘘 trong m違ng các 8鵜a ch雨 (offset) c栄a các 8嘘i t逢嬰ng trong database.

O違ng này 8逢嬰c g丑i là m違ng ch雨 m映c 8嘘i t逢嬰ng (object index) và m厩i thành ph亥n c栄a m違ng này 8逢嬰c g丑i là m瓜t m映c qu違n 8嘘i t逢嬰ng (object handle), gi英 8鵜a ch雨 trong database c栄a 8嘘i t逢嬰ng. Có 2 b違n c栄a m違ng ch雨 m映c 8嘘i t逢嬰ng trong PERST, m瓜t là m違ng “hi羽n hành” (current) và m違ng còn l衣i g丑i là

o違ng “bóng” (shadow) c栄a m違ng này. Header c栄a database gi英 con tr臼"8院n

e違 hai m違ng này và có m瓜t bi院n ch雨"8鵜nh (indicator) 8âu là m違ng “hi羽n hành” vào th運i 8k吋m hi羽n t衣i.

Khi m瓜t 8嘘i t逢嬰ng b鵜 thay 8鰻i l亥n 8亥u tiên, 8嘘i t逢嬰ng 8ó s胤"8逢嬰c copy ra

o瓜t b違n khác và m映c qu違n c栄a 8嘘i t逢嬰ng trong m違ng ch雨 m映c 8嘘i t逢嬰ng “hi羽n hành” s胤 chuy吋n sang tr臼 vào b違n copy c栄a 8嘘i t逢嬰ng này còn m映c qu違n 8嘘i t逢嬰ng trong m違ng ch雨 m映c 8嘘i t逢嬰ng “bóng” v磯n tr臼 vào 8嘘i t逢嬰ng

nguyên tr衣ng. PERST s胤"8ánh d医u trong trang Bitmap c栄a m違ng ch雨 m映c 8嘘i

v逢嬰ng ch泳a con tr臼"8院n 8嘘i t逢嬰ng b鵜 thay 8鰻i.

Lúc giao tác (transaction) 8逢嬰c hoàn t医t và l羽nh commit 8逢嬰c th詠c hi羽n,

8亥u tiên PERST s胤 ki吋m tra xem kích th逢噂c c栄a m違ng ch雨 m映c 8嘘i t逢嬰ng có

v<ng hay không. N院u có, PERST c ng s胤 t<ng kích th逢噂c cho m違ng ch雨 m映c

8嘘i t逢嬰ng “bóng”. K院"8院n PERST s胤 gi違i phóng các vùng nh噂"8逢嬰c dùng b荏i các 8嘘i t逢嬰ng g嘘c, chính là các 8嘘i t逢嬰ng g嘘c mà tr逢噂c 8ây 8ã dùng chúng

8吋 t衣o ra các b違n copy. Các vùng nh噂 này không th吋"8逢嬰c gi違i phóng tr逢噂c khi giao tác commit vì nh逢 v壱y có th吋 PERST s胤 c医p phát cho các 8嘘i t逢嬰ng

o噂i 8úng các vùng nh噂"8ó, trong khi chúng ta mu嘘n các 8嘘i t逢嬰ng g嘘c ch泳a trong vùng nh噂 này không 8鰻i. Ak隠u này 違nh h逢荏ng 8院n tính nh医t quán c栄a

e挨 s荏 d英 li羽u. Vì vi羽c gi違i phóng vùng nh噂 trong PERST c ng 8逢嬰c th詠c hi羽n thông qua Bitmap nên khi gi違i phóng c亥n ph違i làm tr嘘ng m瓜t s嘘 bit

trong trang Bitmap t逢挨ng 泳ng v噂i các vùng nh噂 c亥n xóa. Mà các trang

Bitmap này c ng 8逢嬰c copy tr逢噂c khi s詠 thay 8鰻i x違y ra. Vi羽c copy các

trang Bitmap này c ng 8òi h臼i vùng nh噂, và ta có th吋 c ng dùng các vùng

nh噂 c栄a các 8嘘i t逢嬰ng b鵜 gi違i phóng nh逢 trên. Rõ ràng 8k隠u này l衣i vi ph衣m tính nh医t quán c栄a c挨 s荏 d英 li羽u theo nh逢 lý do v瑛a nêu. T医t c違 nh英ng 8k隠u trên chính là lý do t衣i sao vi羽c gi違i phóng vùng nh噂 trong PERST 8逢嬰c chia thành hai b逢噂c. A亥u tiên, khi 8嘘i t逢嬰ng 8逢嬰c copy, t医t c違 các trang Bitmap

v逢挨ng 泳ng v噂i vùng nh噂 c栄a 8嘘i t逢嬰ng c ng 8逢嬰c copy theo (n院u tr逢噂c 8ó

ch逢a 8逢嬰c copy). Khi giao tác commit, PERST ch雨 vi羽c làm tr嘘ng các bit

trong các trang Bitmap t逢挨ng 泳ng và t衣i th運i 8k吋m này, không có m瓜t yêu

Sau khi gi違i phóng các vùng nh噂 thu瓜c v隠 các 8嘘i t逢嬰ng g嘘c, PERST s胤 8欝ng lo衣t ghi các trang b鵜 thay 8鰻i lên 8 a 8吋"8欝ng b瓜 thông tin trên b瓜 nh噂

chính và trên 8 a. Sau 8ó PERST s胤 chuy吋n 8鰻i giá tr鵜 bi院n ch雨" 8鵜nh (indicator) ch雨 ra m違ng ch雨 m映c 8嘘i t逢嬰ng hi羽n t衣i trong database thành giá tr鵜 ch雨"8院n m違ng “bóng” 8吋 chuy吋n 8鰻i vai trò gi英a hai m違ng. Bây gi運 m違ng ch雨 m映c 8嘘i t逢嬰ng hi羽n t衣i chuy吋n thành “bóng” và m違ng ch雨 m映c 8嘘i t逢嬰ng “bóng” s胤 tr荏 thành m違ng hi羽n t衣i. Ti院p theo m瓜t l亥n n英a PERST s胤 ghi trang ch泳a header b鵜 thay 8鰻i c栄a database lên 8 a, chuy吋n database sang tr衣ng thái nh医t quán m噂i. Cu嘘i cùng PERST s胤 copy t医t c違 các m映c qu違n 8嘘i t逢嬰ng b鵜

thay 8鰻i t瑛 m違ng ch雨 m映c 8嘘i t逢嬰ng “bóng” (tr逢噂c 8ây là hi羽n t衣i) sang m違ng ch雨 m映c 8嘘i t逢嬰ng hi羽n t衣i (tr逢噂c kia là m違ng “bóng”). Vào th運i 8k吋m này,

p瓜i dung c栄a c違 hai m違ng ch雨 m映c 8嘘i t逢嬰ng 8ã 8欝ng nh医t và PERST có th吋 d逸t 8亥u m瓜t giao tác m噂i.

Bitmap c栄a các 8嘘i t逢嬰ng b鵜 thay 8鰻i có tác d映ng gi違m th運i gian commit giao tác. Không ph違i t医t c違 m違ng ch雨 m映c 8逢嬰c copy mà ch雨 có các trang b鵜

thay 8鰻i m噂i 8逢嬰c copy, Sau khi giao tác commit, Bitmap 8逢嬰c làm tr嘘ng

nh逢"8ã nói 荏 trên.

Khi giao tác 8逢嬰c b臼, không cho th詠c hi羽n n英a b茨ng l羽nhStorage.rollback

o瓜t cách t逢運ng minh, m違ng ch雨 m映c 8嘘i t逢嬰ng “bóng” s胤"8逢嬰c copy ng逢嬰c

n衣i vào m違ng ch雨 m映c 8嘘i t逢嬰ng hi羽n t衣i, có ngh a là các thay 8鰻i n院u có tr逢噂c 8ó 8隠u không có hi羽u l詠c. Sau khi copy, hai m違ng ch雨 m映c l衣i 8欝ng nh医t và c挨 s荏 d英 li羽u l衣i tr荏 v隠 tr衣ng thái nh医t quán tr逢噂c khi th詠c hi羽n giao tác.

U詠 c医p phát vùng nh噂 cho các m映c qu違n 8嘘i t逢嬰ng 8逢嬰c th詠c hi羽n b茨ng freehandle list. Header c栄a list c ng 8逢嬰c copy và c違 hai b違n c栄a header này

cùng 8逢嬰c l逢u trên header c栄a database. S詠 chuy吋n qua l衣i gi英a hai b違n này

8逢嬰c th詠c hi羽n t逢挨ng t詠 nh逢 vi羽c chuy吋n qua l衣i gi英a hai m違ng ch雨 m映c 8嘘i

v逢嬰ng. Khi không còn ch厩 tr嘘ng trong m違ng ch雨 m映c 8嘘i t逢嬰ng, m違ng s胤 8逢嬰c c医p phát thêm. M違ng ch雨 m映c 8嘘i t逢嬰ng là th泳 duy nh医t trong c挨 s荏 d英

li羽u không 8逢嬰c copy trong quá trình thay 8鰻i. Thay vì th院, PERST luôn luôn

u穎 d映ng hai b違n c栄a m違ng này (m瓜t b違n hi羽n t衣i và m瓜t b違n “bóng”).

Có m瓜t vài giá tr鵜 OID 8逢嬰c dành riêng cho các 8嘘i t逢嬰ng 8員c bi羽t trong PERST. Giá tr鵜 OID 0 dùng cho các 8嘘i t逢嬰ng không h嬰p l羽 ví d映 nh逢 các

8嘘i t逢嬰ng 8ã b鵜 xóa. Các giá tr鵜 OID b逸t 8亥u t瑛 1 8逢嬰c dùng cho các trang Bitmap. S嘘 trang Bitmap l衣i tùy thu瓜c vào l逢嬰ng b瓜 nh噂"違o t嘘i 8a c栄a c挨 s荏 f英 li羽u. Ví d映 v噂i 1tetrabyte b瓜 nh噂"違o thì kích th逢噂c trang 8Kb, kích th逢噂c

8挨n v鵜 vùng nh噂 c医p phát (allocation quantum) 64 byte và 32K trang Bitmap

là các s嘘 li羽u t逢挨ng 泳ng. Có ngh a là 32K m映c qu違n 8嘘i t逢嬰ng 8逢嬰c dành riêng cho các trang Bitmap trong m違ng ch雨 m映c 8嘘i t逢嬰ng. Các trang Bitmap

8逢嬰c c医p phát khi c亥n thi院t khi mà kích th逢噂c database t<ng lên. Theo các s嘘

li羽u trên thì rõ ràng 8嘘i t逢嬰ng c栄a ng逢運i dùng 8亥u tiên s胤 mang giá tr鵜 OID

d茨ng 0x8002 (t泳c là 32K + 2).

Quá trình ph映c h欝i c挨 s荏 d英 li羽u trong PERST c ng 8挨n gi違n. Khi ta m荏 e挨 s荏 d英 li羽u, PERST s胤 ki吋m tra xem c挨 s荏 d英 li羽u tr逢噂c 8ó có 8逢嬰c 8óng

8úng cách không. N院u không (c運 dirty 8逢嬰c b壱t lên trong header c栄a

database), PERST s胤 th詠c hi羽n vi羽c ph映c h欝i (t逢挨ng t詠 nh逢 c挨 ch院 rollbachk

8ã 8隠 c壱p phía trên). PERST s胤 làm nh逢 sau:

Bi院n ch雨"8鵜nh ch雨 ra m違ng ch雨 m映c 8嘘i t逢嬰ng hi羽n t衣i s胤"8逢嬰c PERST dùng

8吋 quy院t 8鵜nh xem m違ng nào là m違ng t逢挨ng 泳ng v噂i tr衣ng thái nh医t quán. Khi 8ó, PERST s胤 copy các m映c qu違n 8嘘i t逢嬰ng trong m違ng này sang m違ng

còn l衣i, các thay 8鰻i th詠c hi羽n tr逢噂c 8ó n院u có 8隠u không cón hi羽u l詠c, PERST l衣i tr荏 v隠 v噂 tr衣ng thái nh医t quán.

Th壱t s詠 quá trình recovery ch雨 làm chuy羽n copy trên (ch雨 nh英ng m映c qu違n có giá tr鵜 khác nhau trên hai m違ng ch雨 m映c 8嘘i t逢嬰ng m噂i 8逢嬰c copy 8吋 gi違m

u嘘 trang c亥n ghi lên 8 a) và kích th逢噂c c栄a m違ng ch雨 m映c 8嘘i t逢嬰ng c ng nh臼

nên vi羽c ph映c h欝i di宇n ra r医t nhanh. Ak隠u này giúp gi違m th運i gian “out-of- service” c栄a 泳ng d映ng.

2.5 Nh英ng tr逢運ng h嬰p nên dùng PERST:

PERST là c挨 s荏 d英 li羽u dành cho l壱p trình t逢挨ng 8嘘i 8挨n gi違n và nhanh.

P院u 泳ng d映ng c栄a chúng ta c亥n có c挨 s荏 d英 li羽u 8挨n, không th詠c hi羽n nh英ng thao tác truy xu医t d英 li羽u quá “l逸t léo” và cái chúng ta c亥n là kh違 n<ng l逢u tr英, truy xu医t, 8鵜nh v鵜 các 8嘘i t逢嬰ng trong c挨 s荏 d英 li羽u thông qua tham chi院u

hay qua khóa thì PERST r医t thích h嬰p. Trong các tr逢運ng h嬰p này PERST s胤

có hi羽u n<ng làm vi羽c t嘘t h挨n so v噂i các c挨 s荏 d英 li羽u quan h羽 hay các c挨 s荏 f英 li羽u h逢噂ng 8嘘i t逢嬰ng ph泳c t衣p h挨n khác.

Ta s胤"8k吋m qua l衣i các tính n<ng n鰻i b壱t c栄a PERST:

1.K院t h嬰p ch員t ch胤, t詠 nhiên v噂i m瓜t s嘘 ngôn ng英 l壱p trình thông d映ng nh医t 8鵜nh (Hi羽n t衣i ch雨 m噂i h厩 tr嬰 Java và C#).

2.Mô hình d英 li羽u trong 泳ng d映ng và database g亥n nh逢 t逢挨ng t詠 nhau. 3.D宇 dàng s穎 d映ng.

4.Yêu c亥u không cao (PERST package ch雨 có dung l逢嬰ng 51Kb và PERST

có th吋"8逢嬰c c医u hình l衣i sao cho có th吋 dùng ít b瓜 nh噂 chính và ph映 khi làm vi羽c).

5.Hi羽u n<ng cao (không có các chi phí cho vi羽c truy隠n thông, khóa, phân tích cú pháp các câu SQL và th詠c hi羽n các câu truy v医n).

6.Kh違 n<ng ch鵜u l厩i t嘘t (c挨 ch院 th詠c hi羽n giao tác). 7.Kh違 n<ng ph映c h欝i nhanh chóng khi g員p s詠 c嘘.

8.Không c亥n ph違i qu違n lý database nhi隠u vì database ch雨 bao g欝m m瓜t file duy nh医t, vi羽c các file log c栄a database quá l噂n s胤 không còn n英a, hi羽u

p<ng làm vi羽c s胤 t<ng cao.

F nhiên, PERST c ng có các khuy院t 8k吋m t逢挨ng 泳ng: 1. Không h厩 tr嬰 ngôn ng英 truy v医n.

2. Không thích h嬰p cho vi羽c h厩 tr嬰"8a ng逢運i dùng truy c壱p database (N院u mu嘘n chúng ta ph違i t詠 thi院t k院 m瓜t server riêng, server này s胤 nh壱n các yêu c亥u t瑛 client r欝i tu亥n t詠 truy xu医t database r欝i m噂i g穎i k院t qu違 v隠 cho client).

3. Không h厩 tr嬰 vi羽c phân tán d英 li羽u.

4. Không tuân theo m瓜t chu育n nào c違 (Ví d映 không tuân theo chu育n

ODMG).

2.6 Các thông s嘘 c栄a PERST:

Ph亥n này chúng ta s胤 xem xét sâu h挨n v隠 các thông s嘘 c栄a database và các cách s穎 d映ng chúng 8吋 t<ng hi羽u n<ng.

V嘘c 8瓜 truy xu医t 8 a là r医t ch壱m so v噂i t嘘c 8瓜 truy xu医t b瓜 nh噂 chính. Vì

x壱y l逢u gi英 các d英 li羽u 8逢嬰c truy xu医t th逢運ng xuyên (data caching) là chìa khóa chính 8吋 t<ng hi羽u n<ng làm vi羽c c栄a c挨 s荏 d英 li羽u. PERST dùng “ pool of pages” 8吋 t嘘i 逢u hóa vi羽c truy c壱p 8 a. Kích th逢噂c c栄a page pool có th吋

8逢嬰c xác 8鵜nh trong ph逢挨ng th泳c Storage.Open khi m荏 database (giá tr鵜 m員c

8鵜nh c栄a thông s嘘 này là 4Mb). Thông th逢運ng t<ng kích th逢噂c page pool s胤 v<ng hi羽u n<ng làm vi羽c c栄a ch逢挨ng trình. Nh逢ng chúng ta ph違i l逢u ý nh英ng

8k吋m sau tr逢噂c khi quy院t 8鵜nh có t<ng kích th逢噂c page pool hay không.

1. Có th吋"泳ng d映ng ch雨"8逢嬰c c医p m瓜t l逢嬰ng nh医t 8鵜nh memory nào 8ó khi làm vi羽c thôi.

2. N院u chúng ta t衣o ra page pool có kích th逢噂c quá l噂n, không 8吋 l衣i 8栄

ch厩 cho h羽"8k隠u hành và các 泳ng d映ng khác làm vi羽c thì toàn b瓜 h羽 th嘘ng

u胤 b鵜"違nh h逢荏ng chung, s胤 gi違m hi羽u n<ng do h羽 th嘘ng ph違i swap b瓜 nh噂

liên t映c.

3. B違n thân h羽" 8k隠u hành c ng có c挨 ch院 cache d英 li羽u c栄a riêng mình

d茨ng file buffer. V壱y d英 li羽u th壱t s詠"8逢嬰c cache hai l亥n. Tuy nhiên vi羽c truy xu医t d英 li羽u t瑛 page pool s胤 nhanh h挨n do không ph違i có các l羽nh g丑i hàm h羽 th嘘ng c ng nh逢 chuy吋n ng英 c違nh (switch context) khi g丑i hàm. 4. Vi羽c t衣o page pool có kích th逢噂c quá nh臼 ho員c th壱m chí b茨ng 0 (giao vi羽c cache data toàn b瓜 cho h羽"8k隠u hành) c ng không th吋 vì s胤 gây ra l厩i. Khi d英 li羽u 8逢嬰c truy c壱p t瑛 b瓜 nh噂 ph映, nó s胤"8逢嬰c 8逢a lên ch泳a trong page pool. Có ngh a là page pool ph違i 8逢嬰c thi院t l壱p cho 8栄 l噂n 8吋 có th吋

ch泳a 8逢嬰c các trang này. Vì v壱y, không nên t衣o page pool có kích th逢噂c bé h挨n 64kb.

P院u chúng ta ngh r茨ng m丑i d英 li羽u nên 8吋 h院t trong b瓜 nh噂 chính, chúng

ta có th吋 dùng h茨ng s嘘 Storage.INFINITE_PAGE_POOL trong ph逢挨ng th泳c

Storage.Open c栄a database. Trong tr逢運ng h嬰p này, page pool s胤 t詠" 8瓜ng

Có ngh a là l亥n l逢嬰t m丑i trang s胤" 8逢嬰c cache và hi羽n di羽n trong b瓜 nh噂

chính, chúng ch雨"8逢嬰c 8丑c t瑛 b瓜 nh噂 ph映 l亥n 8亥u tiên thôi. Trong tr逢運ng h嬰p

này “strong object cache” s胤" 8逢嬰c dùng thay vì “weak object cache”. Có

ngh a là 8嘘i t逢嬰ng 8逢嬰c l医y ra t瑛 c挨 s荏 d英 li羽u s胤" 8逢嬰c l逢u trong b瓜 nh噂

chính và 8嘘i t逢嬰ng ch雨"8逢嬰c c亥n 8逢嬰c 8丑c m瓜t l亥n thôi. Chúng ta c ng c亥n

n逢u ý r茨ng kích th逢噂c database trong b瓜 nh噂 chính s胤 l噂n h挨n trên b瓜 nh噂

ph映 vì các 8嘘i t逢嬰ng s胤 t欝n t衣i trong b瓜 nh噂 chính d逢噂i c違 hai d衣ng: D衣ng

“g嘘c”(packed: trong trang ch泳a 8嘘i t逢嬰ng) và d衣ng “8ã có hình dáng”

(unpacked: tham chi院u t瑛 b瓜 cach 8嘘i t逢嬰ng).

Trong m瓜t vài 泳ng d映ng (nh逢 các 泳ng d映ng trên các thi院t b鵜 di 8瓜ng), kh違 p<ng l逢u tr英 là không c亥n thi院t nh逢ng các l噂p bao ch泳a (container class) c栄a

PERST nh逢 Link, Index, FieldIndex, SpatialIndex… v磯n có th吋"8逢嬰c dùng.

Trong tr逢運ng h嬰p này ta s胤 dùng cài 8員t NullFile c栄a interface IFile cùng v噂i

thông s嘘 Storage.INFINITE_PAGE_POOL 8吋 t衣o ra “database” trong b瓜

nh噂 chính. Data trong tr逢運ng h嬰p này s胤 không ph違i ghi vào b瓜 nh噂 ph映. Có m瓜t vài h茨ng s嘘" 8逢嬰c 8鵜nh ngh a s印n trong l噂p StorageImpl có 違nh

j逢荏ng 8院n kích th逢噂c kh荏i 8亥u và kích th逢噂c t嘘i 8a c栄a database. N院u ta mu嘘n thay 8鰻i các thông s嘘 này, ta s胤 ph違i biên d鵜ch l衣i PERST.

Thông s嘘 Giá tr鵜 o員c 8鵜nh Mô t違 dbDefaultInitTi ndexSize 1024 Kích th逢噂c kh荏i 8亥u c栄a m違ng ch雨 m映c 8嘘i t逢嬰ng.

O違ng này s胤"8逢嬰c t<ng kích th逢噂c khi c亥n thi院t. Vi羽c c医p phát l衣i vùng nh噂 cho m違ng này có chi

phí cao nên 8吋 h衣n ch院 tác v映 này, kích th逢噂c c栄a o違ng ch雨 m映c 8嘘i t逢嬰ng luôn 8逢嬰c c医p phát d詠 tr英 g医p 8ôi. V壱y vi羽c c医p phát vùng nh噂 cho o違ng ch雨 m映c 8嘘i t逢嬰ng l噂n h挨n s胤 giúp t<ng hi羽u p<ng ch逢挨ng trình m瓜t ít nh逢ng bù l衣i s胤 làm t<ng kích th逢噂c kh荏i 8亥u c栄a database. V噂i giá tr鵜 m員c

8鵜nh c栄a thông s嘘 này, kích th逢噂c ban 8亥u c栄a database m噂i t衣o là kho違ng 50Kb

dbDefaultExten sionQuantum

4Mb Aây chính là kích th逢噂c c医p phát vùng nh噂 thêm

Một phần của tài liệu QUẢN LÍ HỆ THỐNG THÔNG TIN ĐỊA LÍ (Trang 32)

Tải bản đầy đủ (PDF)

(138 trang)