Archive for the ‘Stored Procedure’ Category

 

Parameter Sniffing

Trước khi vào bài viết, tôi muốn kể lại một vài tình huống tôi đã trải qua.
Tình huống 1: Một ngày nọ, một thành viên trong nhóm Database của tôi gặp một hiện tượng kì lạ. Stored Procedure mà cậu ấy viết khi chạy trên môi trường test rất tốt, thời gian xấp xỉ 1 giây. Tuy nhiên khi đưa lên hệ thống thật, thì lại chạy ì ạch mất khoảng 30 giây.
Cậu ấy thay hết giá trị vào stored, chạy trên SSMS dưới dạng câu SQL bình thường thì lại chạy tốt. Vò đầu bứt tai một hồi cậu ấy đâm ra nghi ngờ khi sử dụng Stored Procedure và có kế hoạch thay hết Stored đã viết bằng dynamic sql để tăng hiệu năng. … đọc tiếp »

Posted on 25/6/2013 by Guess Post: Vũ Minh Tâm | Categories: SQL Server Programming, Stored Procedure

Sử Dụng Hàm ROW_NUMBER

Hàm ROW_NUMBER được đưa vào từ bản 2005, dùng để trả về một con số tuần tự gắn với mỗi bản ghi (do đó có tên như vậy, số của bản ghi). Hàm này giúp giải quyết một số bài toán dễ dàng hơn. Bài viết này giới thiệu hai ứng dụng của hàm ROW_NUMBER, nếu bạn có sử dụng hàm này vào những tình huống khác xin hãy bổ sung ở phần comment.

1. Phân trang: Đây là ứng dụng khá phổ biến của hàm ROW_NUMBER và chỉ khai thác một dạng thức đơn giản của hàm. Trong ví dụ dưới đây tôi dựa vào dữ liệu từ database AdventureWorks. Giả sử tôi có một trang web hiển thị các đơn bán hàng trong tháng 6/2004. Vì có khá nhiều đơn hàng (hơn 2000) nên tôi muốn chia làm nhiều trang với mỗi trang chỉ hiển thị 100 đơn hàng. Khi muốn liệt kê đơn hàng cho trang thứ hai (đơn hàng từ 101-200) tôi có thể dùng code như sau: … đọc tiếp »

Posted on 11/10/2011 by Vũ Huy Tâm | Categories: SQL Server Programming, Stored Procedure

Lấy Về Giá Trị Từ Thủ Tục Bằng Output Parameter

Một tình huống tương đối thường gặp là bạn cần viết một thủ tục để ghi vào một bản ghi mới (ví dụ khách hàng), và trả về ID của bản ghi vừa được tạo (ID của khách hàng mới đó). SQL Server cung cấp một loại tham số gọi là output parameter dùng với thủ tục, để dùng trong tình huống trên. Để có thể dùng được output parameter cần liên quan đến cả hai phía: viết thủ tục và thực thi thủ tục.
Khi viết thủ tục, ở đoạn khai báo các tham số bạn cần đưa từ khóa “OUTPUT” vào sau tham số đó. Ở ví dụ sau, tham số @ID được khai báo là output parameter: … đọc tiếp »

Posted on 15/12/2010 by Vũ Huy Tâm | Categories: SQL Server Programming, Stored Procedure