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

Nhóm chỉ mục trên các cột không nhận dạng để tăng tốc độ chèn hàng loạt?

Chà, tôi đã đưa nó vào thử nghiệm và việc đặt một chỉ mục theo cụm trên hai cột "xác định phân đoạn" sẽ làm tăng hiệu suất của bảng của tôi.

Việc chèn một đoạn bây giờ tương đối nhanh so với tình huống tôi có khóa IDENTITY theo nhóm và nhanh như khi tôi không có bất kỳ chỉ mục nhóm nào. Xóa một đoạn nhanh hơn so với việc có hoặc không có chỉ mục nhóm.

Tôi nghĩ rằng thực tế là tất cả các bản ghi tôi muốn xóa hoặc chèn đều được đảm bảo là tất cả cùng nhau trên một phần nhất định của đĩa cứng làm cho các bảng nhanh hơn - điều đó có vẻ hợp lý với tôi.

Cập nhật :Sau một năm kinh nghiệm với thiết kế này, tôi có thể nói rằng để cách tiếp cận này hoạt động, cần phải lên lịch xây dựng lại tất cả các chỉ mục thường xuyên (chúng tôi thực hiện mỗi tuần một lần). Nếu không, các chỉ mục trở nên phân mảnh rất sớm và hiệu suất bị mất. Tuy nhiên, chúng tôi đang trong quá trình di chuyển sang một thiết kế cơ sở dữ liệu mới với các bảng được phân vùng, về cơ bản tốt hơn về mọi mặt - ngoại trừ chi phí giấy phép Máy chủ Doanh nghiệp, nhưng chúng tôi đã quên điều đó. Ít nhất thì tôi có.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Lỗi trên T-Sql khi sử dụng con trỏ

  2. SQL Server:tìm các bản sao trong bảng dựa trên các giá trị trong một cột duy nhất

  3. Chuyển đổi số tháng thành hàm tên tháng trong SQL

  4. Tiêu đề cột T-SQL Pivot / Unpivot (Transpose) cần thiết làm hàng dữ liệu

  5. Tạo một hàng riêng biệt nếu một cột chứa giá trị được phân tách bằng dấu phẩy