Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

SQL Server - Khi nào sử dụng Clustered và non-Clustered Index?

Tôi chỉ muốn đưa ra một lời cảnh báo:hãy rất cẩn thận chọn chỉ mục nhóm của bạn! Mọi bảng dữ liệu "thông thường" phải có chỉ mục được phân nhóm, vì việc có chỉ mục được phân nhóm thực sự tăng tốc rất nhiều hoạt động - vâng, tăng tốc , thậm chí chèn và xóa! Nhưng chỉ khi bạn chọn một tốt chỉ mục nhóm.

được sao chép nhiều nhất cấu trúc dữ liệu trong cơ sở dữ liệu SQL Server của bạn. Khóa phân cụm cũng sẽ là một phần của mỗi và mọi chỉ mục không phân cụm trên bảng của bạn.

Bạn nên hết sức cẩn thận khi chọn một khóa phân cụm - nó phải là:

  • hẹp (4 byte lý tưởng)

  • duy nhất (Xét cho cùng, đó là "con trỏ hàng". Nếu bạn không đặt nó là duy nhất, SQL Server sẽ làm điều đó cho bạn ở chế độ nền, khiến bạn tốn một vài byte cho mỗi mục nhập nhân với số hàng và số chỉ số không phân biệt của bạn. có - điều này có thể rất tốn kém!)

  • tĩnh (không bao giờ thay đổi - nếu có thể)

  • lý tưởng là ngày càng tăng vì vậy bạn sẽ không gặp phải tình trạng phân mảnh chỉ mục khủng khiếp (GUID hoàn toàn trái ngược với một khóa phân cụm tốt - vì lý do cụ thể đó)

  • nó phải là không thể nullable và lý tưởng là chiều rộng cố định - a varchar(250) tạo một khóa phân cụm rất kém

Bất cứ điều gì khác thực sự phải là cấp độ quan trọng thứ hai và thứ ba sau những điểm này ....

Xem một số tác phẩm của Kimberly Tripp ( Nữ hoàng lập chỉ mục ) các bài đăng trên blog về chủ đề này - bất cứ thứ gì cô ấy viết trên blog của mình đều hoàn toàn vô giá - hãy đọc nó, đọc nó - sống theo nó!




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tại sao SQL Server không xử lý mã này thất thường?

  2. Cài đặt Business Intelligence Development Studio 2008

  3. Sử dụng CASE để trả về một chuỗi nếu không có kết quả từ câu lệnh SELECT

  4. Cụm chuyển đổi dự phòng SQL Server - xác định nút hoạt động

  5. Cách thêm cột nhận dạng vào bảng bằng TSQL và GUI trong SQL Server - Hướng dẫn SQL Server / T-SQL Phần 40