Những thói quen tốt khi viết câu lệnh T-SQL- P8
Số trang: 5
Loại file: pdf
Dung lượng: 285.85 KB
Lượt xem: 11
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- p8, 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- P8FREEPROCCACHE. Lệnh này xóa bỏ toàn bộ sơ đồthực thi trong bộ nhớ. Tuy nhiên tôi cũng xin có lờilưu ý rằng bạn không nên sử dụng lệnh này khi làmviệc trong doanh nghiệp bởi nó sẽ xóa bỏ toàn bộ sơđồ lưu cache. Điều này có thể gây ra những tác độngto lớn tới công việc của bạn do những sơ đồ thườngdùng đều bị biên dịch lại. Sau khi giải phóng cachethủ tục, tôi chạy tiếp hai câu lệnh SELECT khácnhau. Cuối cùng, tôi liên kết thông tin từ các DMVlại để trả về thông tin sơ đồ lưu cache của hai câulệnh SELECT. Sau đây là kết quả nhận được khi chạyđoạn code trên:exec_count size plan_text---------- ----- ---------1 40960 SELECT * FROMAdventureWorks.Production.Product -- return records1 40960 SELECT * FROMAdventureWorks.Production.ProductNhư bạn thấy, hai câu lệnh SELECT trên tạo ra haisơ đồ lưu cache khác nhau và mỗi sơ đồ được thực thi1 lần (exec_count number). Sở dĩ chuyện này xảy ralà vì hai câu lệnh SELECT không hoàn toàn giốngnhau. Câu lệnh SELECT thứ hai hơi khác một chút vìcó thêm ghi chú. Ngoài ra, các bạn hãy để ý kích cỡsơ đồ: 40960 byte - kích cỡ bộ nhớ quá lớn dành chomột câu lệnh T-SQL rất đơn giản. Vì thế, bạn nên cẩnthận khi thêm ghi chú vào code, tránh để máy chủ tạora nhiều sơ đồ thừa.Một nguyên nhân khác dẫn đến việc tạo ra nhiều sơđồ lưu cache cho những câu lệnh T-SQL giống nhauđó là các khoảng trắng. Sau đây là hai câu lệnh giốngnhau ngoại trừ các khoảng trắng:SELECT * FROMAdventureWorks.Production.ProductGOSELECT * FROMAdventureWorks.Production.ProductGONhư bạn thấy, câu lệnh thứ hai có chứa vài khoảngtrắng thừa giữa FROM và tên đối tượng. Các khoảngtrắng thừa này là nguyên nhân khiến máy chủ SQLnghĩ rằng đây là hai câu lệnh khác nhau, từ đó dẫnđến việc tạo ra hai sơ đồ lưu cache khác nhau cho haicâu lệnh. Trong trường hợp này, hiển nhiên bạn dễdàng nhận ra sự khác biệt giữa hai câu lệnh bởi lẽ cáckhoảng trắng nằm ở giữa câu lệnh. Thế nhưng nếubạn vô tình thêm khoảng trắng phía trước mệnh đềSELECT hoặc phía cuối câu lệnh, bạn sẽ không thểnhận ra các khoảng trắng và câu lệnh sẽ trông giốnghệt nhau. Tuy nhiên, máy chủ SQL thì có thể nhìnthấy, và thế là nó tạo ra nhiều sơ đồ lưu cache vì cáckhoảng trắng thừa đó.Khi máy chủ SQL nhìn vào đoạn code, nó sẽ đem sosánh với các sơ đồ sẵn có trong cache thủ tục. Nếuxác định đoạn code giống hệt sơ đồ lưu cache sẵn có,máy chủ SQL không cần biên dịch và lưu sơ đồ vàobộ nhớ nữa. Máy chủ SQL sẽ tái sử dụng các sơ đồcó trong cache đối với những đoạn code giống nhau.Để tối ưu hóa mã nguồn, bạn cần đảm bảo việc tái sửdụng sơ đồ lưu cache bất cứ khi nào có thể.Khi bạn đang xây dựng mã nguồn ứng dụng trong đócó sử dụng các câu lệnh T-SQL mà không dùng SP,bạn cần phải cẩn trọng để đảm bảo nhận được sơ đồcó khả năng tái sử dụng cao nhất có thể. Chúng tathường dùng phương pháp copy - paste khi muốn sửdụng cùng một đoạn code trong các phần khác nhaucủa ứng dụng. Tuy nhiên như bạn thấy trong các vídụ trên, bạn cần cẩn thận khi thực hiện thao tác này.Chỉ cần một vài khoảng trắng thừa hoặc một ghi chúnhỏ cũng khiến máy chủ SQL tạo ra nhiều sơ đồ lưucache khác nhau.Nâng hiệu suất lên tối đa và giảm thiểu bộ nhớĐể tối ưu hóa mã nguồn, nếu chỉ quan tâm đến thiếtkế cơ sở dữ liệu thôi thì chưa đủ, bạn còn cần để ýđến từng chi tiết nhỏ hơn chẳng hạn như các khoảngtrắng và ghi chú. Nếu bạn không lưu tâm đến nhữngchi tiết quanh các câu lệnh T-SQL giống nhau, bạn cóthể khiến máy chủ SQL tạo ra nhiều sơ đồ lưu cache.Có thể việc có vài sơ đồ lưu cache thừa trong bộ nhớkhông phải quá quan trọng, tuy nhiên là một lập trìnhviên, chúng ta cần cố gắng hết khả năng để nâng caohiệu suất máy chủ và giảm thiểu tài nguyên sử dụng.Và một trong những cách để thực hiện mục tiêu trên,đó là tránh tạo ra nhiều sơ đồ lưu cache cho các câulệnh T-SQL giống nhau. ...
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- P8FREEPROCCACHE. Lệnh này xóa bỏ toàn bộ sơ đồthực thi trong bộ nhớ. Tuy nhiên tôi cũng xin có lờilưu ý rằng bạn không nên sử dụng lệnh này khi làmviệc trong doanh nghiệp bởi nó sẽ xóa bỏ toàn bộ sơđồ lưu cache. Điều này có thể gây ra những tác độngto lớn tới công việc của bạn do những sơ đồ thườngdùng đều bị biên dịch lại. Sau khi giải phóng cachethủ tục, tôi chạy tiếp hai câu lệnh SELECT khácnhau. Cuối cùng, tôi liên kết thông tin từ các DMVlại để trả về thông tin sơ đồ lưu cache của hai câulệnh SELECT. Sau đây là kết quả nhận được khi chạyđoạn code trên:exec_count size plan_text---------- ----- ---------1 40960 SELECT * FROMAdventureWorks.Production.Product -- return records1 40960 SELECT * FROMAdventureWorks.Production.ProductNhư bạn thấy, hai câu lệnh SELECT trên tạo ra haisơ đồ lưu cache khác nhau và mỗi sơ đồ được thực thi1 lần (exec_count number). Sở dĩ chuyện này xảy ralà vì hai câu lệnh SELECT không hoàn toàn giốngnhau. Câu lệnh SELECT thứ hai hơi khác một chút vìcó thêm ghi chú. Ngoài ra, các bạn hãy để ý kích cỡsơ đồ: 40960 byte - kích cỡ bộ nhớ quá lớn dành chomột câu lệnh T-SQL rất đơn giản. Vì thế, bạn nên cẩnthận khi thêm ghi chú vào code, tránh để máy chủ tạora nhiều sơ đồ thừa.Một nguyên nhân khác dẫn đến việc tạo ra nhiều sơđồ lưu cache cho những câu lệnh T-SQL giống nhauđó là các khoảng trắng. Sau đây là hai câu lệnh giốngnhau ngoại trừ các khoảng trắng:SELECT * FROMAdventureWorks.Production.ProductGOSELECT * FROMAdventureWorks.Production.ProductGONhư bạn thấy, câu lệnh thứ hai có chứa vài khoảngtrắng thừa giữa FROM và tên đối tượng. Các khoảngtrắng thừa này là nguyên nhân khiến máy chủ SQLnghĩ rằng đây là hai câu lệnh khác nhau, từ đó dẫnđến việc tạo ra hai sơ đồ lưu cache khác nhau cho haicâu lệnh. Trong trường hợp này, hiển nhiên bạn dễdàng nhận ra sự khác biệt giữa hai câu lệnh bởi lẽ cáckhoảng trắng nằm ở giữa câu lệnh. Thế nhưng nếubạn vô tình thêm khoảng trắng phía trước mệnh đềSELECT hoặc phía cuối câu lệnh, bạn sẽ không thểnhận ra các khoảng trắng và câu lệnh sẽ trông giốnghệt nhau. Tuy nhiên, máy chủ SQL thì có thể nhìnthấy, và thế là nó tạo ra nhiều sơ đồ lưu cache vì cáckhoảng trắng thừa đó.Khi máy chủ SQL nhìn vào đoạn code, nó sẽ đem sosánh với các sơ đồ sẵn có trong cache thủ tục. Nếuxác định đoạn code giống hệt sơ đồ lưu cache sẵn có,máy chủ SQL không cần biên dịch và lưu sơ đồ vàobộ nhớ nữa. Máy chủ SQL sẽ tái sử dụng các sơ đồcó trong cache đối với những đoạn code giống nhau.Để tối ưu hóa mã nguồn, bạn cần đảm bảo việc tái sửdụng sơ đồ lưu cache bất cứ khi nào có thể.Khi bạn đang xây dựng mã nguồn ứng dụng trong đócó sử dụng các câu lệnh T-SQL mà không dùng SP,bạn cần phải cẩn trọng để đảm bảo nhận được sơ đồcó khả năng tái sử dụng cao nhất có thể. Chúng tathường dùng phương pháp copy - paste khi muốn sửdụng cùng một đoạn code trong các phần khác nhaucủa ứng dụng. Tuy nhiên như bạn thấy trong các vídụ trên, bạn cần cẩn thận khi thực hiện thao tác này.Chỉ cần một vài khoảng trắng thừa hoặc một ghi chúnhỏ cũng khiến máy chủ SQL tạo ra nhiều sơ đồ lưucache khác nhau.Nâng hiệu suất lên tối đa và giảm thiểu bộ nhớĐể tối ưu hóa mã nguồn, nếu chỉ quan tâm đến thiếtkế cơ sở dữ liệu thôi thì chưa đủ, bạn còn cần để ýđến từng chi tiết nhỏ hơn chẳng hạn như các khoảngtrắng và ghi chú. Nếu bạn không lưu tâm đến nhữngchi tiết quanh các câu lệnh T-SQL giống nhau, bạn cóthể khiến máy chủ SQL tạo ra nhiều sơ đồ lưu cache.Có thể việc có vài sơ đồ lưu cache thừa trong bộ nhớkhông phải quá quan trọng, tuy nhiên là một lập trìnhviên, chúng ta cần cố gắng hết khả năng để nâng caohiệu suất máy chủ và giảm thiểu tài nguyên sử dụng.Và một trong những cách để thực hiện mục tiêu trên,đó là tránh tạo ra nhiều sơ đồ lưu cache cho các câulệnh T-SQL giống nhau. ...
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