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

Chuẩn bị kỳ thi số 731 lấy chứng chỉ DBA (Quản trị cơ sở dữ liệu) DB2 9, Phần 2: Bố trí dữ liệu pot

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 (5.08 MB, 58 trang )

Chuẩn bị kỳ thi số 731 lấy chứng chỉ DBA (Quản trị cơ sở dữ liệu) DB2 9,
Phần 2: Bố trí dữ liệu
Dwaine Snow, Giám đốc sản phẩm DB2, IBM
Tóm tắt: Tìm hiểu cách tạo cơ sở dữ liệu DB2 và các cơ chế sẵn có để lưu trữ các
bảng, chỉ mục và dữ liệu của bạn trong cơ sở dữ liệu. Hướng dẫn này tập trung vào
việc phân đoạn, nén, và XML, tất cả đều là các khái niệm quan trọng về phát triển
ứng dụng và hiệu năng hoạt động mà bạn cần biết để lưu trữ và truy cập dữ liệu
một cách nhanh chóng và hiệu quả. Đây là bài thứ hai trong loạt bảy bài hướng
dẫn chuẩn bị thi lấy chứng chỉ DB2 DBA mà bạn có thể sử dụng để giúp chuẩn bị
kỳ thi Quản trị Cơ sở Dữ liệu DB2 V9 dành cho Linux, UNIX và Windows (kỳ thi
731).
Trước khi bạn bắt đầu
Về loạt bài này
Nếu bạn đang chuẩn bị dự kỳ thi 731 lấy chứng chỉ quản trị cơ sở dữ liệu (DBA)
DB2, bạn đã đến đúng chỗ đây là một kiểu tài liệu tự học. Loạt bảy bài hướng
dẫn chuẩn bị lấy chứng chỉ DB2 này gồm các khái niệm chính mà bạn cần biết để
làm bài kiểm tra. Hãy làm bài tập ở nhà của bạn ở đây và giảm bớt căng thẳng
trong ngày kiểm tra.


Về tài liệu hướng dẫn này
Hướng dẫn này thảo luận về việc tạo cơ sở dữ liệu DB2, cũng như các phương
thức khác nhau được sử dụng để đưa vào và lưu trữ các đối tượng trong một cơ sở
dữ liệu. Hướng dẫn này tập trung vào việc phân đoạn, nén, và XML, tất cả đều là
các khái niệm quan trọng về phát triển ứng dụng và hiệu năng hoạt động mà bạn
cần biết để lưu trữ và truy cập dữ liệu một cách nhanh chóng và hiệu quả. Hướng
dẫn này là bài thứ hai trong loạt bảy bài hướng dẫn mà bạn có thể sử dụng để giúp
bạn chuẩn bị kỳ thi lấy Chứng chỉ Quản trị Cơ sở dữ liệu DB2 (kỳ thi 731). Tư
liệu trong hướng dẫn này chủ yếu đề cập đến các mục tiêu trong Phần 2 của kỳ thi,
có tiêu đề là Bố trí dữ liệu. Bạn có thể xem các mục tiêu này tạit: http://www-
03.ibm.com/certify/tests/obj731.shtml.


Bạn cũng nên xem phần Tài nguyên ở phần cuối của hướng dẫn này để có nhiều
thông tin hơn về quản trị máy chủ DB2.


Mục tiêu
Sau khi hoàn thành này hướng dẫn này, bạn sẽ có thể:
 Tạo cơ sở dữ liệu.
 Sử dụng các lược đồ.
 Xác định nhiều trạng thái vùng bảng khác nhau.
 Tạo và thao tác các đối tượng DB2
 Tạo một vùng bảng SMS và hiểu được các đặc trưng của nó.
 Hiểu biết về các đặc trưng và cách sử dụng việc lưu trữ tự động của DB2.
 Thực hiện phân đoạn bảng và phân cụm đa chiều (MDC - Multi-
dimensional clustering) trên các bảng của bạn.
 Sử dụng phép nén bảng.
 Sử dụng XML.


