Stored Procedure trong SQL: Hướng dẫn và Cách Tối Ưu
· 3 min read
1. Stored Procedure là gì?
Stored Procedure (thủ tục lưu trữ) là một tập hợp các câu lệnh SQL được lưu trữ trong cơ sở dữ liệu và có thể được thực thi nhiều lần mà không cần viết lại.
Lợi ích của Stored Procedure:
- Hiệu suất cao: Giảm chi phí biên dịch câu lệnh SQL.
- Tăng cường bảo mật: Giới hạn quyền truy cập vào dữ liệu.
- Dễ bảo trì: Tách biệt logic xử lý khỏi mã ứng dụng.
- Giảm tải cho ứng dụng: Giảm số lượng truy vấn gửi từ ứng dụng đến server.
2. Cách tạo Stored Procedure trong SQL Server
Sử dụng cú pháp sau để tạo một Stored Procedure:
CREATE PROCEDURE GetCustomerByID
@CustomerID INT
AS
BEGIN
SELECT * FROM Customers WHERE CustomerID = @CustomerID;
END;
Gọi Stored Procedure:
EXEC GetCustomerByID @CustomerID = 1;
3. Ví dụ thực tế về Stored Procedure
Dưới đây là một Stored Procedure tính tổng doanh thu theo tháng:
CREATE PROCEDURE GetMonthlyRevenue
@Year INT,
@Month INT
AS
BEGIN
SELECT SUM(TotalAmount) AS Revenue
FROM Orders
WHERE YEAR(OrderDate) = @Year AND MONTH(OrderDate) = @Month;
END;
Gọi Stored Procedure:
EXEC GetMonthlyRevenue @Year = 2024, @Month = 3;
4. Cách tối ưu Stored Procedure
4.1. Sử dụng Index để tăng tốc truy vấn
Trước khi tạo Stored Procedure, hãy đảm bảo các cột lọc có index phù hợp.
CREATE INDEX idx_orderdate ON Orders (OrderDate);
4.2. Tránh sử dụng SELECT *
Chỉ lấy các cột cần thiết thay vì lấy tất cả dữ liệu.
SELECT OrderID, CustomerID, TotalAmount FROM Orders WHERE OrderDate >= '2024-01-01';