Tải bản đầy đủ (.pdf) (12 trang)

Đào tạo Oracle cơ bản - Giáo trình kiến trúc và quản trị Oracle 8i - Phần 4 pps

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (160.37 KB, 12 trang )

Công ty cổ phần ti ngân - BFC
Giáo trình kiến trúc v quản trị Oracle 8i

Đo tạo kiến trúc v quản trị ORACLE 8i Trang 39
ALTER DATABASE
RENAME FILE /DISK1/system_01.dbf
TO /DISK2/system_01.dbf;
Cách làm:
- Tắt database
- Di chuyển file dữ liệu tơng ứng bằng hệ điều hành
- Mount lại với hệ điều hành
- Thực hiện câu lệnh ở trên
- Mở lại database
Các thông tin từ điển dữ liệu
Để có thể có các thông tin cần thiết ta có thể tham khảo một số view sau:
Thông tin về tablespace: DBA_TABLESPACES, V$TABLESPACE
Thông tin về data files: DBA_DATA_FILES, V$DATAFILE
Thông tin về các file trung gian: DATA_TEMP_FILES, V$TEMPFILE

10 Cấu trúc lu trữ
10.1 Các cấu trúc lu trữ chính của Oracle
Cấu trúc lu trữ
Chơng trớc đã trình bày cấu trúc lu trữ trong Oracle. Cấu trúc lu trữ bao gồm hai mức physical và
logic. ở mức logic, database bao gồm nhiều tablespaces. Mỗi tablespace lại tiếp tục đợc chia thành
nhiều segments. Phần này sẽ giới thiệu chủ yếu về các segments.
Thông tin về cấu trúc lu trữ
Thông tin về cấu trúc lu trữ đợc lu giữ trong từ điển dữ liệu. Ta có thể dùng câu lệnh SQL để lấy
đợc các thông tin này. Các thông tin này có thể lấy đợc từ các view: DBA_TABLESPACES,
DBA_SEGMENTS, DBA_DATà_FILES, DBA_EXTENTS, DBA_FREE_SPACE.
Ví dụ:
Xem số lợng extents và blocks cấp phát cho một segment


SQL> SELECT segment_name,tablespace_name,extents,blocks
2 FROM dba_segments
3 WHERE owner=SCOTT;
SEGMENT_NAME TABLESPACE_NAME EXTENTS BLOCKS

EMP DATA01 5 55
DEPT DATA01 1 5
BONUS DATA01 1 5
SALGRADE DATA01 1 5
5 rows selected.

Công ty cổ phần ti ngân - BFC
Giáo trình kiến trúc v quản trị Oracle 8i

Đo tạo kiến trúc v quản trị ORACLE 8i Trang 40
Xem thông tin về các extents trong một segment
SQL> SELECT extent_id,file_id,block_id,blocks
2 FROM dba_extents
3 WHERE owner=SCOTT
4 AND segment_name=EMP;
EXTENT_ID FILE_ID BLOCK_ID BLOCKS

0 4 2 5
1 4 27 5
2 4 32 10
3 4 42 15
4 4 57 20
5 rows selected.

SQL> SELECT tablespace_name, count(*),