Các điều kiện tiên quyết
Để hiểu một số tư liệu trình bày trong hướng dẫn này, bạn cần phải quen thuộc với
các thuật ngữ sau đây:
 Đối tượng: Bất cứ cái gì trong một cơ sở dữ liệu mà có thể được tạo ra
hoặc thao tác bằng SQL (ví dụ các bảng, các khung nhìn, các chỉ mục, các
gói).
 Bảng: Một cấu trúc logic được sử dụng để trình bày dữ liệu như là một tập
hợp các hàng không sắp thứ tự với một số cột cố định. Mỗi cột chứa một bộ
các giá trị, mỗi giá trị có cùng một kiểu dữ liệu (hoặc một kiểu phụ của kiểu
dữ liệu của cột); các định nghĩa của các cột tạo thành cấu trúc bảng, và các
hàng chứa dữ liệu thực tế của bảng.
 Bản ghi (Record): Là lưu trữ của một hàng trong một bảng.

 Trường (Field): Là lưu trữ của một cột trong một bảng.
 Giá trị (Value): Một mục dữ liệu cụ thể, tại mỗi điểm giao nhau giữa một
hàng và một cột trong một bảng cơ sở dữ liệu.
 Structured Query Language (SQL-Ngôn ngữ truy vấn có cấu trúc ):
Một ngôn ngữ được tiêu chuẩn hoá dùng để định nghĩa các đối tượng và
thao tác dữ liệu trong một cơ sở dữ liệu quan hệ. (Để biết thêm chi tiết về
SQL, xem hướng dẫn thứ tư trong loạt này).
 Bộ tối ưu hoá DB2 (DB2 optimizer): Một thành phần của bộ tiền biên
dịch SQL, nó chọn một sơ đồ truy cập cho một câu lệnh Ngôn ngữ Thao tác
Dữ liệu SQL (DML) bằng cách mô hình hoá chi phí thi hành một vài sơ đồ
truy cập có thể thay thế lẫn nhau và chọn ra sơ đồ nào có chi phí dự tính ít
nhất.
Để dự kỳ thi DB2 9 DBA, bạn phải qua được kỳ thi số 730, Cơ bản DB2 9 (DB2 9
Fundamentals exam 730). Nếu có sẵn, chúng tôi khuyên bạn nên đọc loạt bài
hướng dẫn Cơ bản DB2 (DB2 Fundamentals tutorial series) trước khi bắt đầu loạt
bài này.
Mặc dù không phải tất cả các tư liệu thảo luận trong loạt bài hướng dẫn Cơ bản là
cần thiết để hiểu được các khái niệm mô tả trong hướng dẫn này, bạn ít nhất phải
có kiến thức cơ bản về:
 Sản phẩm DB2.
 Các công cụ DB2.
 Các cá thể DB2.
 Cơ sở dữ liệu.
 Đối tượng cơ sở dữ liệu.


Yêu cầu về hệ thống
Bạn không cần một bản sao của DB2 để hoàn thành hướng dẫn này. Tuy nhiên,
bạn sẽ thu nhận được nhiều hơn từ hướng dẫn này nếu bạn tải về phiên bản dùng
thử miễn phí IBM DB2 9 để làm việc cùng với hướng dẫn này.


