Thông tin tài liệu:
Công ty cổ phần tài ngân - BFC Giáo trình kiến trúc và quản trị Oracle 8i
13 Quản lý Indexes
13.1 Phân loại Index
• Index
Index là cấu trúc cho phép truy xuất trực tiếp tới các dòng dữ liệu trong bảng. Index có thể đ-ợc phân loại tuỳ theo thiết kế logic hay cài đặt vật lý. • Single Column và Concatenated Column: • Single Column index: chỉ có một cột trong index key Concatenated Column index: Index đ-ợc tạo trên nhiều cột trong một table.
Unique va NonUnique index: Unique index: giá trị index xác định duy nhất một dòng dữ...
Nội dung trích xuất từ tài liệu:
Đào tạo Oracle cơ bản - Giáo trình kiến trúc và quản trị Oracle 8i - Phần 5
C«ng ty cæ phÇn tμi ng©n - BFC
Gi¸o tr×nh kiÕn tróc vμ qu¶n trÞ Oracle 8i
13 Qu¶n lý Indexes
13.1 Ph©n lo¹i Index
• Index
Index lµ cÊu tróc cho phÐp truy xuÊt trùc tiÕp tíi c¸c dßng d÷ liÖu trong b¶ng. Index cã thÓ ®−îc ph©n
lo¹i tuú theo thiÕt kÕ logic hay cµi ®Æt vËt lý.
• Single Column vµ Concatenated Column:
Single Column index: chØ cã mét cét trong index key
-
Concatenated Column index: Index ®−îc t¹o trªn nhiÒu cét trong mét table.
-
• Unique va NonUnique index:
Unique index: gi¸ trÞ index x¸c ®Þnh duy nhÊt mét dßng d÷ liÖu trong b¶ng
-
NonUnique index: cã nhiÒu dßng d÷ liÖu øng víi cïng mét gi¸ trÞ index
-
• Function-base index:
Gi¸ trÞ index ®−îc x¸c ®Þnh th«ng qua gi¸ trÞ cña mét hµm
-
• Partition vµ NonPartition index:
Partitioned index: sö dông cho c¸c b¶ng lín, l−u gi÷ gi¸ trÞ index t−¬ng øng trªn nhiÒu
-
segments. Partitioned index ®−îc sö dông cho c¸c Partitioned tables.
NonPartition index: index l−u gi÷ c¸c gi¸ trÞ chØ trªn cïng mét segment.
-
• B-tree Index
H×nh vÏ 7 CÊu tróc B-Tree
• CÊu tróc cña B-Tree Index: B-Tree Index cã cÊu tróc d¹ng c©y, trªn cïng lµ mét nót gèc, chøa
c¸c con trá trá tíi c¸c møc tiÕp theo (nh¸nh) trong index. Møc d−íi cïng (l¸) lµ c¸c blocks. Møc
nh¸nh nµy chøa c¸c index trá tíi dßng d÷ liÖu cô thÓ trong b¶ng.
• Khu«n d¹ng cña Index Leaf Entries: ®−îc chia lµm c¸c phÇn chÝnh sau:
Entry header: chøa sè l−îng c¸c cét vµ lock information
-
§μo t¹o kiÕn tróc vμ qu¶n trÞ ORACLE 8i http://www.ebook.edu.vn Trang 51
C«ng ty cæ phÇn tμi ng©n - BFC
Gi¸o tr×nh kiÕn tróc vμ qu¶n trÞ Oracle 8i
CÆp c¸c th«ng sè: ®é réng vµ gi¸ trÞ kho¸ index
-
ROWID cña dßng d÷ liÖu chøa gi¸ trÞ kho¸
-
• C¸c tÝnh chÊt cña Index Leaf Entry:
C¸c gi¸ trÞ kho¸ sÏ ®−îc lÆp l¹i nÕu cã nhiÒu dßng d÷ liÖu cã cïng gi¸ trÞ kho¸
-
Kh«ng cã index entry øng víi c¸c dßng d÷ liÖu mµ tÊt c¶ c¸c cét kho¸ ®Òu cã gi¸ trÞ NULL
-
• ¶nh h−ëng cña c¸c DML Operations ®èi víi index:
Thao t¸c chÌn d÷ liÖu sÏ t−¬ng øng víi viÖc chÌn thªm mét nót d÷ liÖu vµo c©y.
-
Xo¸ dßng d÷ liÖu sÏ t−¬ng øng víi viÖc xo¸ vÒ mÆt logic mét index entry
-
CËp nhËt dßng d÷ liÖu sÏ t−¬ng øng víi viÖc xo¸ index entry øng víi gi¸ trÞ cò vµ thªm míi mét
-
index entry øng víi gi¸ trÞ míi.
• Bitmap Index
Lµ mét c¸ch tæ chøc kh¸c cña Index. Mét bitmap index còng ®−îc tæ chøc theo kiÓu B-tree, Nh−ng mçi
nót l¸ l¹i chøa mét bitmap (b¶n ®å ¸nh x¹ bit) ®èi víi mçi gi¸ trÞ kho¸ thay v× lµ danh s¸ch c¸c gi¸ trÞ
ROWID. Mçi bit trong bitmap t−¬ng øng víi mét ROWID, vµ nÕu bit ®−îc bËt th× ®iÒu ®ã cã nghÜa r»ng
dßng d÷ liÖu t−¬ng øng víi ROWID chøa gi¸ trÞ kho¸.
CÊu tróc:
• Entry header: : chøa sè l−îng c¸c cét vµ c¸c lock information
• Gi¸ trÞ kho¸: bao gåm mét cÆp chiÒu dµi vµ gi¸ trÞ øng víi mçi cét
H×nh vÏ 8 CÊu tróc Bitmap Index
• §¸nh gi¸ viÖc sö dông B-Tree Index vµ Bitmap Index
B-tree Bitmap
Suitable for high- Suitable for low-
cardinality columns cardinality columns
Updates on keys Updates on keys
relatively relatively expensive
§μo t¹o kiÕn tróc vμ qu¶n trÞ ORACLE 8i http://www.ebook.edu.vn Trang 52
C«ng ty cæ phÇn tμi ng©n - BFC
Gi¸o tr×nh kiÕn tróc vμ qu¶n trÞ Oracle 8i
inexpensive
Inefficient for Efficient for queries
queries using OR using OR predicates
predicates
Useful for OLTP Useful for data
warehousing
13.2 Qu¶n lý Index
• T¹o index
• Sö dông c©u lÖnh:
CREATE [ UNIQUE ]INDEX [schema.] index
ON [schema.] table
(column [ ASC | DESC ] [ , column [ASC | DESC ] ] ...)
[ TABLESPACE tablespace ]
[ PCTFREE integer ]
[ INITRANS integer ]
[ MAXTRANS integer ]
[ storage-clause ]
[ LOGGING| NOLOGGING ]
[ NOSORT ]
VÝ dô:
CREATE INDEX summit.employee_last_name_idx
ON summit.employee(last_name)
PCTFREE 30
STORAGE(INITIAL 200K NEXT 200K
PCTINCREASE 0 MAXEXTENTS 50)
TABLESPACE indx;
• Sö dông Oracle Enterprise Manager
Chän Object/Create
-
Chän ®èi t−îng cÇn t¹o lµ index
-
§Æt c¸c thuéc tÝnh thÝch hîp trong page General, Storage, Options
-
BÊm Create ®Ó t¹o index
-
• T¹o Reverse Key Indexes
Có ph¸p:
CREATE [ UNIQUE ]INDEX [schema.] index
ON [schema.] table
(column [ ASC | DESC ] [ , column [ASC | DESC ] ] ...)
[ TABLESPACE tablespace ]
[ PCTFREE integer ]
[ INITRANS integer ]
[ MAXTRANS integer ]
§μo t¹o kiÕn tróc vμ qu¶n trÞ ORACLE 8i http://www.ebook.edu.vn Trang 53
C«ng ty cæ phÇn tμi ng©n - BFC
Gi¸o tr×nh kiÕn tróc vμ qu¶n trÞ Oracle 8i
[ storage-clause ]
[ LOGGING| NOLOGGING ]
REVERSE
VÝ dô:
CREATE UNIQUE INDEX summit.orders_id_idx
ON summit.orders(id) REVERSE
PCTFREE 30
STORAGE(INITIAL 200K NEXT 200K
PCTINCREASE 0 MAXEXTENTS 50)
TABLESPACE indx;
• T¹o Bitmap Indexes
Sö dông tham sè CREATE_BITMAP_AREA_SIZE ®Ó chØ ra dung l−îng ...