Tôi vừa nâng cấp kho dữ liệu của chúng tôi lên SQL 2016. Tôi thấy một số biểu đồ thực sự thú vị trong Cửa hàng truy vấn (Tôi thích tính năng này!). Dưới đây là ví dụ kỳ lạ nhất mà tôi đã thấy. 22 kế hoạch cho cùng một truy vấn.
Nó khiến tôi xem xét điều chỉnh hiệu suất của quy trình ETL của tôi và ưu và nhược điểm của các bảng tạm thời và cách bạn có thể ảnh hưởng đến hành vi của kế hoạch thực hiện.
Quy trình ETL của tôi sử dụng một số quy trình được lưu trữ sử dụng kết hợp #tables tiêu chuẩn và tạm thời làm bảng phân tầng. Các #tables thường được sử dụng một lần và sau đó bỏ đi. Một số chỉ có vài ngàn hàng. Một số là hàng triệu. SSMS khuyên rằng có các chỉ mục bị thiếu, nhưng trên các bảng nhỏ hơn, liệu chúng có tạo ra đủ sự khác biệt để xứng đáng với nỗ lực thêm chúng không? Là số liệu thống kê tốt hơn đủ?
Tôi vừa đọc bài đăng trên blog Brent Ozar này về Thống kê trên các bảng Temp và bài viết của Paul White về các Bảng tạm thời trong các thủ tục được lưu trữ
Nó nói rằng các số liệu thống kê được tạo tự động, khi #table được truy vấn, và sau đó có lẽ được sử dụng bởi trình tối ưu hóa.
Câu hỏi của tôi là: Có nhiều điểm hay lợi ích trong việc tạo chỉ mục trên #table. Và / hoặc: Có đáng để cập nhật thống kê một cách rõ ràng như một bước trong quy trình được lưu trữ trước khi sử dụng nó trong các truy vấn được cung cấp mà chúng chỉ được sử dụng một lần.
Là các bước bổ sung và chi phí có đáng không? Nó sẽ dẫn đến kế hoạch thực hiện tốt hơn hoặc khác nhau đáng kể?