Tạo một cơ sở dữ liệu
Các thư mục cơ sở dữ liệu
Với mỗi cá thể trình quản trị cơ sở dữ liệu tồn tại một tệp chỉ dẫn (directory) cơ sở
dữ liệu hệ thống, tệp tin này chứa một mục dành cho mỗi cơ sở dữ liệu đã được
lên danh mục cho cá thể này. Cơ sở dữ liệu được ngầm lên danh mục khi lệnh
create database được phát ra, và cũng có thể được lên danh mục một cách tường
minh với lệnh catalog database (lên danh mục cơ sở dữ liệu).
Một tệp chỉ dẫn (directory) cơ sở dữ liệu cục bộ tồn tại trong mỗi ổ đĩa hoặc
đường dẫn trong đó cơ sở dữ liệu đã được định nghĩa. Tệp chỉ dẫn này chứa một
mục dành cho mỗi cơ sở dữ liệu có thể truy cập từ vị trí đó.
Tạo một cơ sở dữ liệu
Khi bạn tạo ra một cơ sở dữ liệu, từng tác vụ sau đây được thực hiện:
 Thiết đặt tất cả các bảng danh mục hệ thống mà cơ sở dữ liệu cần đến.
 Cấp phát nhật ký khôi phục cơ sở dữ liệu.
 Tạo tệp tin cấu hình cơ sở dữ liệu và bộ các giá trị mặc định.
 Kết buộc các tiện ích cơ sở dữ liệu với cơ sở dữ liệu.


Lệnh create database
Để tạo một cơ sở dữ liệu, sử dụng lệnh:
create database

Bạn có thể chỉ rõ thêm các tuỳ chọn sau đây:
 Đường dẫn lưu trữ.
 Số của phân đoạn cơ sở dữ liệu cho phân đoạn danh mục đó.
 Ổ đĩa hoặc đường dẫn trên đó tạo ra cơ sở dữ liệu.
 Bộ mã ký tự (codeset) và vùng lãnh thổ.
 Tuần tự sắp xếp chuỗi ký tự (Collating sequence).
 Kích thước dải trang (extent) mặc định (N.D: cùng với trang (page), dải

trang (extent) là đơn vị cơ sở để tổ chức không gian nhớ. Một dải trang là 8
trang nhớ liền nhau, hay 64 KB).
 Cơ sở dữ liệu có được tự động lập cấu hình hay không.
 Các định nghĩa vùng bảng của các vùng bảng CATALOG, TEMPORARY,
và USERSPACE1.


Cơ sở dữ liệu mặc định
Lệnh create database tạo ra ba vùng bảng mặc định:
SYSCATSPACE
Dùng cho các bảng danh mục hệ thống. SYSCATSPACE không thể bị hủy
đi.
TEMPSPACE1
Dùng cho các bảng tạm thời được hệ thống tạo ra. Vùng bảng
TEMPSPACE1 có thể được hủy bỏ khi đã tạo ra một vùng bảng do người
sử dụng tạo ra khác.
USERSPACE1
Vùng bảng mặc định cho đối tượng được người sử dụng tạo ra. Vùng bảng
USERSPACE1 có thể được hủy bỏ khi đã tạo ra một vùng bảng do người
sử dụng tạo ra khác.


Danh mục hệ thống
Một tập hợp các bảng danh mục hệ thống được tạo ra và duy trì cho từng cơ sở dữ
liệu. Các bảng này chứa thông tin về các định nghĩa của đối tượng cơ sở dữ liệu
(ví dụ như bảng, khung nhìn, chỉ mục, các gói) và thông tin bảo đảm an ninh cho
các kiểu truy cập mà người sử dụng có đối với các đối tượng này. Các bảng này
được lưu trong vùng bảng SYSCATSPACE.



