Những thói quen tốt khi viết câu lệnh T-SQL- P3
Số trang: 5
Loại file: pdf
Dung lượng: 284.17 KB
Lượt xem: 12
Lượt tải: 0
Xem trước 2 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Tham khảo tài liệu những thói quen tốt khi viết câu lệnh t-sql- p3, công nghệ thông tin, cơ sở dữ liệu phục vụ nhu cầu học tập, nghiên cứu và làm việc hiệu quả
Nội dung trích xuất từ tài liệu:
Những thói quen tốt khi viết câu lệnh T-SQL- P3SQL và không có ý nghĩa gì nếu tập hợp kết quả củabạn chỉ bao gồm những bản ghi độc nhất.Chỉ dùng UNION khi cầnCũng giống như trường hợp từ khóa DISTINCT, toántử UNION đòi hỏi thêm thao tác SORT để máy chủSQL có thể loại bỏ những kết quả trùng lặp. Nếu bạnbiết trước danh sách kết quả trả về không có kết quảnào giống nhau thì thao tác sắp xếp mà máy chủ SQLphải thực hiện trở nên không cần thiết. Bởi vậy khibạn cần dùng toán tử UNION để nối hai tập hợp bảnghi với nhau, trong đó các bản ghi là độc nhất khôngtrùng lặp, tốt hơn bạn nên dùng toán tử UNION ALL.Toán tử UNION ALL không loại bỏ các bản ghitrùng lặp bởi vậy sẽ giảm nhẹ phần công việc chomáy chủ SQL trong quá trình xử lý do không phảithực hiện thao tác sắp xếp. Giảm bớt công việc chomáy chủ SQL đồng nghĩa với việc thao tác xử lý sẽđược thực hiện nhanh hơn.Áp dụng các thói quen tốt để code nhanh hơnCó rất nhiều lý do để tập luyện cho mình quen với lốiviết code tối ưu. Khi bạn áp dụng thành thạo nhữngthủ thuật nhỏ nêu trên và biến nó thành thói quen mỗikhi viết câu lệnh T-SQL, bạn sẽ tránh được rủi ro cóthể xảy ra khi cơ sở dữ liệu thay đổi, đồng thời cảithiện hiệu suất làm việc của máy chủ nhờ giảm thiểulưu lượng truyền tải qua mạng. Những thủ thuật rấtđơn giản này còn giúp bạn tận dụng tốt hơn tàinguyên máy chủ trong quá trình xử lý câu lệnh.Để nâng cao hiệu suất máy chủ SQL và giảm thiểucác lỗi tiềm tàng cho ứng dụng, chúng ta cần phải tậpviết code câu lệnh T-SQL một cách tối ưu nhất.Trong phần đầu của bài viết, các bạn đã được giớithiệu một số thủ thuật hữu ích giúp máy chủ giảm bớtnhững thao tác thừa. Phần hai này sẽ tập trung vàoviệc làm thế nào để tối ưu hóa thủ tục lưu trữ đanăng.Thủ tục lưu trữ đa năngTrước khi bước vào vấn đề làm thế nào để tối ưu hóathủ tục lưu trữ đa năng (Jack Of All Trades StoredProcedure - SP), chúng ta cần có một chút khái niệmvề loại thủ tục này. Thủ tục lưu trữ đa năng là thủ tụcchấp nhận nhiều tham số khác nhau có liên quan đếnthủ tục. Dựa trên các tham số được truyền vào, thủtục lưu trữ đa năng xác định bản ghi nào sẽ được trảvề. Sau đây là một ví dụ về thủ tục lưu trữ đa năng:CREATE PROCEDURE JackOfAllTrades(@SalesOrderID int = NULL ,@SalesOrderDetailIDint = NULL ,@CarrierTrackingNumbernvarchar(25) = NULL)ASSELECT * FROMAdventureWorks.Sales.SalesOrderDetailWHERE (SalesOrderID =@SalesOrderID or @SalesOrderID ISNULL) AND (SalesOrderDetailID =@SalesOrderDetailID or @SalesOrderDetailID ISNULL) AND (CarrierTrackingNumber =@CarrierTrackingNumber or @CarrierTrackingNumberIS NULL)GOỞ đây SP JackOfAllTrades chấp nhận ba tham sốkhác nhau. Tất cả các tham số này có giá trị mặc địnhlà NULL. Khi một giá trị được truyền vào, nó sẽđược sử dụng như một tham số trong mệnh đềWHERE để ràng buộc các bản ghi trả về. Mỗi thamsố trong SP được dùng để xây dựng một mệnh đềWHERE phức tạp chứa logic sau đây trong mệnh đềWHERE đối với mỗi tham số truyền vào:( = @PARM or @PARM ISNULL)Logic trên cho biết nếu @PARM được truyền giá trịnon-null thì sẽ ràng buộc bản ghi trả về để chắc chắn
Nội dung trích xuất từ tài liệu:
Những thói quen tốt khi viết câu lệnh T-SQL- P3SQL và không có ý nghĩa gì nếu tập hợp kết quả củabạn chỉ bao gồm những bản ghi độc nhất.Chỉ dùng UNION khi cầnCũng giống như trường hợp từ khóa DISTINCT, toántử UNION đòi hỏi thêm thao tác SORT để máy chủSQL có thể loại bỏ những kết quả trùng lặp. Nếu bạnbiết trước danh sách kết quả trả về không có kết quảnào giống nhau thì thao tác sắp xếp mà máy chủ SQLphải thực hiện trở nên không cần thiết. Bởi vậy khibạn cần dùng toán tử UNION để nối hai tập hợp bảnghi với nhau, trong đó các bản ghi là độc nhất khôngtrùng lặp, tốt hơn bạn nên dùng toán tử UNION ALL.Toán tử UNION ALL không loại bỏ các bản ghitrùng lặp bởi vậy sẽ giảm nhẹ phần công việc chomáy chủ SQL trong quá trình xử lý do không phảithực hiện thao tác sắp xếp. Giảm bớt công việc chomáy chủ SQL đồng nghĩa với việc thao tác xử lý sẽđược thực hiện nhanh hơn.Áp dụng các thói quen tốt để code nhanh hơnCó rất nhiều lý do để tập luyện cho mình quen với lốiviết code tối ưu. Khi bạn áp dụng thành thạo nhữngthủ thuật nhỏ nêu trên và biến nó thành thói quen mỗikhi viết câu lệnh T-SQL, bạn sẽ tránh được rủi ro cóthể xảy ra khi cơ sở dữ liệu thay đổi, đồng thời cảithiện hiệu suất làm việc của máy chủ nhờ giảm thiểulưu lượng truyền tải qua mạng. Những thủ thuật rấtđơn giản này còn giúp bạn tận dụng tốt hơn tàinguyên máy chủ trong quá trình xử lý câu lệnh.Để nâng cao hiệu suất máy chủ SQL và giảm thiểucác lỗi tiềm tàng cho ứng dụng, chúng ta cần phải tậpviết code câu lệnh T-SQL một cách tối ưu nhất.Trong phần đầu của bài viết, các bạn đã được giớithiệu một số thủ thuật hữu ích giúp máy chủ giảm bớtnhững thao tác thừa. Phần hai này sẽ tập trung vàoviệc làm thế nào để tối ưu hóa thủ tục lưu trữ đanăng.Thủ tục lưu trữ đa năngTrước khi bước vào vấn đề làm thế nào để tối ưu hóathủ tục lưu trữ đa năng (Jack Of All Trades StoredProcedure - SP), chúng ta cần có một chút khái niệmvề loại thủ tục này. Thủ tục lưu trữ đa năng là thủ tụcchấp nhận nhiều tham số khác nhau có liên quan đếnthủ tục. Dựa trên các tham số được truyền vào, thủtục lưu trữ đa năng xác định bản ghi nào sẽ được trảvề. Sau đây là một ví dụ về thủ tục lưu trữ đa năng:CREATE PROCEDURE JackOfAllTrades(@SalesOrderID int = NULL ,@SalesOrderDetailIDint = NULL ,@CarrierTrackingNumbernvarchar(25) = NULL)ASSELECT * FROMAdventureWorks.Sales.SalesOrderDetailWHERE (SalesOrderID =@SalesOrderID or @SalesOrderID ISNULL) AND (SalesOrderDetailID =@SalesOrderDetailID or @SalesOrderDetailID ISNULL) AND (CarrierTrackingNumber =@CarrierTrackingNumber or @CarrierTrackingNumberIS NULL)GOỞ đây SP JackOfAllTrades chấp nhận ba tham sốkhác nhau. Tất cả các tham số này có giá trị mặc địnhlà NULL. Khi một giá trị được truyền vào, nó sẽđược sử dụng như một tham số trong mệnh đềWHERE để ràng buộc các bản ghi trả về. Mỗi thamsố trong SP được dùng để xây dựng một mệnh đềWHERE phức tạp chứa logic sau đây trong mệnh đềWHERE đối với mỗi tham số truyền vào:( = @PARM or @PARM ISNULL)Logic trên cho biết nếu @PARM được truyền giá trịnon-null thì sẽ ràng buộc bản ghi trả về để chắc chắn
Tìm kiếm theo từ khóa liên quan:
cơ sở dữ liệu quan hệ cơ sở dữ liệu quan hệ database relationship thiết kế cơ sở dữ liệu quan hệ phương pháp thiết kế ngôn ngữ sqlGợi ý tài liệu liên quan:
-
Giáo trình Cơ sở dữ liệu: Phần 2 - TS. Nguyễn Hoàng Sơn
158 trang 293 0 0 -
Giáo trình Lập trình quản lý với Microsoft Access 2013 toàn tập: Phần 1
195 trang 236 0 0 -
Xây dựng ontology cho hệ thống truy vấn dữ liệu tùy chọn
5 trang 143 0 0 -
Mô tả công việc Chuyên gia cố vấn UI-UX
1 trang 98 0 0 -
26 trang 72 0 0
-
54 trang 69 0 0
-
Giáo trình Nhập môn cơ sở dữ liệu: Phần 2 - Trần Thành Trai
145 trang 68 0 0 -
Giáo trình Tin học ứng dụng trong kinh doanh
170 trang 58 0 0 -
Bài giảng Cơ sở dữ liệu - Hồ Cẩm Hà
163 trang 53 0 0 -
Đề thi Thực hành Cơ sở dữ liệu - Đề số 10
1 trang 47 1 0