Những thói quen tốt khi viết câu lệnh T-SQL- P6
Số trang: 5
Loại file: pdf
Dung lượng: 284.76 KB
Lượt xem: 15
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- p6, 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- P6“quét chỉ mục” để xử lý truy vấn. Điều đó có nghĩanó phải đọc lần lượt toàn bộ chỉ mục trước khi có thểhoàn thành yêu cầu truy vấn và trả về bản ghi chứamột giá trị SalesOrderID. Ngược lại, phiên bản V2của SP lưu trữ đa năng có thể sử dụng thao tác “tìmkiếm chỉ mục” với khóa chỉ mục cụm trên bảngSalesOrderDetail để lấy trực tiếp những bản ghi nhấtđịnh có chứa SalesOrderID bằng 43659 một cáchnhanh chóng. Thao tác “tìm kiếm chỉ mục” tối ưuhơn thao tác “quét chỉ mục” rất nhiều, nhưng cụ thểnhiều như thế nào?Việc đánh giá khoản I/O tiết kiệm được nhờ dùngphiên bản SP lưu trữ đa năng V2 có thể thực hiệnbằng nhiều cách. Ta sẽ chạy đoạn T-SQL sau đây:SET STATISTICS IO ONGOEXEC JackOfAllTrades @SalesOrderID= 43659GOEXEC JackOfAllTrades_V2@SalesOrderID = 43659GOỞ đây tôi sử dụng lệnh “SET STATISTICS IO ON”nên kết quả của 2 SP đang thực thi sẽ hiển thị sốlượng I/O mỗi lệnh đòi hỏi để xử lý truy vấn. Dướiđây là kết quả nhận được:(12 row(s) affected)Table SalesOrderDetail. Scancount 1, logical reads 264,physical reads 0, read-ahead reads0, lob logical reads 0, lobphysical reads 0, lob read-aheadreads 0.(1 row(s) affected)(12 row(s) affected)Table SalesOrderDetail. Scancount 1, logical reads 3, physicalreads 0, read-ahead reads 0, lob logical reads 0, lobphysical reads 0, lob read-aheadreads 0.(1 row(s) affected)Khi nhìn kết quả trên, ta có thể thấy hiệu suất của SPlưu trữ đa năng đầu tiên là 1 lần quét và 264 lần đọclogic. Ngược lại phiên bản V2 có cùng số lần quét chỉmục nhưng chỉ cần thực hiện 3 lần đọc logic để xử lýtruy vấn. Khoản I/O tiết kiệm đc là 261. Con số nàycó vẻ không thấm tháp gì, tuy nhiên với trường hợpbạn phải gọi đi gọi lại SP trong một vòng lặp nào đóchẳng hạn, hiệu suất sẽ được cải thiện một cách rõ rệtgiữa hai phiên bản SP.Cải thiện lượng I/O nhờ sử dụng SQL động đượcthông số hóaSau khi đọc hết phần này, bạn cần hiểu được lý do vìsao máy chủ SQL lại đưa ra bản sơ đồ thực thi kémhiệu quả. Trên đây máy chủ SQL đã coi logic“@PARM IS NULL” như một hằng số. Bởi vậy nóquyết định cần phải thực hiện thao tác “quét chỉ mục”để xử lý phiên bản thủ tục lưu trữ đa năng đầu tiên.Như chúng ta đã biết, thao tác quét (SCAN) luônchậm hơn thao tác tìm kiếm (SEEK). Bằng cách viếtlại phiên bản SP lưu trữ đa năng V2 có sử dụng T-SQL động, tôi đã loại bỏ được biểu thức hằng sốtrong mệnh đề WHERE của câu lệnh T-SQL. Nhờvậy máy chủ SQL đã tìm được phương pháp đúngđắn hơn đó là sử dụng thao tác “tìm kiếm chỉ mụccụm”. Nếu trang web của bạn có sử dụng thủ tục lưutrữ đa năng, hãy thử viết lại nó bằng SQL động đượcthông số hóa và chờ xem hiệu suất sẽ được cải thiệnthế nào.Trong phần ba này, bài viết sẽ giới thiệu cho bạncách viết câu lệnh T-SQL để đẩy mạnh việc tái sửdụng sơ đồ lưu cache (bộ nhớ đệm). Hiểu rõ vấn đềcác khoảng trắng và ghi chú tác động thế nào tới việctạo sơ đồ mới lưu cache hay tái sử dụng sơ đồ sẵn cósẽ giúp bạn giảm thiểu số lượng sơ đồ mà ứng dụngcủa bạn phải lưu cache.Khám phá sơ đồ lưu bộ nhớ đệmBạn đã tận dụng được lợi thế từ việc lưu sơ đồ trênbộ nhớ đệm chưa? Bạn đã khai thác các sơ đồ lưucache đến mức nào? Ứng dụng của bạn chỉ sử dụngchúng một lần hay tận dụng nhiều lần? Bạn có nhiềusơ đồ lưu cache cho cùng một truy vấn trong cache
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- P6“quét chỉ mục” để xử lý truy vấn. Điều đó có nghĩanó phải đọc lần lượt toàn bộ chỉ mục trước khi có thểhoàn thành yêu cầu truy vấn và trả về bản ghi chứamột giá trị SalesOrderID. Ngược lại, phiên bản V2của SP lưu trữ đa năng có thể sử dụng thao tác “tìmkiếm chỉ mục” với khóa chỉ mục cụm trên bảngSalesOrderDetail để lấy trực tiếp những bản ghi nhấtđịnh có chứa SalesOrderID bằng 43659 một cáchnhanh chóng. Thao tác “tìm kiếm chỉ mục” tối ưuhơn thao tác “quét chỉ mục” rất nhiều, nhưng cụ thểnhiều như thế nào?Việc đánh giá khoản I/O tiết kiệm được nhờ dùngphiên bản SP lưu trữ đa năng V2 có thể thực hiệnbằng nhiều cách. Ta sẽ chạy đoạn T-SQL sau đây:SET STATISTICS IO ONGOEXEC JackOfAllTrades @SalesOrderID= 43659GOEXEC JackOfAllTrades_V2@SalesOrderID = 43659GOỞ đây tôi sử dụng lệnh “SET STATISTICS IO ON”nên kết quả của 2 SP đang thực thi sẽ hiển thị sốlượng I/O mỗi lệnh đòi hỏi để xử lý truy vấn. Dướiđây là kết quả nhận được:(12 row(s) affected)Table SalesOrderDetail. Scancount 1, logical reads 264,physical reads 0, read-ahead reads0, lob logical reads 0, lobphysical reads 0, lob read-aheadreads 0.(1 row(s) affected)(12 row(s) affected)Table SalesOrderDetail. Scancount 1, logical reads 3, physicalreads 0, read-ahead reads 0, lob logical reads 0, lobphysical reads 0, lob read-aheadreads 0.(1 row(s) affected)Khi nhìn kết quả trên, ta có thể thấy hiệu suất của SPlưu trữ đa năng đầu tiên là 1 lần quét và 264 lần đọclogic. Ngược lại phiên bản V2 có cùng số lần quét chỉmục nhưng chỉ cần thực hiện 3 lần đọc logic để xử lýtruy vấn. Khoản I/O tiết kiệm đc là 261. Con số nàycó vẻ không thấm tháp gì, tuy nhiên với trường hợpbạn phải gọi đi gọi lại SP trong một vòng lặp nào đóchẳng hạn, hiệu suất sẽ được cải thiện một cách rõ rệtgiữa hai phiên bản SP.Cải thiện lượng I/O nhờ sử dụng SQL động đượcthông số hóaSau khi đọc hết phần này, bạn cần hiểu được lý do vìsao máy chủ SQL lại đưa ra bản sơ đồ thực thi kémhiệu quả. Trên đây máy chủ SQL đã coi logic“@PARM IS NULL” như một hằng số. Bởi vậy nóquyết định cần phải thực hiện thao tác “quét chỉ mục”để xử lý phiên bản thủ tục lưu trữ đa năng đầu tiên.Như chúng ta đã biết, thao tác quét (SCAN) luônchậm hơn thao tác tìm kiếm (SEEK). Bằng cách viếtlại phiên bản SP lưu trữ đa năng V2 có sử dụng T-SQL động, tôi đã loại bỏ được biểu thức hằng sốtrong mệnh đề WHERE của câu lệnh T-SQL. Nhờvậy máy chủ SQL đã tìm được phương pháp đúngđắn hơn đó là sử dụng thao tác “tìm kiếm chỉ mụccụm”. Nếu trang web của bạn có sử dụng thủ tục lưutrữ đa năng, hãy thử viết lại nó bằng SQL động đượcthông số hóa và chờ xem hiệu suất sẽ được cải thiệnthế nào.Trong phần ba này, bài viết sẽ giới thiệu cho bạncách viết câu lệnh T-SQL để đẩy mạnh việc tái sửdụng sơ đồ lưu cache (bộ nhớ đệm). Hiểu rõ vấn đềcác khoảng trắng và ghi chú tác động thế nào tới việctạo sơ đồ mới lưu cache hay tái sử dụng sơ đồ sẵn cósẽ giúp bạn giảm thiểu số lượng sơ đồ mà ứng dụngcủa bạn phải lưu cache.Khám phá sơ đồ lưu bộ nhớ đệmBạn đã tận dụng được lợi thế từ việc lưu sơ đồ trênbộ nhớ đệm chưa? Bạn đã khai thác các sơ đồ lưucache đến mức nào? Ứng dụng của bạn chỉ sử dụngchúng một lần hay tận dụng nhiều lần? Bạn có nhiềusơ đồ lưu cache cho cùng một truy vấn trong cache
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