Cấu trúc thư mục
Lệnh create database cho phép bạn quy định ổ đĩa hoặc thư mục trên đó tạo ra cơ
sở dữ liệu, tuỳ thuộc vào hệ điều hành.
Nếu không quy định ổ đĩa hoặc thư mục, cơ sở dữ liệu được tạo ra trên đường dẫn
được xác định bởi tham số cấu hình DFTDBPATH của cá thể (trình quản trị cơ sở
dữ liệu).
Nếu không quy định ổ đĩa hoặc thư mục, và và tham số cấu hình mức cá thể
DFTDBPATH, cơ sở dữ liệu được tạo ra trên ổ đĩa hoặc đường dẫn nơi lệnh create
database đã được thi hành.
Lệnh create database tạo ra một loạt các thư mục con. Thư mục con đầu tiên được
đặt tên theo tên chủ sở hữu cá thể của cá thể mà trong đó cơ sở dữ liệu đã được tạo
ra. Dưới thư mục con này, DB2 tạo ra một thư mục cho biết cơ sở dữ liệu đã được
tạo ra trong phân đoạn cơ sở dữ liệu nào.
Đối với một cơ sở dữ liệu không phân đoạn, thư mục này sẽ là NODE0000. Đối
với một cơ sở dữ liệu được phân đoạn, thư mục sẽ được đặt tên là NODExxxx,
trong đó xxxx sẽ là bốn chữ số, là số hiệu phân đoạn của cá thể cơ sở dữ liệu như
đã quy định trong tệp tin db2node.cfg. Ví dụ, đối với phân đoạn số 43, thư mục sẽ
là NODE0043.
Trong Windows, các cá thể không thực sự có một chủ sở hữu cá thể, do đó tên của
cá thể này (ví dụ, DB2) sẽ được sử dụng thay cho mã nhận dạng của chủ sở hữu cá
thể.
Do có hơn một cơ sở dữ liệu có thể được tạo ra trên cùng một ổ đĩa hoặc thư mục,
mỗi cơ sở dữ liệu phải có thư mục con của chính nó. Dưới thư mục NODExxxx, sẽ
có một thư mục SQLxxxxx cho mỗi cơ sở dữ liệu đã được tạo ra trên ổ đĩa hoặc
thư mục ấy. Ví dụ, hãy tưởng tượng chúng ta có hai cơ sở dữ liệu, DBASM và
SAMPLE, mà cả hai đã được tạo ra trên ổ C: trên Windows. Sẽ có hai thư mục:
SQL00001 và SQL00002.
Để xác định thư mục trong đó cơ sở dữ liệu đã được tạo ra, gõ nhập lệnh list
database directory on C:. Việc này sẽ tạo ra kết quả tương tự như sau:


Trong ví dụ trên, cơ sở dữ liệu SAMPLE đã được tạo ra trong thư mục SQL00001
và cơ sở dữ liệu DBASM đã được tạo ra trong thư mục SQL00002 dưới thư mục
NODExxxx.
Theo mặc định:
 Vùng bảng danh mục hệ thống (SYSCATSPACE) sẽ sử dụng thư mục
SQLT0000.0
 Vùng bảng tạm thời hệ thống (TEMPSPACE1) sẽ sử dụng thư mục
SQLT0001.0
 Vùng bảng người sử dụng mặc định (USERSPACE1) sẽ sử dụng thư mục
SQLT0002.0


Các ví dụ lệnh create database trên Linux/Unix
Để tạo một cơ sở dữ liệu trên thư mục /database, sử dụng lệnh sau đây:
create database sample on /database

Nếu lệnh này đã được thi hành trong cá thể có tên là dbinst, trên máy chủ nơi phân
đoạn cơ sở dữ liệu số 0 được định nghĩa, cấu trúc thư mục sau đây sẽ được tạo ra:
 /database/dbinst/NODE0000/sqldbdir
 /database/dbinst/NODE0000/SQL00001


Các ví dụ lệnh create database trên Windows
Để tạo một cơ sở dữ liệu trên ổ D:, sử dụng lệnh sau đây:
create database sample on D:

Nếu lệnh này đã được thi hành trong cá thể có tên là dbinst, trên máy chủ nơi phân
đoạn cơ sở dữ liệu số 0 được định nghĩa, cấu trúc thư mục sau đây sẽ được tạo ra:
 D:\dbinst\NODE0000\sqldbdir
 D:\dbinst\NODE0000\SQL00001



