Khắc phục sự cố Tính toán lại Công thức DAX
Bất cứ khi nào thay đổi xảy ra trong Mô hình Dữ liệu của sổ làm việc của bạn, Power Pivot sẽ thực hiện phân tích dữ liệu hiện có để xác định xem có cần tính toán lại hay không và thực hiện cập nhật theo cách hiệu quả nhất có thể.
Power Pivot xử lý những việc sau, trong quá trình tính toán lại các công thức DAX -
- Dependencies
- Trình tự tính toán lại cho các cột phụ thuộc
- Transactions
- Tính toán lại các hàm biến động
Sự phụ thuộc
Khi một cột phụ thuộc vào một cột khác và nội dung của cột khác đó thay đổi theo bất kỳ cách nào, tất cả các cột liên quan có thể cần được tính toán lại.
Power Pivot luôn thực hiện tính toán lại hoàn chỉnh cho một bảng, vì tính toán lại hoàn chỉnh hiệu quả hơn việc kiểm tra các giá trị đã thay đổi. Những thay đổi kích hoạt tính toán lại có thể bao gồm xóa cột, thay đổi kiểu dữ liệu số của cột hoặc thêm cột mới. Những thay đổi này được coi là những thay đổi lớn. Tuy nhiên, những thay đổi có vẻ nhỏ nhặt, chẳng hạn như thay đổi tên của cột cũng có thể kích hoạt tính toán lại. Điều này là do tên của các cột được sử dụng làm số nhận dạng trong công thức DAX.
Trong một số trường hợp, Power Pivot có thể xác định rằng các cột có thể bị loại trừ khỏi tính toán lại.
Trình tự tính toán lại cho các cột phụ thuộc
Sự phụ thuộc được tính toán trước khi tính toán lại. Nếu có nhiều cột phụ thuộc vào nhau, Power Pivot tuân theo trình tự của các phụ thuộc. Điều này đảm bảo rằng các cột được xử lý theo đúng thứ tự ở tốc độ tối đa.
Giao dịch
Các hoạt động tính toán lại hoặc làm mới dữ liệu diễn ra như một giao dịch. Điều này có nghĩa là nếu bất kỳ phần nào của hoạt động làm mới không thành công, các hoạt động còn lại sẽ được khôi phục. Điều này nhằm đảm bảo rằng dữ liệu không bị để ở trạng thái đã được xử lý một phần. Tuy nhiên, bạn không thể quản lý các giao dịch như khi thực hiện trong cơ sở dữ liệu quan hệ hoặc tạo các điểm kiểm tra.
Tính toán lại các chức năng dễ bay hơi
Các hàm DAX như NOW, RAND hoặc TODAY không có giá trị cố định và được gọi là các hàm biến động. Nếu các hàm DAX như vậy được sử dụng trong một cột được tính toán, thì việc thực hiện truy vấn hoặc lọc thường sẽ không khiến chúng được đánh giá lại để tránh các vấn đề về hiệu suất.
Kết quả cho các hàm DAX này chỉ được tính toán lại khi toàn bộ cột được tính toán lại. Các tình huống này bao gồm làm mới từ nguồn dữ liệu bên ngoài hoặc chỉnh sửa thủ công dữ liệu khiến đánh giá lại các công thức DAX có chứa các hàm này.
Tuy nhiên, các hàm như vậy sẽ luôn được tính toán lại nếu các hàm được sử dụng trong định nghĩa của Trường tính toán.