Tại sao nên sử dụng Stored Procedure

Ở bài này ta sẽ đi sâu vào phân tích, tại sao nên sử dụng Stored Procedure.

1/ Stored Procedure được lưu trên SQL Server.

Để xem Procedure được tạo ở bài trước, bạn có thể làm như sau.

Vào databsae NorthWind, chọn Programmability, chọn Stored Procedureds, bạn sẽ thấy Procedure TestStore mình tạo ra ở bài trước.

xem stored procedure đã được tạo

Vì nó được lưu ở SQL Server, khi thực thi nó sẽ giảm lượng dữ liệu truyền đến Server, giúp tăng tốc độ thực thi của ứng dụng. Bạn chỉ cần gọi tên Procedured và truyền tham số vào, hàng trăm câu lệnh SQL có thể sẽ được thực hiện, thay vì phải truyền hàng trăm câu lệnh SQL đến Server.

Ví dụ: Lấy tất cả các Customer có CustomerID = 'ANTON';

Với Stored Procedure bạn chỉ cần truyền đến server lệnh: 

Use northwind;
GO
EXECUTE TestStore 'ANTON';

Không Stored Procedure, bạn phải truyền rất nhiều lệnh SQL:

Use northwind;
GO
SELECT * 
FROM   Customers 
WHERE  CustomerID = 'ANTON'; 

Đây là một bài toán đơn giản, rõ ràng với một bài toán phức tạp, Stored Procedure sẽ cho tốc độ thực thi tốt hơn.

2/ Stored Procedure giúp tái sử dụng mã.

Rõ ràng với một việc lặp đi lặp lại, sử dụng Stored Procedure là một phương thức tối ưu, vừa tái sử dụng được code đã viết, vừa tăng tốc độ thực thi ứng dụng cũng như dễ dàng bảo trì. Nếu phải thay đổi điều gì, bạn chỉ cần thay đổi Stored Procedure đã dùng.

3/ Tốc độ nhanh.

Ngoài lí do được lưu trữ ở server nên Stored Procedure cho tốc độ thực thi nhanh hơn, còn một lí do quan trọng nữa là Stored Procedure đã được lưu trong bộ nhớ của Server. Sau lần chạy đầu tiên, Stored Procedure đã được lưu vào bộ nhớ của server, ở các lần chạy sau, server chỉ cần gọi nó trực tiếp từ bộ nhớ, thay vì phải tải Stored Procedured vào bộ nhớ và thực thi.

4/ Tăng khả năng bảo mật.

Bạn có thể phân quyền các user để sử dụng Stored Procedure, do vậy có thể kiểm soát ai đang thực hiện các câu lệnh. Bên cạnh đó Stored Procedure có thể được dùng để chống lại SQL Injection thông qua việc truyền dữ liệu qua các tham số đầu vào thay vì các câu lệnh SQL trực tiếp.

Các môn học khác

Khoa học về dinh dưỡng, giáo trình giảm cân cho mọi người.

Docker là công nghệ ảo hóa container phổ biến nhất hiện nay. Nó giúp bạn phát triển và deploy phần mềm một cách dễ dàng hơn.

Chương trình thường được xây dựng quanh dữ liệu và logic để xử lý chúng. Nói cách khác: Program = Cấu trúc dữ liệu + giải thuật. Do vậy đây là môn học bắt buộc dành cho các lập trình viên.