Tạo vùng bảng USERSPACE1 là vùng do cơ sở dữ liệu quản lý (DMS)
Để tạo một cơ sở dữ liệu và định nghĩa vùng bảng USERSPACE1 là vùng được cơ
sở dữ liệu quản lý (DMS - database managed space), bằng cách sử dụng hai thùng
chứa tệp tin, hãy dùng lệnh sau đây:
Trên Linux hoặc UNIX:
create database sample2 user table space managed by database
using(file '/dbfiles/cont0' 5000, file '/dbfiles/cont1' 5000)

Trên Windows:
create database sample2 user table space managed by database
using(file 'c:\dbfiles\cont0' 5000, file 'c:\dbfiles\cont1' 5000)



Tạo vùng bảng TEMPSPACE1 với các thùng chứa do người sử dụng định nghĩa
Để tạo một cơ sở dữ liệu và định nghĩa vùng bảng TEMPSPACE1 để sử dụng hai
thùng chứa SMS (xem vùng bảng SMS), sử dụng lệnh sau đây:
Trên Linux hoặc UNIX:
create database sample3 temporary tablespace managed by system
using('/dbfiles/cont0', '/dbfiles/cont1')

Trên Windows:
create database sample3 temporary tablespace managed by system
using('c:\dbfiles\cont0', 'c:\dbfiles\cont1')



Thay đổi tuần tự sắp xếp chuỗi ký tự cho cơ sở dữ liệu

Lệnh (trong Linux và UNIX):
create database SAMPLE on /mydbs collate using
identity

hoặc trên Windows:
create database SAMPLE on D: collate using identity

tạo ra một cơ sở dữ liệu và so sánh các chuỗi ký tự theo từng byte một, do tuần tự
sắp xếp (collating sequence) đã được thiết đặt là identity.
Lưu trữ tự động
Lưu trữ tự động là gì?
Lưu trữ tự động, điểm mới trong DB2 V9, cho phép bạn chỉ rõ một hoặc nhiều
đường dẫn lưu trữ cho một cơ sở dữ liệu. Sau đó khi bạn tạo ra vùng bảng, chúng
sẽ được DB2 tự động đặt vào đường dẫn lưu trữ. Bạn có thể bật cho phép hoặc lập
cấu hình lưu trữ tự động cho một cơ sở dữ liệu khi nó được tạo ra, như sau:
db2 create database db_name automatic storage yes
db2 create database db_name on db_path1, db_path2


Bạn có thể thêm các đường dẫn lưu trữ vào một cơ sở dữ liệu đã thiết đặt lưu trữ
tự động bằng cách sử dụng tham số add storage, như sau:
db2 alter database db_name add storage on db_path3


Sử dụng lưu trữ tự động
Một khi cơ sở dữ liệu của bạn đã được thiết đặt để lưu trữ tự động, bạn có thể tạo
vùng bảng bằng cách sử dụng cơ chế này. Bạn có một số cách để tận dụng việc lưu
trữ tự động một khi cơ sở dữ liệu đã được thiết lập như vậy. Bạn có thể chỉ cần tạo
ra một vùng bảng trong cơ sở dữ liệu (một khi bạn được kết nối với cơ sở dữ liệu),
như sau:

db2 create tablespace ts_name


Hoặc, bạn có thể tạo ra một vùng bảng và qui định kích thước ban đầu của nó và
các đặc trưng tăng trưởng, như sau:
db2 create tablespace ts_name
initialsize 10M
increasesize 10M
maxsize 100M

Trong thí dụ này vùng bảng sẽ bắt đầu ở 10MB, và khi nó gần đầy, DB2 sẽ tự
động mở rộng mỗi lần 10MB, cho đến kích thước tối đa 100MB.
Nếu cơ sở dữ liệu không được thiết lập để lưu trữ tự động, bạn vẫn có thể sử dụng
việc lưu trữ tự động đối với một vùng bảng nếu bạn tạo ra nó và chỉ rõ việc lưu trữ
của nó là tự động:
db2 create tablespace ts_name
managed by automatic storage

