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

NewSequentialId trên UniqueIdentifier Clustered Index

Thông thường, bạn sẽ tạo các chỉ mục của mình với FILL FACTOR thích hợp để lại không gian trống trong tất cả các trang của bạn chỉ cho một trường hợp như vậy. Điều đó đang được nói, chỉ mục nhóm sẽ được sắp xếp lại khi không gian trống được lấp đầy.

Tôi biết bạn không muốn thảo luận về việc sử dụng GUID như một khóa được phân nhóm, nhưng đây là một trong những lý do khiến đây không phải là một phương pháp được khuyến khích.

Điều gì sẽ xảy ra là bạn sẽ có khối lượng chia trang ngày càng lớn, dẫn đến mức độ phân mảnh rất cao khi bạn tiếp tục chèn các hàng và bạn sẽ cần phải xây dựng lại chỉ mục của mình với tần suất cao hơn để giữ hiệu suất phù hợp.

Để có cách xử lý đầy đủ về chủ đề này, không có nguồn nào tốt hơn

Kim
Tripp's
Blog

Xin lưu ý thêm, khi bạn đang cân nhắc tạo chức năng tạo NewSequentialID của riêng mình, bạn có thể gặp vấn đề về thiết kế và nên xem xét lại kế hoạch của mình.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL Server có đảm bảo việc chèn tuần tự cột nhận dạng không?

  2. Luồng có điều kiện của máy chủ SQL

  3. Không bằng toán tử <>! =Trên NULL

  4. Các giá trị được phân tách bằng dấu phẩy bằng Truy vấn SQL

  5. Truy vấn SQL để đếm các bản ghi mỗi tháng