Quản lý temporary segments

5 169 0
Tài liệu đã được kiểm tra trùng lặp
Quản lý temporary segments

Đang tải... (xem toàn văn)

Thông tin tài liệu

www.updatesofts.com ORACLE 9i – Kiến trúc và Quản trị Trang 138 Chương 12. QUẢN TEMPORARY SEGMENTS 12.1.TEMPORARY SEGMENTS Temporary segments được sử dụng khi Oracle server thực các hiện câu lệnh sắp xếp mà không thể sử dụng vùng không gian trong bộ nhớ do không đủ, ví dụ như:  SELECT. . . ORDER BY  CREATE INDEX  SELECT DISTINCT  SELECT. . . GROUP BY  SELECT. . . UNION Dung lượng bộ nhớ cần thiết cho tiến trình sắp xếp được xác định dựa trên tham số khởi tạo SORT_AREA_SIZE. Trong một số trường hợp, nhiều thao tác sắp xếp cùng được sử dụng và cần nhiều bộ nhớ hơn. Khi này bộ nhớ trong của máy là không thể đáp ứng được và kết quả của việc sắp xếp đó cần phải được tạm thời lưu lên đĩa. Vùng đĩa lưu trữ các dữ liệu trung gian này chính là temporary segments. Temporary segments trong tablespace được Oracle server tạo lập với mục đích sử dụng làm vùng nhớ trung gian hỗ trợ thao tác sắp xếp. Hình vẽ 58. Temporary segment www.updatesofts.com ORACLE 9i – Kiến trúc và Quản trị Trang 139 12.1.1. Phân loại temporary segments Các temporary segments có thể được tạo trên một permanent tablespace hoặc trên một temporary tablespace. User có thể sử dụng một trong các kiểu tablespaces này để sắp xếp. Hình vẽ 59. Phân loại temporary segment Temporary Tablespace Một temporary tablespace được sử cho các temporary segments tương ứng và không chứa bất kỳ segment nào có kiểu khác. Ta có thể tạo các temporary tablespace theo câu lệnh SQL sau: CREATE TABLESPACE tablespace_name TEMPORARY DATAFILE filespec [autoextend_clause] [ , filespec [autoextend_clause]] . Một permanent tablespace có thể chuyển đổi thành dạng temporary tablespace bằng cách sử dụng câu lệnh: ALTER TABLESPACE tablespace_name TEMPORARY Lưu ý: với câu lênh trên, tablespace không được phép chứa bất kỳ một đối tượng thường trú nào (như: table, store procedure, .). Một temporary tablespace có thể chuyển đổi lại thành permanent tablespace thông qua câu lệnh SQL dưới đây: ALTER TABLESPACE tablespace_name PERMANENT Oracle server có thể tạo một temporary segment trong một permanent tablespace với số điều kiện sau:  User thực hiện câu lệnh sắp xếp cần đến vùng không gian trên đĩa.  User chạy câu lệnh mà nó đã được gán cho một permanent tablespace để thực hiện sắp xếp. Khi một permanent tablespace được sử dụng cho việc sắp xếp, một instance có thể có một hoặc nhiều temporary segment trong tablespace. Một temporary segment sẽ được hủy bởi tiến trình nền SMON khi kết thúc câu lệnh sắp xếp và vùng không gian đã cấp phát sẽ được giải phóng để cho các đối tượng khác của database www.updatesofts.com ORACLE 9i – Kiến trúc và Quản trị Trang 140 sử dụng. Permanent tablespaces được sử dụng cho việc sắp xếp, có ba vùng không gian trong tablespace có thể được phân vùng khác nhau. Thông thường, mỗi tablespace nên được sử dụng cho từng tiến trình sắp xếp khác nhau. Khi một temporary tablespaces được sử dụng cho các temporary segments, Instance chỉ tạo một segment dùng để sắp xếp cho tablespace. Một vài transactions cần đến sắp xếp trên ổ đĩa có thể sử dụng cùng segment. Tuy nhiên, một extent thì không thể cùng chia sẻ đồng thời cho nhiều transactions khác nhau. 12.1.2. Sử dụng các Sort Segments Sort segment được tạo bởi câu lệnh sắp xếp đầu tiên sử dụng tới temporary tablespace cho việc sắp xếp. Và sort segment chỉ bị hủy khi tắt (shutdown) database. Việc này làm giảm bớt số lần cấp phát và thu hồi các sort segments phục vụ cho công việc sắp xếp, làm tăng năng suất hệ thống. Oracle không hạn chế số lượng các extents cấp phát cho mỗi sort segment thuộc một temporary tablespace. 12.1.3. Sort Extent Pool Oracle server lưu lại chi tiết sort segment trong vùng Sort Extent Pool của vùng nhớ SGA, mỗi câu lệnh cần tới các vùng trống để thực hiện sắp xếp có thể tìm các extent rỗi trong vùng nhớ này. 12.2.CP PHÁT KHÔNG GIAN CHO TEMPORARY SEGMENT Temporary tablespaces được sử dụng để tăng hiệu quả sắp xếp dữ liệu. Kích thước của các extents trong temporary segment được xác định bởi DEFAULT STORAGE clause của tablespace tương ứng. Do lượng dữ liệu ghi lên temporary segment bằng phần nguyên lần giá trị SORT_AREA_SIZE. Do vậy, ta nên đặt INITIAL = NEXT = (n*SORT_AREA_SIZE)+ DB_BLOCK_SIZE Giá trị PCTINCREASE=0, để đảm bảo các extents có cùng kích thước. www.updatesofts.com ORACLE 9i – Kiến trúc và Quản trị Trang 141 12.3.THÔNG TIN V CÁC TEMPORARY SEGMENT Hình vẽ 60. Thu nhận thông tin về database instance Ta có thể lấy được các thông tin về temporary segment trong một số bảng từ điển dữ liệu: DBA_SEGMENTS: chứa thông tin về tất cả các loại segments trong database. V$SORT_SEGMENT: cho biết trạng thái của các sort extent pool (vùng không gian sắp xếp). Với từ điển dữ liệu này, ta có thể biết được những thông tin sau: Tên cột Diễn giải TABLESPACE_NAME Tên temporary tablespace EXTENT_SIZE Kích thước của extent TOTAL_EXTENTS Tổng số các extents TOTAL_BLOCKS Tổng số các blocks USED_EXTENTS Số lượng extents đã sử dụng USED_BLOCKS Số lượng blocks đã sử dụng FREE_EXTENTS Số lượng extents còn trống FREE_BLOCKS Số lượng blocks còn trống MAX_SORT_SIZE Kích thước tối đa của vùng dữ liệu sắp xếp MAX_SORT_BLOCKS Số lượng blocks tối đa dùng để sắp xếp dữ liệu Ví dụ: SVRMGR> SELECT tablespace_name, extent_size, 2> total_extents, max_sort_blocks 3> FROM v$sort_segment; TABLESPACE_NAME EXTENT_SIZ TOTAL_EXTE MAX_SORT_B --------------- ---------- ---------- ---------- TEMP 128 1 128 1 row selected. www.updatesofts.com ORACLE 9i – Kiến trúc và Quản trị Trang 142 MAX_SORT_SIZE và MAX_SORT_BLOCKS là số lượng các extents và các blocks sử dụng bởi phép sắp xếp lớn nhất. Thông tin này là hữu ích trong việc điều chỉnh kích thước của temporary tablespace V$SORT_USAGE: cho biết thông tin về các sắp xếp hiện có của instance, ta kết hợp với V$SESSION để biết thêm các thông tin: Ví dụ: SVRMGR> SELECT s.username, u."USER", u.tablespace, 2> u.contents, u.extents, u.blocks 3> FROM v$session s,v$sort_usage u 4> WHERE s.saddr=u.session_addr; USERNAME USER TABLESPACE CONTENTS EXTENTS BLOCKS -------- ----- ---------- --------- ------- ------ SYSTEM SYS TEMP TEMPORARY 1 128 1 row selected. . www.updatesofts.com ORACLE 9i – Kiến trúc và Quản trị Trang 138 Chương 12. QUẢN LÝ TEMPORARY SEGMENTS 12.1 .TEMPORARY SEGMENTS Temporary segments được sử dụng khi Oracle. Hình vẽ 58. Temporary segment www.updatesofts.com ORACLE 9i – Kiến trúc và Quản trị Trang 139 12.1.1. Phân loại temporary segments Các temporary segments

Ngày đăng: 09/10/2013, 13:20

Hình ảnh liên quan

Hình vẽ 58. Temporary segment - Quản lý temporary segments

Hình v.

ẽ 58. Temporary segment Xem tại trang 1 của tài liệu.
Hình vẽ 59. Phân loại temporary segment - Quản lý temporary segments

Hình v.

ẽ 59. Phân loại temporary segment Xem tại trang 2 của tài liệu.
Hình vẽ 60. Thu nhận thông tin về database instance - Quản lý temporary segments

Hình v.

ẽ 60. Thu nhận thông tin về database instance Xem tại trang 4 của tài liệu.
Ta có thể lấy được các thông tin về temporary segment trong một số bảng từ điển dữ liệu: DBA_SEGMENTS: chứa thông tin về tất cả các loại segments trong database - Quản lý temporary segments

a.

có thể lấy được các thông tin về temporary segment trong một số bảng từ điển dữ liệu: DBA_SEGMENTS: chứa thông tin về tất cả các loại segments trong database Xem tại trang 4 của tài liệu.

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan