Tôi đang làm việc trên luồng công việc như hệ thống. Tôi có một bảng nhiệm vụ và trường trạng thái. Giá trị cho trạng thái có thể là một trong những Mới, sẵn sàng, xử lý, lỗi, hủy bỏ, thực hiện.Thực hành tốt nhất để thiết kế bảng để hỗ trợ cập nhật một trường nhanh hơn bằng máy chủ sql
Tôi có khoảng 7 quy trình sẽ được kích hoạt dựa trên tình huống khác nhau để thay đổi giá trị của trạng thái công việc. Hầu hết thời gian mỗi quá trình sẽ làm việc trên tập dữ liệu của riêng nó và mỗi lần nó chỉ xử lý lên đến 5000 bản ghi. Nhưng tôi vẫn thấy một số bế tắc nếu dữ liệu đạt khoảng 2 triệu bản ghi. Tôi kiểm tra với SQL Profiler, trông giống như một số tài nguyên trang liên quan. Tôi không tốt ở điều chỉnh hiệu suất máy chủ sql và không hiểu nó rất tốt.
Vì nhiệm vụ không hoạt động sẽ được lưu trữ mỗi ngày, tôi đang suy nghĩ để thiết kế lại bảng để hỗ trợ khoảng 10 triệu bản ghi.
ít sự lựa chọn có thể là:
- Tạo bảng phân chia dựa trên trạng thái.
- Tạo một bảng tổng thể với các dữ liệu tĩnh và bảng hỗ trợ dựa trên tình trạng
Có bất kỳ thực hành tốt cho loại tình hình?
Cảm ơn!
Cảm ơn bạn Siva, chúng tôi đang sử dụng SQL Server 2005 +. Và sẽ áp dụng cách ly như bạn đã đề xuất. Nhưng chúng tôi không yêu cầu khách hàng đó phải có Enterprise SQL Server. Vì vậy, phân vùng có thể là lựa chọn cho một số khách hàng có thể trả nhiều tiền hơn. –
Bảng nhiệm vụ có chỉ mục nhóm được xác định không? – gonsalu
Có. TaskId là khóa chính và kiểu int. Tôi đã cố gắng làm cho nó không được nhóm lại. Nhưng hiệu suất còn tệ hơn nữa. –