Sử dụng lược đồ (schema)
Lược đồ là gì?
Một lược đồ là một tên phân biệt ở mức cao cho các đối tượng cơ sở dữ liệu được
tạo ra bên trong một cơ sở dữ liệu. Nó là một bộ sưu tập của các đối tượng cơ sở
dữ liệu chẳng hạn như các bảng, khung nhìn, chỉ mục, hoặc các kích hoạt
(triggers). Nó đem lại sự phân loại logic các đối tượng cơ sở dữ liệu.
Khi bạn tổ chức dữ liệu của bạn thành các bảng, có thể sẽ có lợi khi nhóm lại với
nhau các bảng và các đối tượng liên quan khác. Điều này được thực hiện bằng
cách định nghĩa một lược đồ, sử dụng lệnh create schema. Thông tin về lược đồ
được giữ trong bảng danh mục hệ thống của cơ sở dữ liệu mà bạn đang kết nối.
Khi các đối tượng khác được tạo ra, chúng có thể được đặt trong lược đồ này.
Các lược đồ hệ thống

Một tập hợp các lược đồ hệ thống được tạo ra với từng cơ sở dữ liệu và được đặt
vào vùng bảng SYSCATSPACE:
SYSIBM
Đây là các danh mục hệ thống cơ bản. Không nên truy cập trực tiếp.
SYSCAT
Quyền SELECT cấp cho PUBLIC trên lược đồ này. Đây là các khung nhìn
chỉ đọc của danh mục. Khuyến cáo nên dùng cách này để lấy thông tin danh
mục.
SYSSTAT
Đây là các khung nhìn danh mục có thể cập nhật được nó ảnh hưởng đến
trình tối ưu hoá.
SYSFUN
Các hàm được người sử dụng định nghĩa.


Lược đồ được sử dụng trong DB2 như thế nào?
Sử dụng một lược đồ để có tên phân biệt đầy đủ cho một bảng hoặc đối tượng
khác, như sau:
schemaname.tablename

Bạn có thể có nhiều bảng có cùng tên nhưng tên lược đồ khác nhau. Như vậy,
bảng user1.staff không giống như user2.staff. Kết quả là bạn có thể sử dụng lược
đồ để tạo cơ sở dữ liệu logic trong một cơ sở dữ liệu DB2.
Để tạo một lược đồ, sử dụng lệnh create schema (tạo lược đồ).


Ai có thể sử dụng lược đồ?
Khi bạn có thể tạo ra một lược đồ, bạn có thể chỉ rõ chủ sở hữu của lược đồ bằng
cách sử dụng từ khóa authorization; nếu bạn không làm như vậy, mã nhận dạng
(ID) ủy quyền đã thực hiện lệnh create schema sẽ là chủ sở hữu của lược đồ. Các

đặc quyền với lược đồ cũng có thể đồng thời được cấp cho những người sử dụng
hoặc các nhóm người sử dụng. (Xem Phần 1 trong loạt bài này để có nhiều thông
tin hơn về đặc quyền.)
Một khi lược đồ đã tồn tại, chủ sở hữu của lược đồ có thể cấp đặc quyền
CREATE_IN trên lược đồ cho những người sử dụng hoặc các nhóm khác.


Chỉ rõ lược đồ khi tạo ra một đối tượng
Tên lược đồ dành cho một đối tượng có thể được chỉ rõ tường minh như sau:
create table DWAINE.table1 (c1 int, c2 int)

Nếu người sử dụng DWAINE kết nối cơ sở dữ liệu SAMPLE, và phát ra lệnh sau:
create table t2 (c1 int)

