Tại sao các thủ tục đã lưu trữ cần được biên dịch lại?

Tại sao các thủ tục đã lưu trữ cần được biên dịch lại?
Tại sao các thủ tục đã lưu trữ cần được biên dịch lại?
Anonim

Khuyến nghị. Khi một thủ tục được biên dịch lần đầu tiên hoặc được biên dịch lại, kế hoạch truy vấn của thủ tục được tối ưu hóa cho trạng thái hiện tại của cơ sở dữ liệu và các đối tượng của nó. … Một lý do khác để buộc một thủ tục phải biên dịch lại làđể chống lại hành vi "đánh hơi tham số" của quá trình biên dịch thủ tục.

Có nên tránh các thủ tục lưu trữ không?

Quy trình được lưu trữthúc đẩy các hoạt động phát triển xấu, đặc biệt là họ yêu cầu bạn vi phạm DRY (Không lặp lại chính bạn), vì bạn phải gõ ra danh sách các trường trong bảng cơ sở dữ liệu ít nhất nửa tá lần trở lên. Đây là một vấn đề lớn nếu bạn cần thêm một cột duy nhất vào bảng cơ sở dữ liệu của mình.

Sp_recompile là gì?

sp_recompilechỉ tìm kiếm một đối tượng trong cơ sở dữ liệu hiện tại. Các truy vấn được sử dụng bởi các thủ tục được lưu trữ hoặc trình kích hoạt và các hàm do người dùng xác định chỉ được tối ưu hóa khi chúng được biên dịch. … SQL Server tự động biên dịch lại các thủ tục, trình kích hoạt và chức năng do người dùng xác định được lưu trữ khi có lợi khi thực hiện việc này.

Biên dịch lại có tác dụng gì trong SQL?

RECOMPILE - chỉ địnhrằng sau khi truy vấn được thực thi, kế hoạch thực thi truy vấn của nó được lưu trữ trong bộ đệm sẽ bị xóa khỏi bộ đệm. Khi cùng một truy vấn được thực thi lại, sẽ không có gói nào hiện có trong bộ nhớ cache, do đó, truy vấn sẽ phải được biên dịch lại.

Các thủ tục được lưu trữ có hiệu quả không?

Điều này bao gồm những thứ như khoảng trắng và phân biệt chữ hoa chữ thường. Ít có khả năng là một truy vấn bên trong một thủ tục được lưu trữ sẽ thay đổi so với một truy vấn được nhúng trong mã. … Do đó, thủ tục được lưu trữtrên thực tế có thể thực thi nhanh hơnvì nó có thể sử dụng lại gói đã lưu trong bộ nhớ cache.

Đề xuất: