Stored Procedure là gì?

Stored Procedure là một nhóm các lệnh SQL được lưu trong sql server, nó hoạt động tương tự một hàm, do vậy nó có thể nhận các tham số đầu vào và trả về dữ liệu.

Cách tạo stored procedure:

CREATE PROCEDURE [Tên store] [các tham số]
AS
[Các lệnh SQL]

Ví dụ 1: tạo một stored procedure trong database northwind, nhận một tham số @customerID có kiểu dữ liệu varchar(5), khi chạy sẽ lấy tất cả Customer có CustomerId = .@customerID

USE northwind; 

GO 

CREATE PROCEDURE TestStore @customerID varchar( 5 ) 
AS 
  BEGIN 
      SELECT * 
      FROM   Customers 
      WHERE  CustomerID = @customerID; 
  END; 

Bấm F5 để chạy câu lệnh, procedure đã được tạo, bây giờ procedure này đã được lưu trong database NorthWind.
Để chạy procedure trên, bạn có thể chọn new script (Ctrl + N), thực hiện lệnh sau.

USE northwind; 

GO 

EXECUTE TestStore 
  'ANTON'; 

thực thi stored procedure

Khi nào bạn cần sử dụng Stored Procedure?

Khi bạn phải thực hiện một project lớn, đòi hỏi nghiêm ngặt về tốc độ thực thi thì Stored Procedure chính là một phần lời giải cho bạn. Stored Procedure cho tốc độ thực thi nhanh hơn so với các câu lệnh SQL Server thông thường, Stored Procedure đã được lưu sẵn tại SQL server, do vậy chương trình không cần gởi hàng ngàn dòng lệnh đến SQL Server. Nó chỉ cần gọi một dòng lệnh để thực thi Stored Procedure, điều này giúp tăng tốc độ thực thi.

Bên cạnh đó trong quá trình tạo Stored Procedure, SQL Server đã tối ưu hóa những dòng lệnh này, điều này giúp cho tốc độ thực thi cao hơn câu lệnh SQL thông thường rất nhiều.

Khi nào bạn không cần sử dụng Stored Procedure?

Store Procedured làm quá trình debug trở nên khó khăn hơn. Do vậy hãy nghĩ đến Stored Procedure như là phương án cuối cùng để tối ưu hóa tốc độ thực thi chương trình. Thực tế 90% các project bạn làm có size nhỏ và vừa, do vậy hãy ưu tiên sử dụng các thư viện ORM (Object Relation Mapping), như Entity Framework cho C#, TypeORM cho NodeJs. Chúng sẽ giúp bạn phát triển, bảo trì, debug chương trình dễ dàng hơn.

Câu hỏi: 

Stored Procedure cho tốc độ nhanh hơn các câu lệnh SQL thuần?

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

C# là một ngôn ngữ lập trình hướng đối tượng được phát triển bởi Microsoft, là phần khởi đầu cho kế hoạch .NET của họ. C# được miêu tả là ngôn ngữ có được sự cân bằng giữa C++, Visual Basic, Delphi và Java.

HTTP giúp kết nối các máy tính trên mạng Internet thông qua TCP/IP

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