Các ORM (ánh xạ quan hệ đối tượng) không loại trừ lẫn nhau với các thủ tục được lưu trữ. Hầu hết các ORM có thể sử dụng các thủ tục được lưu trữ. Hầu hết các ORM tạo Thủ tục lưu trữ nếu bạn chọn. Vì vậy, vấn đề không phải là hoặc.
Các ORM có thể tạo SQL không được chấp nhận (về hiệu suất) và đôi khi bạn có thể muốn ghi đè SQL đó bằng SQL thủ công. Một trong những cách để thực hiện điều này là bằng cách sử dụng SP (thủ tục được lưu trữ).
Trong DotNet, Không sử dụng các quy trình được lưu trữ nếu:
Nếu bạn không quen thuộc với các thủ tục được lưu trữ (không phải trường hợp của bạn, nhưng được bao gồm để hoàn thiện).
Nếu bạn không muốn giới thiệu một lớp phức tạp và đa dạng hóa cho dự án của bạn.
Bạn đang tạo một ứng dụng nên hoạt động với các cơ sở dữ liệu khác nhau hoặc sẽ phải được nhân rộng trên một số máy chủ cơ sở dữ liệu (hạn chế cuối cùng này chỉ có thể áp dụng cho một số cơ sở dữ liệu).
Lưu ý rằng các kích hoạt không được so sánh với ORM. Kích hoạt làm các chức năng tốt hơn không có trong mã ứng dụng của bạn (chẳng hạn như ghi nhật ký hoặc đồng bộ hóa dữ liệu trên cơ sở dữ liệu).
Một số người thích sử dụng Quy trình được lưu trữ hơn SQL trong mã vì các lý do khác nhau, chẳng hạn như bảo mật (ví dụ để ngăn chặn việc tiêm SQL) và cho tốc độ được yêu cầu của họ. Tuy nhiên, điều này có phần gây tranh cãi và cần thảo luận chi tiết.
Nếu ORM của bạn không thể tạo Thủ tục lưu trữ và bạn phải viết một hệ thống lớn, thì bạn cần phải cân nhắc mã hóa thêm dựa trên trường hợp của bạn.