Xem mẫu

  1. Chỉ mục và chỉ mục đầy đủ Chương 6    
  2. Ôn tập Ôn tập truy vấn nâng cao  Các truy vấn con  Mệnh đề EXISTS   Thực hiện các truy vấn  Mệnh đề DISTINCT  COMPUTE BY   SELECT INTO  Database Design and Implementation with SQL Server 2000 / Session 6 / 2 of 32
  3. Mục tiêu  Định nghĩa chỉ mục  Tìm hiểu cách tạo chỉ mục  Định  nghĩa  chỉ  mục  Clustered  và  Non­Clustered  với  các  đặc điểm duy nhất và phức hợp.  Miêu tả các khung nhìn bảng chỉ mục  Tìm hiểu cách sử dụng các chỉ mục  Giải thích việc xoá các chỉ mục  Tìm hiểu cách tìm kiếm toàn văn với các chỉ mục toàn văn  Tìm hiểu các từ khoá  CONTAINS và  FREETEXT  được sử  dụng trong các truy vấn toàn văn Database Design and Implementation with SQL Server 2000 / Session 6 / 3 of 32
  4. Các chỉ mục  Một chỉ mục cho phép chương trình tìm dữ liệu trong bảng  mà không cần duyệt qua toàn bộ bảng.   Chỉ mục chỉ ra  để tìm kiếm một giá trị cụ thể. Chỉ mục sử  dụng để chỉ ra hàng chứa giá trị trong bảng   Một  chỉ  mục  hợp  lý  có  thể  cải  thiện  sự  thực  thi  cơ  sở  dữ  liệu bởi giảm bớt thời gian truy cập.   Một chỉ mục có thể được tạo lập trên một trường hoặc trên  nhiều trường.   SQL Server tự động tạo lập các chỉ mục cho các kiểu ràng  buộc  PRIMARY KEY và UNIQUE. Database Design and Implementation with SQL Server 2000 / Session 6 / 4 of 32
  5. Các chỉ mục (tiếp theo…)  Các bảng có các chỉ mục đòi hỏi nhiều dung lượng bộ nhớ  hơn trong CSDL.   Các lệnh thao tác dữ liệu đòi hỏi nhiều thời gian xử lý hơn,  vì chúng cần cập nhật sự thay đổi tới các chỉ mục.  Database Design and Implementation with SQL Server 2000 / Session 6 / 5 of 32
  6. Hướng dẫn cách tạo lập  các chỉ mục  Tạo chỉ mục khi:  Khi cột được sử dụng để tìm kiếm thường xuyên.   Khi cột được sử dụng để sắp xếp dữ liệu.   Chỉ mục không nên tạo khi:  Khi cột dữ liệu chứa các giá trị duy nhất.   Khi bảng chỉ chứa một vài hàng. Database Design and Implementation with SQL Server 2000 / Session 6 / 6 of 32
  7. Tạo lập các chỉ mục    Lệnh  CREATE  INDEX  được  sử  dụng  để  tạo  lập  chỉ  mục  trên bảng.   Câu lệnh này hoặc thay  đổi thứ tự vật lý của các bản ghi  trong bảng hoặc  đưa ra việc tối  ưu truy vấn với một thứ tự  logic  của  bảng  nhằm  tăng  hiệu  quả  hoạt  động  cho  các  truy vấn.   Chỉ có thể tạo lập chỉ mục trên các bảng người dùng. Database Design and Implementation with SQL Server 2000 / Session 6 / 7 of 32
  8. Tạo lập chỉ mục     Cú pháp của câu lệnh CREATE INDEX: CREATE [UNIQUE] [CLUSTERED|NONCLUSTERED] INDEX index_name ON table_name (column_name[, column_name]…) [WITH [PAD_INDEX] [[,]FILLFACTOR=x] [[,]DROP_EXISTING] ] Database Design and Implementation with SQL Server 2000 / Session 6 / 8 of 32
  9. Hệ số điền đầy   Khi  một  chỉ  mục  được  tạo  lập,  bảng  dữ  liệu  được  chứa  trong  các  trang  dữ  liệu  theo  một  thứ  tự  đã  được  sắp  xếp  của giá trị trong các cột chỉ mục.   Khi các bản ghi được thêm vào bảng hoặc các giá trị trong  các cột chỉ mục bị thay  đổi, SQL Server có thể tổ chức dữ  liệu  chứa  định  dạng  để  làm  mẫu  cho  các  bản  ghi  mới  và  duy trì sự lưu trữ dữ liệu được sẵp xếp.   Trong khi thêm một hàng mới tới một trang dữ liệu có chỉ  số, SQL Server sẽ dịch chuyển khoảng một nửa số hàng  sang  trang  mới  để  có  chỗ  trống  cho  hàng  mới  thêm  vào  nằm trong trang vừa chia ra. Database Design and Implementation with SQL Server 2000 / Session 6 / 9 of 32
  10. Hệ số điền đầy     Trang phân chia giới hạn sự thực thi và phân chia dữ liệu  chứa trong bảng.   Hệ  số  điền  đầy  được  chỉ  định  trong  quá  trình  tạo  lập  chỉ  số,  để dành riêng tỉ lệ phần trăm khoảng trống của chỉ số  trên mỗi trang để lưu trữ dữ liệu mở rộng trong tương lai.   Hệ số  điền  đầy xác  định dữ liệu  được nhập vào trong các  trang sau khi chỉ số được tạo lập. Database Design and Implementation with SQL Server 2000 / Session 6 / 10 of 32
  11. Hệ số điền đầy   Khi dữ liệu không thay đổi, chỉ định một giá trị 100 sao cho  các  trang  sẽ  được  điền  đầy  và  sẽ  chiếm  tối  thiểu  dung  lượng khoảng trống.  Khi dữ liệu thay đổi thường xuyên, chỉ định một giá trị thấp  hơn  để  dịch  chuyển  nhiều  khoảng  trống  hơn  trên  các  trang. Database Design and Implementation with SQL Server 2000 / Session 6 / 11 of 32
  12. Các kiểu của chỉ số  Một chỉ mục clustered chỉ ra thứ tự lưu trữ dữ liệu trong bảng.  Một chỉ mục non­clustered xác định thứ tự lưu trữ dữ liệu logic của bảng.  Database Design and Implementation with SQL Server 2000 / Session 6 / 12 of 32
  13. Chỉ mục Clustered   Một chỉ mục clustered tạo dung lượng lưu trữ vật lý theo thứ tự của dữ liệu.  Một bảng có thể chỉ có một chỉ mục clustered.  Chỉ mục có thể bao gồm nhiều cột.  Ví dụ: CREATE CLUSTERED INDEX CLINDX_titleid ON roysched (title_id) Database Design and Implementation with SQL Server 2000 / Session 6 / 13 of 32
  14. Các hướng dẫn để tạo lập chỉ mục Clustered   Chọn một cột có tỉ lệ phần trăm các giá trị duy nhất cao. Chọn cột khoá chính là tốt nhất  Tạo lập một chỉ mục clustered trước khi chỉ mục non-clustered được tạo lập để chỉ mục non-clustered không bị tạo lại sau khi chỉ mục clustered được tạo.  Sử dụng tuỳ chọn FILLFACTOR khi tạo lập các chỉ mục clustered để đảm bảo có khoảng trống thích hợp khi có các hàng mới được chèn vào. Database Design and Implementation with SQL Server 2000 / Session 6 / 14 of 32
  15. Các chỉ mục Non-clustered   Một chỉ mục non­clustered xác định thứ tự logic của bảng.  Dữ  liệu  được  chứa  ở  một  nơi,  chỉ  mục  được  chứa  ở  một  mơi khác, với các con trỏ định vị vị trí lưu trữ dữ  liệu.   Một bảng có thể có nhiều chỉ mục non­clustered, tối  đa là  249.   Ví dụ: CREATE NONCLUSTERED INDEX NCLINDX_ordnum ON sales (ord_num) Database Design and Implementation with SQL Server 2000 / Session 6 / 15 of 32
  16. Các hướng dẫn để tạo lập các chỉ mục Non-clustered  Chỉ  nên  thêm  chỉ  mục  khi  thực  sự  cần  thiết,  vì  một  chỉ  mục đòi hỏi nhiều sự duy trì thêm vào sau đó.   Một chỉ mục thường xuyên truy xuất các cột.  Ở chế  độ mặc  định, lệnh CREATE INDEX tạo lập một chỉ  mục non­clustered.  Sử dụng chỉ mục non­clustered cho các cột để lưu trữ một  số cao của các giá trị riêng biệt, giống như sự kết hợp của  họ  và  tên  (Nếu  một  chỉ  mục clustered  được  sử dụng  cho  các cột khác)  Database Design and Implementation with SQL Server 2000 / Session 6 / 16 of 32
  17. Thuộc tính của các chỉ số  Các  chỉ  mục  Clustered  và  non­clustered  có  thể  được  tạo  lập duy nhất hoặc tổ hợp.   Các  chỉ  mục  duy  nhất  không  cho  phép  các  giá  trị  lặp  lại  trong cột chỉ số.  Các chỉ mục tổ hợp cho phép hai hoặc nhiều cột  được sử  dụng trong khi tạo lập chỉ số.  Database Design and Implementation with SQL Server 2000 / Session 6 / 17 of 32
  18. Hướng dẫn việc tạo lập các  chỉ số duy nhất  Thực  thể  toàn  vẹn  có hiệu  lực bởi các chỉ số duy nhất vì  một giá trị duy nhất tồn tại trong từng hàng.  Một giá trị rỗng trong một cột khoá phản  ánh như một giá  trị duy nhất.  Chỉ mục duy nhất không thể tạo lập trên một cột mà chứa  dữ liệu lặp lại. Dữ liệu lặp lại phải  được cập nhật hoặc xoá  trước khi chỉ mục duy nhất được tạo lập. Database Design and Implementation with SQL Server 2000 / Session 6 / 18 of 32
  19. Hướng dẫn cho việc tạo lập  các chỉ số phức hợp   Tạo lập một chỉ số phức hợp khi hai hoặc nhiều cột thường  xuyên được tìm kiếm như một nhóm.  Xác  định danh sách các cột hợp thành giá trị duy nhất  để  tạo lập chỉ mục phức hợp.  Thứ tự và số lượng các cột trong một chỉ mục tổ hợp  ảnh  hưởng đến sự thực thi của truy vấn. Database Design and Implementation with SQL Server 2000 / Session 6 / 19 of 32
  20. Xem xét các chỉ mục Sau khi tạo lập các chỉ mục, chúng ta có thể cần định vị thông tin về các chỉ  mục.    Chúng ta có thể muốn nhìn thấy danh sách của các chỉ mục tạo lập trên một  bảng cụ thể hoặc các cột chỉ mục trong bảng.    sp_helpindex là một thủ tục lưu trữ hệ thống đưa ra thông báo thông tin  về các chỉ mục trên bảng.  Cú pháp: sp_helpindex Database Design and Implementation with SQL Server 2000 / Session 6 / 20 of 32
nguon tai.lieu . vn