Lược đồ DWAINE được tạo ra (chừng nào mà IMPLICT_SCHEMA chưa bị thu
hồi lại từ người sử dụng DWAINE), cũng như bảng t2 trong cơ sở dữ liệu.
Mã nhận dạng được sử dụng để kết nối cơ sở dữ liệu gọi là mã nhận dạng ủy
quyền.


Chỉ rõ lược đồ khi sử dụng các lệnh thao tác dữ liệu (DML)
Khi sử dụng các lệnh thao tác dữ liệu (ví dụ như select, insert, update, delete) trên
các đối tượng cơ sở dữ liệu:
 Có thể chỉ rõ tường minh lược đồ của đối tượng trong tên đối tượng, chẳng
hạn như schema1.table1.
 Có thể chỉ rõ lược đồ của đối tượng bằng cách sử dụng lệnh set set current
schema hoặc set current sqlid.
 Nếu không có lược đồ đối tượng nào được chỉ rõ tường minh, lược đồ sẽ
được đặt là mã nhận dạng (ID) ủy quyền hiện tại.
Ví dụ, nếu người sử dụng DWAINE kết nối cơ sở dữ liệu SAMPLE và phát ra lệnh

sau:
select * from t2

bảng được chọn là DWAINE.T2, nếu có bảng này. Nếu không thì sẽ trả về một lỗi.

Các trạng thái vùng bảng
Xác định một trạng thái của vùng bảng
Để tìm trạng thái vùng bảng trong cơ sở dữ liệu:
list tablespaces show detail

Các trạng thái vùng bảng
Một vùng bảng có thể có một số trạng thái khác nhau, như dưới đây.


Tạo và thao tác các đối tượng DB2 khác nhau
Giới thiệu
Phần này thảo luận về mục đích và cách sử dụng:
 Vùng đệm.
 Vùng bảng.
 Bảng và chỉ mục.
 Khung nhìn.
 Cột nhận dạng.
 Bảng tạm.
 Ràng buộc.
 Các kích hoạt.
Vùng đệm
Khu vực vùng đệm cơ sở dữ liệu là một đoạn bộ nhớ được sử dụng để ghi nhớ sẵn
(cache) chỉ mục của một bảng và các trang dữ liệu khi chúng đang được đọc vào
từ đĩa để tìm kiếm hoặc sửa đổi. Khu vực vùng đệm giúp cải thiện hiệu năng hệ
thống cơ sở dữ liệu bằng cách cho phép dữ liệu được truy cập từ bộ nhớ thay vì từ

đĩa. Do việc truy cập bộ nhớ nhanh hơn nhiều so với truy cập đĩa, DB2 ít khi phải
đọc vào từ đĩa hoặc ghi ra đĩa, hệ thống sẽ hoạt động tốt hơn.
Khi một cơ sở dữ liệu được tạo ra, một vùng đệm mặc định được tạo ra cho cơ sở
dữ liệu đó. Vùng đệm IBMDEFAULTBP này có kích thước trang 4 KB và tổng
kích thước tuỳ thuộc vào hệ điều hành. Đối với Windows, vùng đệm mặc định là
250 trang hay là 1 MB; đối với UNIX, vùng đệm mặc định là 1.000 trang hoặc 4
MB. Vùng đệm mặc định không thể bị hủy bỏ, nhưng kích thước của nó có thể
được thay đổi bằng cách sử dụng lệnh alter bufferpool.


