Nhận ghi nhật ký tối thiểu khi tải dữ liệu vào các bảng tạm thời


10

Ngay cả sau khi đọc Hướng dẫn hiệu suất tải dữ liệu , tôi vẫn không chắc có cần thêm gợi ý bảng TABLOCK vào bảng tạm thời trống, được xác định bằng một chỉ mục được nhóm để có được ghi nhật ký tối thiểu hay không.

Rõ ràng bảng tạm thời được tạo trong TempDB hoạt động ở chế độ khôi phục SIMPLE, vì vậy tôi đã nghĩ rằng đó là một ứng cử viên hoàn hảo để ghi nhật ký tối thiểu, tuy nhiên tôi không thể tìm thấy một đoạn để xác nhận nó.

Bảng tạm thời có phải là ứng cử viên để ghi nhật ký tối thiểu không và nếu có thì có nên thêm gợi ý TABLOCK như khuyến nghị cho các bảng cố định không?

Câu trả lời:


18

Tôi không chắc chắn nếu cần thêm TABLOCKgợi ý bảng vào một bảng tạm thời trống, được xác định bằng một chỉ mục được nhóm để có được ghi nhật ký tối thiểu.

Không. Các bảng tạm thời cục bộ ( #temp) là riêng tư đối với phiên tạo, do đó không cần có gợi ý khóa bảng. Một gợi ý khóa bảng sẽ được yêu cầu cho một bảng tạm thời toàn cầu ( ##temp) hoặc một bảng thông thường ( dbo.temp) được tạo trong tempdb, bởi vì chúng có thể được truy cập từ nhiều phiên.

Lưu ý rằng ngay cả khi tối ưu hóa ghi nhật ký tối thiểu đầy đủ không được áp dụng, các bảng được tạo ra tempdbcó lợi từ các tối ưu hóa khác như không cần phải ghi REDOthông tin. Bạn có thể kiểm tra xem liệu các hàng hoặc trang đang được ghi lại bằng cách sử dụng không có giấy tờ sys.fn_dblog. Ghi nhật ký thường xuyên sẽ có tính năng ghi nhật ký hàng như thế nào LOP_INSERT_ROWS.


Lưu ý rằng việc thêm TABLOCKvào bảng tạm thời cục bộ là bắt buộc để thực hiện song song với INSERT...SELECTcác truy vấn trong SQL Server 2016, xem bài viết Cơ sở tri thức Microsoft:

Hiệu suất kém khi bạn chạy INSERT .. CHỌN hoạt động trong SQL Server 2016

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.