2 max(blocks), sum(blocks)
3 FROM dba_free_space
4 GROUP BY tablespace_name;
TABLESPACE_NAME COUNT(*) MAX(BLOCKS SUM(BLOCKS

DATA01 2 1284 1533
RBS 3 2329 2419
SORT 1 1023 1023
SYSTEM 1 5626 5626
TEMP 1 2431 2431
5 rows selected.

10.2 Segments - phân loại segments
Segments (phân đoạn)
Là vùng không gian lu trữ các đối tợng trong CSDL. Segments sử dụng vùng không gian trong các
data files để lu giữ đối tợng. Segments có thể phân ra làm nhiều kiểu khác nhau.
Table segment
Table là nơi lu giữ dữ liệu của database. Một table có thể đợc chia thành các table segment. Trong
mỗi table segment, dữ liệu đợc tập hợp lại nhng vẫn tách biệt nhau. Các dữ liệu trong một table
segment đợc lu trên cùng một tablespace.
Index segment
Index đợc lu giữ trong index segment. Mỗi một index ứng với một index segment. Mục đích sử dụng
segment này là để tìm (lookup) vị trí dòng dữ liệu trong bảng dựa trên một trờng khoá.
Rollback segment
Rollback segment đợc sử dụng bởi các giao dịch có làm thay đổi database. Trớc khi thay đổi dữ liệu
hay index blocks, các giá trị cũ sẽ đợc lu vào các rollback segment. Phục vụ cho việc undo dữ liệu.
Temporary segment
Công ty cổ phần ti ngân - BFC
Giáo trình kiến trúc v quản trị Oracle 8i


Đo tạo kiến trúc v quản trị ORACLE 8i Trang 41
Trong một vài thao tác (ví dụ: CREATE INDEX, SELECT DISTINCT, SELECT GROUP BY, ) Oracle
Server thực hiện việc sắp xếp dữ liệu. Việc sắp xếp cần có khoảng không gian dùng làm trung gian,
temporary segment đợc sử dụng làm vùng trung gian đó.
LOB segment
Trong một vài trờng hợp, một cột của Table có thể dùng để chứa các đối tợng lớn (large objects -
LOBs) ví dụ: đoạn văn bản text, hình ảnh, video, Oracle Server lu giữ các dữ liệu này trên một
segment riêng biệt gọi là LOB segment.
LOB index
Khi một LOB segment đợc tạo, theo ngầm định, Oracle Server cũng sẽ tạo tơng ứng một LOB
index. LOB index đợc sử dụng để có thể dễ dàng tìm đợc dữ liệu trên LOB segment.
Bootstrap segment
Bootstrap segment có chức năng nh một cache segment. Nó đợc tạo khi database đợc tạo lập,
giúp ích cho việc khởi tạo từ điển dữ liệu khi database đợc mở bởi instance.
10.3 Quản lý bộ nhớ đối với segment
Cấp phát và thu hồi vùng trống
Các vùng trống đợc cấp phát khi segment đợc tạo mới (created), mở rộng (extended), thay đổi
(altered). Ngợc lại, segment sẽ bị thu hồi vùng trống khi nó bị huỷ (drop), thay đổi (altered), cắt bớt
(truncated), hay tự động thay đổi kích thớc.
ở mức vật lý, các segment là các phần thuộc data file. Trong một data file, block đâu tiên là header
block. Dữ liệu có thể ghi vào data file bắt đầu từ block thứ 2 trở đi tạo nên các vùng sử dụng (used
extents) và vùng rỗi (free extents).
Blocks
Một block gồm có ba phần chính:
Vùng header: chứa các thông tin data block address, table directory, row directory, và các
transaction slots (vùng lu giữ thông tin về các transactions làm thay đổi dữ liệu trong block) khi
các transaction thay đổi các dòng dữ liệu trong block. Vùng header đợc mở rộng từ trên xuống.
Vùng dữ liệu: chứa các dòng dữ liệu. Dữ liệu đợc nạp vào block theo chiều từ dới lên.
Vùng trống: nằm ở giữa của block.













Hình vẽ 5 Cấu trúc một block
Công ty cổ phần ti ngân - BFC
Giáo trình kiến trúc v quản trị Oracle 8i

Đo tạo kiến trúc v quản trị ORACLE 8i Trang 42
Đối với một block, ta cần quan tâm tới một vài thông số chính sau:
INITRANS: số lợng transaction slots trong block lúc khởi tạo. Mặc định là 1 đối với data segment,
là 2 đối với index segment.
MAXTRANS: số lợng transaction slots tối đa trong block. Mặc định là 255.
PCTFREE: phần trăm dung lợng dự trữ trong block để có thể đáp ứng đợc sự tăng trởng dữ
liệu trong block (thay đổi các dữ liệu dẫn đến thay đổi kích thớc của dữ liệu). Mặc định là 10%.
PCTUESD: phần trăm dung lợng tối thiểu trong block mà dới mức này thì có thể insert dòng dữ
liệu vào trong block đó. Mặc định là 40%.
Ví dụ: PCTFREE = 20% và PCTUESD = 40%, ta xem xét 4 trờng hợp sau.
Các dòng dữ liệu vẫn có thể insert vào trong block cho tới khi phần trăm dung lợng rỗi nhỏ hơn
hay bằng 20%
Vợt quá số lợng này, block đó sẽ không thể insert thêm đợc dữ liệu. Tuy nhiên vẫn có thể
updata dữ liệu và việc updata dữ liệu này vẫn có thể làm cho dung lợng sử dụng của block tăng
lên.

Sau khi PCTUSED của block lớn hơn 80%, dữ liệu trong block có thể đợc update và làm cho
PCTUSED < 80%. Tuy nhiên, lúc này vẫn không thể insert thêm dòng dữ liệu vào block đó.
Trong trờng hợp dữ liệu trong block tiếp tục đợc cập nhật và làm cho PCTUSED tiếp tục giảm
xuống dới 40%. Lúc này block lại có thể insert đợc dữ liệu vào.
Phân đoạn dữ liệu trong các segments
Khi segment đợc tạo, nó đợc cấp phát không gian trong tablespace. Khi segment giải phóng, nó sẽ
trả lại vùng trống cho tablespace. Cứ nh vậy, sau một thời gian sẽ xảy ra hiện tợng phân đoạn trong
các data file của tablespace.
Dới đây là phân loại mức độ phân đoạn dữ liệu trong database:
Tablespace Usage Fragmentation
SYSTEM Data dictionary Zero
TOOLS Applications Very low
DATA n Data segments Low
INDEX n Index segments Low
RBS n Rollback segments High
TEMP n Temporary segments Very high*

11 Quản lý Rollback Segments
11.1 Rollback segments
Rollback segment
Khi một tiến trình thay đổi dữ liệu trong database, nó sẽ lu trữ các dữ liệu và vị trí (location) của dữ
liệu trớc khi thay đổi nó. Rollback segment là nơi lu trữ các giá trị đó.
Rollback segment thờng đợc sử dụng cho các transaction. Các transaction sử dụng rollback
segment để lu giá trị ban đầu của các bản ghi trớc khi nó có những thay đổi. Tại mỗi thời điểm, một
Công ty cổ phần ti ngân - BFC
Giáo trình kiến trúc v quản trị Oracle 8i

Đo tạo kiến trúc v quản trị ORACLE 8i Trang 43
transaction chỉ sử dụng một rollback segment. Tuy nhiên, một rollback segment có thể phục vụ cho
nhiều transaction đồng thời.

Phần header của rollback segment lu giữ thông tin về các transaction hiện đang sử dụng rollback
segment đó.
Khi một transaction bắt đầu, Oracle server sẽ bố trí cho transaction đó một vùng không gian để lu giữ
giá trị cũ. Một con trỏ trỏ tới vùng trống đợc cấp phát cho transaction đó. Khi transaction đó kết thúc,
nó sẽ trả lại vùng không gian cho rollback segment.
Các extent đợc sử dụng theo kiểu tuần tự. Extent này đầy thì lại chuyển tới extent tiếp theo. Khi
extent cuối cùng đầy, nó lại quay về extent đầu (nếu extent đầu rỗng). Trong trờng hợp tất cả các
extent đều không rỗi (used), khi đó cần phải bổ sung thêm extent vào rollback segment.
Khi transaction bắt đầu, cần có một rollback segment phục vụ cho transaction đó. Transaction cũng có
thể yêu cầu sử dụng một rollback segment nhất định thông qua câu lệnh. Ví dụ:
SET TRANSACTION USE ROLLBACK SEGMENT rollback_segment;
Rollback segment có thể ở một trong hai trạng thái: Online hay Offline. Nó chỉ có thể sử dụng đợc khi
nó ở trạng thái Online.
Phân loại rollback segment
SYSTEM rollback segment: nằm trong SYSTEM tablespace. Nó đợc tạo ra ngay khi tạo
database. Segment này sử dụng cho việc thay đổi dữ liệu của các đối tợng trong SYSTEM
tablespace.
Non-SYSTEM rollback segment: sử dụng cho việc thay đổi các đối tợng không nằm trong
SYSTEM tablespace. Segment này lại có thể phân ra làm hai loại con:
- Private rollback segment: phục vụ cho từng instance cụ thể.
- Public rollback segment: phục vụ cho các Oracle Parallel Instance
Deferred rollback segment: đợc tạo khi tablespace chuyển sang chế độ offline. Sử dụng để có
thể rollback các transaction khi tablespace ở trạng thái offline.
11.2 Quản lý rollback segment
Tạo rollback segment
Sử dụng câu lệnh:
CREATE [PUBLIC] ROLLBACK SEGMENT rollback_segment
[TABLESPACE tablespace]
[STORAGE ([INITIAL integer[K|M]]
[NEXT integer[K|M]]

[MINEXTENTS integer]
[MAXEXTENTS {integer|UNLIMITED}]
[OPTIMAL {integer[K|M]|NULL}]
)
]
ví dụ:
CREATE ROLLBACK SEGMENT rbs01
TABLESPACE rbs
STORAGE (
Công ty cổ phần ti ngân - BFC
Giáo trình kiến trúc v quản trị Oracle 8i

Đo tạo kiến trúc v quản trị ORACLE 8i Trang 44
INITIAL 100K
NEXT 100K
MINEXTENTS 20
MAXEXTENTS 100
OPTIMAL 2000K );
Lu ý:
- MINEXTENTS: nhận giá trị thấp nhất là 2
- OPTIMAL: nhận giá trị lớn hơn hoặc bằng kích thớc khởi tạo của rollback segment.
Sử dụng Oracle Enterprise Manager :
- Chọn th mục rollback segment, bấm chuột phải rồi chọn Create
- Trong page General, nhập vào tên rollback segment, chọn tablespace, kiểu, trạng thái.
- Trong page Extents, nhập vào các thông tin lu trữ.
- Bấm Create để hoàn tất công việc.

Thay đổi kích thớc rollback segment
Sử dụng câu lênh:
ALTER ROLLBACK SEGMENT rollback_segment

[STORAGE ( [NEXT integer[K|M]]
[MINEXTENTS integer]
[MAXEXTENTS {integer|UNLIMITED}]
[OPTIMAL {integer[K|M]|NULL}]
)
]
ví dụ:
ALTER ROLLBACK SEGMENT rbs01
STORAGE( MAXEXTENTS 200 );

Sử dụng Oracle Enterprise Manager:
- Chọn rollback segment cần thay đổi
- Thay đổi các thông số tơng ứng trong page Storage
- Chọn Apply để hoàn tất công việc
Thu hồi khoảng trống cấp phát
Sử dụng câu lênh:
ALTER ROLLBACK SEGMENT rollback_segment
SHRINK [ TO integer [ K|M ]];
Ví dụ:
ALTER ROLLBACK SEGMENT rbs01
SHRINK TO 4M;
Sử dụng Oracle Enterprise Manager:
Công ty cổ phần ti ngân - BFC
Giáo trình kiến trúc v quản trị Oracle 8i

Đo tạo kiến trúc v quản trị ORACLE 8i Trang 45
- Chọn rollback segment cần thu nhỏ
- Bấm chuột phải rồi chọn Shring
- Nhập kích thớc mới rồi bấm OK


Thay đổi trạng thái của rollback segment
Sử dụng câu lênh:
ALTER ROLLBACK SEGMENT rollback_segment OFFLINE | ONLINE;
Ví dụ:
ALTER ROLLBACK SEGMENT rbs01 OFFLINE;

Sử dụng Oracle Enterprise Manager:
- Chọn rollback segment cần thu nhỏ
- Bấm chuột phải rồi chọn Take Offline hoặc Take Offline
- Yes để đồng ý.

Huỷ bỏ rollback segment
Sử dụng câu lênh:
DROP ROLLBACK SEGMENT rollback_segment;
Ví dụ:
DROP ROLLBACK SEGMENT rbs01;

Sử dụng Oracle Enterprise Manager:
- Chọn rollback segment cần thu nhỏ
- Bấm chuột phải rồi chọn Remove. (Chỉ remove đợc khi rollback segment ở trạng thái offfline)
- Yes để đồng ý.
11.3 Thông tin về rollback segment
Thông tin cụ thể của rollback segment có thể lấy đợc trong view: DBA_ROLLBACK_SEGS. Ngoài ra,
thông tin về rollback segment còn có thể lấy đợc từ view: V$ROLLSTAT, V$ROLLNAME
Ví dụ: lấy thông tin về tất cả các rollback segment sử dụng trong database
SQL> SELECT segment_name, tablespace_name, owner, status
2 FROM dba_rollback_segs;
SEGMENT_NAME TABLESPACE_NAME OWNER STATUS

SYSTEM SYSTEM SYS ONLINE

RBS1 RBS SYS ONLINE
RBS2 RBS SYS ONLINE
RBS3 RBS SYS OFFLINE
Công ty cổ phần ti ngân - BFC
Giáo trình kiến trúc v quản trị Oracle 8i

Đo tạo kiến trúc v quản trị ORACLE 8i Trang 46
4 rows selected.

12 Quản lý Tables
12.1 Table - Phân loại table
Table
Table là nơi lu giữ dữ liệu của database. Các dòng dữ liệu trong table đợc lu giữ theo một trật tự tuỳ
thuộc vào tính chất của table.
Patitioned Table
Để tăng cờng tính sẵn dùng (availability) và mở rộng (scalability) đối với các bảng hay đợc sử dụng
đồng thời (hight concurrent usage). Dữ liệu trong một bảng có thể đợc lu giữ thành nhiều vùng riêng
biệt gọi là partition. Các partition này có thể thuộc các tablespace khác nhau. Oracle Server hỗ trợ việc
quản lý các phân vùng của table bằng các giá trị khoá hay các hàm băm.
Index-Organized Table
Trong index-organized table, dữ liệu trong index đợc lu trữ theo các giá trị khoá. Do đó không cần
phải có lookup table để xác định dòng dữ liệu. Có thể truy xuất trực tiếp tới dữ liêu.
Clustered Table
Clustered table là một kiểu của table, cho phép lu giữ dữ liệu một cách tối u. Clustered table đợc
tạo bởi nhóm các table cùng có chung các data blocks. Các table này có thể có chung các cột dữ liệu.
Dòng dữ liệu trong cluster có thể đợc truy xuất theo index hay theo hàm băm.
Cấu trúc dòng dữ liệu trong table
Dòng dữ liệu đợc lu giữ trong các database blocks dới dạng các bản ghi có độ dài có thể thay đổi
(variable-length records). Các cột tơng ứng trên một dòng dữ liệu đợc lu trữ theo nh thứ tự lúc
định nghĩa bảng. Các cột nhận giá trị NULL sẽ không đợc lu trữ. Nh vậy, số cột dữ liệu giữa các

dòng khác nhau có thể là khác nhau.
Cấu trúc mỗi dòng dữ liệu trong table:
Phần đầu: Lu giữ số lợng cột dữ liệu trên dòng đó, các thông tin ràng buộc, và các trạng thái
lock của dòng đó.
Phần dữ liệu: Với mỗi cột, Oracle server lu giữ độ rộng của cột và giá trị của cột đó tiếp ngay sau.
Công ty cổ phần ti ngân - BFC
Giáo trình kiến trúc v quản trị Oracle 8i

Đo tạo kiến trúc v quản trị ORACLE 8i Trang 47














Hình vẽ 6 Cấu trúc dòng dữ liệu trong table
Dịch chuyển dòng dữ liệu (Row migration): Khi phần trăm không gian trống quá nhỏ, có thể sẽ không
đủ chỗ trống cho việc lu giữ dòng dữ liệu (trong trờng hợp nó đợc update). Khi đó Oracle Server sẽ
di chuyển toàn bộ dòng dữ liệu đó sang một block mới.
Gộp dòng dữ liệu(Row Chaining): Row chaining xảy ra khi dòng dữ liệu quá lớn để đặt vừa một block.
Khi đó, Oracle Server sẽ chia dòng dữ liệu đó thành nhiều khúc (chunks) gọi là các row pieces. Mỗi
một row piece sẽ đợc đặt trong block. Các row piece đợc gộp lại với nhau.

12.2 Quản lý table
Tạo table
Sử dụng câu lệnh:
CREATE TABLE [schema.] table
(column datatype [ , column datatype ] )
[TABLESPACE tablespace ]
[ PCTFREE integer ]
[ PCTUSED integer ]
[ INITRANS integer ]
[ MAXTRANS integer ]
[ STORAGE storage-clause ]
[LOGGING | NOLOGGING]
[CACHE | NOCACHE] ]

- TABLESPACE: tên của tablespace lu giữ table
- PCTFREE: phần trăm không gian trống thuộc block trên mỗi dòng dữ liệu
- PCTUSED: vùng trống nhỏ nhất đợc sử dụng trên một block
- INITRANS: số lợng transactions entries cho mỗi block
- MAXTRANS: số lợng tối đa các transactions entries cho mỗi block
- STORAGE: cách thức các vùng trống (extents) đợc cấp phát cho mỗi table.
- LOGGING: việc tạo table đợc lu vào trong redo log file
Công ty cổ phần ti ngân - BFC
Giáo trình kiến trúc v quản trị Oracle 8i

Đo tạo kiến trúc v quản trị ORACLE 8i Trang 48
- CACHE: dữ liệu trong table có thể đợc truy xuất qua cache
Ví dụ:
CREATE TABLE employee(
id NUMBER(7),
last_name VARCHAR2(25),

dept_id NUMBER(7))
PCTFREE 20 PCTUSED 50
STORAGE(INITIAL 200K NEXT 200K
PCTINCREASE 0 MAXEXTENTS 50)
TABLESPACE data;

Có thể tạo table bằng cách copy từ một bảng khác theo cú pháp:
CREATE TABLE [schema.]table
[ LOGGING | NOLOGGING ]

AS
subquery
Sử dụng Schema manager:
- Chọn mục Object/Create trong menu bar
- Chọn kiểu Object tơng ứng là table, sử dụng Table Wizard để tạo table.
Temporary table (bảng trung gian)
Temporary table lu giữ giá trị của dữ liệu tồn tại trong khoảng thời gian của transaction hay session.
Tạo temporary table: CREATE GLOBAL TEMPORARY TABLE
Đặt chế độ tồn tại cho dòng dữ liệu trong temprary table
- ON COMMIT DELETE ROWS: dòng dữ liệu chỉ tồn tại trong transsaction
- ON COMMIT PRESERVE ROWS: dòng dữ liệu tồn tại trong cả session.
Thay đổi các tham số lu trữ trong table
Sử dụng câu lệnh:
ALTER TABLE [schema.]table
{[ storage-clause ]
[ PCTFREE integer ]
[ PCTUSED integer ]
[ INITRANS integer ]
[ MAXTRANS integer]}
Ví dụ:

ALTER TABLE summit.employee
PCTFREE 30
PCTUSED 50
STORAGE(NEXT 500K
MINEXTENTS 2
MAXEXTENTS 100);
Công ty cổ phần ti ngân - BFC
Giáo trình kiến trúc v quản trị Oracle 8i

Đo tạo kiến trúc v quản trị ORACLE 8i Trang 49

Sử dụng Oracle Enterprise Manager:
- Chọn Table tơng ứng
- Thay đổi các giá trị tơng ứng trong page Storage
- Chọn Apply để hoàn tất công việc
Cấp phát các Extents (vùng trống) bằng tay
Ta có thể cấp phát các extents bằng tay để điều khiển việc phân bổ các extents của một table giữa
các file. Đồng thời tránh việc mở rộng tự động đối với các bảng.
Cú pháp:
ALTER TABLE [schema.]table
ALLOCATE EXTENT [ ([SIZE integer [K|M]]
[ DATAFILE filename ]) ]
Ví dụ:
ALTER TABLE summit.employee
ALLOCATE EXTENT(SIZE 500K
DATAFILE /DISK3/DATA01.DBF);

Việc thay đổi các tham số lu trữ trong table có thể cải thiện việc sử dụng không gian và giảm thiểu
việc dịch chuyển dữ liệu.
High-water mark

Mỗi table có một high-water mark (mức cao nhất) dùng để xác định block cuối cùng trong một table.
Khi dữ liệu đợc nạp vào bảng, high-water mark sẽ dịch chuyển tới block cuối cùng. Và nó sẽ không
đợc dịch chuyển lại khi dữ liệu bị xoá đi. Việc scan dữ liệu của Oracle Server sẽ diễn ra cho tới khi nó
gặp đợc high-water mark của bảng đó. Ta có thể xác định đợc high-water mark dựa vào hàm xây
dựng sẵn bởi Oracle: DBMS_SPACE.UNUSED_SPACE.
Thu hồi vùng trống đã cấp phát
Cú pháp:
ALTER TABLE [schema.]table
DEALLOCATE UNUSED [KEEP integer [ K|M ] ]
- KEEP: Oracle Server giải phóng vùng nhớ không sử dụng nhng sẽ giữ lại một số byte quá
high-water mark
Ví dụ:
ALTER TABLE summit.employee
DEALLOCATE UNUSED;

Truncate table
Truncate table sẽ xoá tất cả các dòng dữ liệu trong bảng và giải phóng vùng không gian sử dụng.
High-water mark sẽ đợc đa về block đầu tiên.
Cú pháp:
TRUNCATE TABLE [schema.] table
Công ty cổ phần ti ngân - BFC
Giáo trình kiến trúc v quản trị Oracle 8i

Đo tạo kiến trúc v quản trị ORACLE 8i Trang 50
[{DROP | REUSE} STORAGE]
Ví dụ:
TRUNCATE TABLE summit.employee;
Drop table
Cú pháp:
DROP TABLE [schema.] table

[CASCADE CONSTRAINTS]
- CASCADE CONSTRAINTS: Xoá các ngoại khoá nằm trong các bảng khác trớc khi xoá
bảng.
Ví dụ:
DROP TABLE summit.department
CASCADE CONSTRAINTS;
Thay đổi tính chất của table
Ta có thể thay đổi một số tính chất của bảng: drop column, constraints, default value, thông qua câu
lệnh ALTER TABLE.
12.3 Thông tin về table
Thông tin về table đợc lu giữ trong các view từ điển đữ liệu: DBA_OBJECTS, DAB_SEGMENTS,
DBA_TABLES.
Ví dụ: lấy thông tin về các bảng sở hữu bởi SUMMIT
SQL> SELECT t.table_name, o.data_object_id,
2 s.header_file, s.header_block
3 FROM dba_tables t, dba_objects o, dba_segments s
4 WHERE t.owner=o.owner
5 AND t.table_name=o.object_name
6 AND t.owner=s.owner
7 AND t.table_name=s.segment_name
8 AND t.owner=SUMMIT;

TABLE_NAME DATA_OBJECT_ID HEADER_FILE HEADER_BLOCK

CUSTOMER 12743 2 902
DEPARTMENT 12745 2 912
EMPLOYEE 12748 2 927
IMAGE 12751 2 942
INVENTORY 12753 2 952
ITEM 12755 2 962

LONG_TEXT 12758 2 977
ORDERS 12760 2 987
PRODUCT 12762 2 997
REGION 12765 2 1012
TITLE 12768 2 1027
WAREHOUSE 12770 2 1037
12 rows selected.


×