Tạo một vùng đệm
Lệnh create bufferpool có các tùy chọn để chỉ rõ những thứ sau đây:
Tên vùng đệm
Quy định tên của vùng đệm. Tên gọi này không thể được sử dụng cho bất
kỳ vùng đệm khác và không thể bắt đầu bằng ký tự SYS hoặc IBM.
immediate
Quy định rằng vùng đệm sẽ được tạo ra ngay nếu có đủ bộ nhớ sẵn có trên
hệ thống. Nếu không có đủ không gian dự trữ trong bộ nhớ chia sẻ cơ sở dữ
liệu để cấp phát vùng đệm mới, một cảnh báo được trả lại, và việc tạo ra
vùng đệm sẽ được DEFERRED (tạm hoãn), như mô tả dưới đây.
(immediate là mặc định.)
deferred
Quy định rằng vùng đệm sẽ được tạo ra lần sau lúc mà cơ sở dữ liệu bị
ngừng và khởi động lại.
all dbpartitionnumbs
Quy định rằng vùng đệm sẽ được tạo ra trên tất cả các phân đoạn trong cơ
sở dữ liệu. Đây là mặc định nếu không có nhóm phân đoạn cơ sở dữ liệu
nào được chỉ rõ.
database partition group
Chỉ rõ các nhóm phân đoạn cơ sở dữ liệu trên đó vùng đệm sẽ được tạo ra.

Vùng đệm sẽ được tạo ra trên tất cả các phân đoạn cơ sở dữ liệu mà là một
phần của nhóm phân đoạn cơ sở dữ liệu đã nêu.
size
Quy định kích thước của vùng đệm và được xác định bằng số lượng trang.
Trong một cơ sở dữ liệu được phân đoạn, đây sẽ là kích thước mặc định
cho tất cả các phân đoạn cơ sở dữ liệu nơi các vùng đệm hiện hữu.
numblockpages
Quy định số trang được tạo ra trong vùng dựa theo khối của vùng đệm. Giá
trị thực tế của numblockpages có thể khác với giá trị đã quy định do kích
thước phải là một bội số của kích thước khối blocksize. Vùng dựa theo khối
của vùng đệm không thể nhiều hơn 98 phần trăm tổng kích thước vùng
đệm. Quy định một giá trị bằng 0 sẽ vô hiệu hóa nhập xuất (I/O) theo khối
cho vùng đệm.
blocksize
Quy định số lượng trang trong một khối đã cho trong vùng dựa theo khối
của vùng đệm. Kích thước khối phải trong khoảng 2 và 256 trang; giá trị
mặc định là 32 trang.
pagesize
Quy định kích thước trang được sử dụng cho vùng đệm. Kích thước trang
mặc định là 4 KB hoặc 4.096 byte. Kích thước trang có thể được quy định
bằng byte hoặc kilobyte.
extended storage/not extended storage
Quy định liệu các trang nạn nhân vùng đệm (victim pages) có được sao
chép vào một bộ nhớ sẵn (cache) thứ cấp có tên là vùng lưu trữ mở rộng
(extended storage). hay không. Việc lấy dữ liệu từ nơi lưu trữ mở rộng có
hiệu quả hơn so với việc lấy nó từ đĩa nhưng kém hiệu quả hơn so với việc
lấy nó từ vùng đệm, do đó nó không áp dụng cho môi trường 64-bit.
Một khi một kích thước trang và tên cho một vùng đệm đã được xác định, chúng
không thể thay đổi.



Các ví dụ lệnh create bufferpool
Lệnh sau đây:
create bufferpool BP1 size 25000

tạo ra một vùng đệm có tên là BP1 với kích thước 100 MB (25.000 trang 4KB).Do
kích thước trang không được chỉ rõ, vùng đệm sử dụng kích thước trang mặc định
4 KB. Do tuỳ chọn IMMEDIATE là mặc định, vùng đệm được cấp phát ngay và
sẵn có để sử dụng khi có đủ bộ nhớ sẵn có để hoàn thành yêu cầu.
Lệnh sau đây:
create bufferpool BP2 size 25000 pagesize 8 K

tạo ra một vùng đệm có tên BP2 với kích thước 200 MB (25.000 trang 8 KB).
Vùng đệm sử dụng một kích thước trang 8 KB. Do tuỳ chọn immediate là mặc
định, vùng đệm được cấp phát ngay và có sẵn để dùng khi có đủ bộ nhớ sẵn có để
hoàn thành yêu cầu.
Lệnh sau đây:

×