Những thói quen tốt khi viết câu lệnh T-SQL- P7 potx

5 242 0
Những thói quen tốt khi viết câu lệnh T-SQL- P7 potx

Đang tải... (xem toàn văn)

Thông tin tài liệu

thủ tục cùng lúc không? Khoảng trống các sơ đồ lưu cache sử dụng là bao nhiêu? Trên đây là một số câu hỏi bạn cần trả lời để chắc rằng bạn đã tối ưu hóa cache thủ tục và giảm thiểu số lượng sơ đồ lưu cache mà ứng dụng tạo ra. Có một vài vấn đề nhỏ trong cách viết câu lệnh T-SQL của bạn là nguyên nhân khiến máy chủ SQL phải thực hiện thêm nhiều việc để biên dịch và lưu cache các sơ đồ thực thi cho cùng một đoạn code. Trước khi máy chủ SQL có thể tiến hành xử lý đoạn code T-SQL, nó cần tạo một bản sơ đồ thực thi. Để tạo bản sơ đồ thực thi, trước tiên máy chủ SQL phải tiêu tốn những nguồn tài nguyên giá trị như CPU nhằm biên dịch code T-SQL. Khi sơ đồ được tạo xong, nó sẽ được lưu cache để có thể tái sử dụng khi ứng dụng gọi cùng một câu lệnh T-SQL nhiều hơn một lần. Bạn có thể cải thiện hiệu suất máy chủ SQL nếu bạn viết câu lệnh T-SQL để tăng cường tái sử dụng sơ đồ lưu cache với những đoạn T-SQL thường xuyên được thực thi. Với sự xuất hiện của SQL Server 2005, Microsoft cung cấp các DMV (Dynamic Management Views - Cửa sổ quản lý động) cho phép bạn khám phá các sơ đồ lưu. Bằng cách sử dụng các DMV, bạn có thể tìm hiểu được nhiều điều về các sơ đồ lưu cache. Sau đây là danh sách tóm tắt những thứ bạn có thể nhận biết:  Các đoạn text liên quan tới sơ đồ lưu cache  Số lần sơ đồ lưu cache được thực thi  Kích cỡ sơ đồ lưu cache Ở đoạn sau của bài viết, tôi sẽ hướng dẫn các bạn cách sử dụng DMV để tìm hiểu thông tin sơ đồ lưu cache. Tạo nhiều sơ đồ vì các ghi chú hoặc khoảng trắng thừa Tôi chắc rằng các bạn đều ủng hộ ý tưởng đặt code vào các thủ tục lưu trữ (Stored Procedure - SP). Chúng ta thực hiện việc này nhằm tăng khả năng tái sử dụng code trong khuôn khổ một ứng dụng đơn lẻ hoặc trên nhiều ứng dụng. Tuy nhiên, không phải tất cả các đoạn code được thực thi bởi máy chủ SQL đều nằm trong các SP. Vài ứng dụng có thể được viết bằng các lệnh T-SQL dạng in-line (lệnh thô). Nếu bạn đang viết các đoạn mã T-SQL dạng thô, bạn cần phải cẩn thận khi ghi chú hoặc đặt khoảng trắng bởi nó có thể là nguyên nhân khiến máy chủ SQL tạo nhiều sơ đồ lưu cache cho cùng một đoạn code T- SQL. Sau đây là một ví dụ gồm hai câu lệnh T-SQL khác nhau: SELECT * FROM AdventureWorks.Production.Product GO SELECT * FROM AdventureWorks.Production.Product - - return records GO Như bạn thấy, tôi có hai câu lệnh T-SQL giống nhau. Cả hai đều trả về tất cả bản ghi từ bảng AdventureWorks.Production.Product. Vậy bạn nghĩ máy chủ SQL sẽ tạo ra bao nhiêu sơ đồ lưu cache khi chạy đoạn mã trên? Để trả lời câu hỏi này, tôi sẽ tìm hiểu thông tin sơ đồ lưu cache bằng cách sử dụng các DMV trong SQL Server 2005 và SQL Server 2008. Để xem các sơ đồ tạo bởi hai câu lệnh T-SQL trên, tôi sẽ chạy đoạn code sau: DBCC FREEPROCCACHE GO SELECT * FROM AdventureWorks.Production.Product GO SELECT * FROM AdventureWorks.Production.Product - - return records GO SELECT stats.execution_count AS exec_count, p.size_in_bytes as [size], [sql].[text] as [plan_text] FROM sys.dm_exec_cached_plans p outer apply sys.dm_exec_sql_text (p.plan_handle) sql join sys.dm_exec_query_stats stats ON stats.plan_handle = p.plan_handle GO Trong đoạn code trên, trước tiên tôi giải phóng cache thủ tục bằng cách chạy lệnh DBCC . được viết bằng các lệnh T-SQL dạng in-line (lệnh thô). Nếu bạn đang viết các đoạn mã T-SQL dạng thô, bạn cần phải cẩn thận khi ghi chú hoặc đặt khoảng trắng bởi nó có thể là nguyên nhân khi n. phải tiêu tốn những nguồn tài nguyên giá trị như CPU nhằm biên dịch code T-SQL. Khi sơ đồ được tạo xong, nó sẽ được lưu cache để có thể tái sử dụng khi ứng dụng gọi cùng một câu lệnh T-SQL nhiều. một lần. Bạn có thể cải thiện hiệu suất máy chủ SQL nếu bạn viết câu lệnh T-SQL để tăng cường tái sử dụng sơ đồ lưu cache với những đoạn T-SQL thường xuyên được thực thi. Với sự xuất hiện

Ngày đăng: 08/07/2014, 08:20

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan