Database
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Database

Hội thảo trên web về Plan Explorer 3.0 - Mẫu và Hỏi và Đáp

Thứ sáu tuần trước, tôi đã tổ chức hội thảo trên web về Plan Explorer 3.0, các tính năng mới và lý do tại sao chúng tôi quyết định loại bỏ phiên bản PRO và tặng miễn phí tất cả các tính năng. . Nếu bạn bỏ lỡ, bạn có thể xem hội thảo trên web tại đây:

    Hội thảo trên web về Plan Explorer 3.0

Có rất nhiều câu hỏi tuyệt vời được gửi và tôi sẽ cố gắng giải quyết những câu hỏi đó ở đây. Chúng tôi cũng đã hỏi một số câu hỏi của riêng mình ở các điểm khác nhau trong quá trình trình bày và người dùng đã hỏi chi tiết về những câu hỏi đó, vì vậy tôi sẽ bắt đầu với các câu hỏi khảo sát. Đỉnh điểm của chúng tôi là 502 người tham dự và tôi sẽ chỉ ra trên biểu đồ bên dưới có bao nhiêu người trả lời mỗi câu hỏi. Vì câu hỏi đầu tiên được hỏi trước khi hội thảo trên web bắt đầu về mặt kỹ thuật, một số ít người đã trả lời câu hỏi đó.

Câu hỏi của khán giả

Q:Các mẫu mã có sẵn không?

A: Có, ba tệp phiên mà tôi đã sử dụng cho các bản trình diễn của mình có sẵn tại đây:

    Bản trình diễn hội thảo trên web Plan Explorer 3.0

Bạn có thể mở những truy vấn này trong bản dựng mới nhất của Plan Explorer, nhưng nếu bạn muốn chạy lại cục bộ bất kỳ truy vấn nào, bạn sẽ cần AdventureWorks2014 (với tập lệnh phóng to từ Jonathan Kehayias) và / hoặc cơ sở dữ liệu mẫu Wide World Importers mới.

Hỏi:Vậy mọi thứ hiển thị hôm nay đều nằm trong Plan Explorer mới, thống nhất, miễn phí? Nếu vậy, mô hình doanh thu mới của công ty bạn là gì?

A: Tôi luôn ngạc nhiên khi bắt gặp những người nghĩ rằng tất cả những gì chúng tôi cung cấp là Plan Explorer (tôi tận mắt chứng kiến ​​những điều này và cũng có một số nhận xét tương tự trên bài đăng trên blog của Greg). Bánh mì và bơ thực sự của chúng tôi nằm trong nền tảng giám sát của chúng tôi và chúng tôi hy vọng rằng trải nghiệm tích cực của bạn với Plan Explorer cũng sẽ giúp bạn thử các giải pháp khác của chúng tôi.

Hỏi:Chúng tôi vẫn đang sử dụng SQL Server 2008. Có lợi ích khi sử dụng PE và SSMS không?

A: Có, mặc dù bạn sẽ bỏ lỡ một số chức năng (chẳng hạn như Hồ sơ truy vấn trực tiếp), có rất nhiều thông tin có sẵn cho bạn so với SSMS và chúng tôi cố gắng làm cho các vấn đề cụ thể dễ khám phá hơn nhiều.

Hỏi:Hồ sơ truy vấn trực tiếp có hoạt động cho SQL Server 2014 không?

A: Có, miễn là Gói dịch vụ 1 được áp dụng, vì tính năng này dựa trên DMV đã được thêm vào SQL Server 2014 SP1.

Hỏi:Những hạn chế đối với SQL Server 2012 là gì? Tôi có thể sử dụng công cụ này không?

A: Chắc chắn rồi. Hạn chế mà tôi đưa ra trong hội thảo trên web về SQL Server 2012 trở xuống là họ không thể nắm bắt dữ liệu Hồ sơ truy vấn trực tiếp.

Hỏi:Có phải dữ liệu chỉ được thu thập cho SQL Server 2014 trở lên không? Điều gì sẽ xảy ra nếu SQL Server 2014 được cài đặt nhưng khả năng tương thích được đặt thành 2012?

A: Có, Hồ sơ truy vấn trực tiếp (và biểu đồ tài nguyên) hoạt động trong SQL Server 2014 (với ít nhất SP1), SQL Server 2016 và Cơ sở dữ liệu Azure SQL. Nó không bị ảnh hưởng bởi mức độ tương thích.

Hỏi:Phiên bản SQL Server nào là cần thiết để lấy lại thông tin thống kê chờ?

A: Việc thu thập thống kê chờ dựa trên phiên Sự kiện mở rộng, vì vậy bạn cần chạy trên SQL Server 2008 trở lên và thực thi trong ngữ cảnh của người dùng hoặc đăng nhập có đủ quyền để tạo và thả phiên Sự kiện mở rộng (CONTROL SERVER trong SQL Server 2008 và 2008 R2, và ALTER ANY EVENT SESSION trong SQL Server 2012 trở lên).

Hỏi:Làm cách nào để hiển thị Phân tích Chỉ mục hoặc biểu đồ Cấu hình Truy vấn Trực tiếp?

A: Có nhiều biến thể về hai câu hỏi này và từ âm thanh của nó, mọi người đang tích cực chơi với phiên bản mới trong hội thảo trên web và không nhìn thấy dữ liệu Phân tích chỉ mục hoặc dữ liệu Hồ sơ truy vấn trực tiếp. Nếu bạn đã nắm bắt được gói hiện có từ SSMS hoặc phiên bản cũ hơn của Plan Explorer, thì sẽ không có bất kỳ thông tin nào để hiển thị.

Để thu thập Phân tích Chỉ mục dữ liệu, bạn phải tạo kế hoạch ước tính hoặc kế hoạch thực tế từ bên trong Plan Explorer. Để xem lưới cột và chỉ mục, bạn phải chọn Thao tác đã chọn:trong menu thả xuống ở đầu tab Phân tích chỉ mục.

Để thu thập Hồ sơ truy vấn trực tiếp dữ liệu, bạn phải tạo một kế hoạch thực tế từ bên trong Plan Explorer và đang chạy với phiên bản 2014 SP1 trở lên. Bạn cũng cần đảm bảo rằng bạn đã chọn tùy chọn "Với Hồ sơ Truy vấn Trực tiếp" (xem hình ảnh ở bên phải) và đợi quá trình thực thi truy vấn kết thúc trước khi các biểu đồ hiển thị. Trong phiên bản tương lai, các biểu đồ sẽ hiển thị theo thời gian thực, nhưng trong bản phát hành này, chúng tôi thực hiện điều đó sau khi tất cả dữ liệu đã được thu thập.

Hỏi:Hồ sơ truy vấn trực tiếp có chức năng chống lại cơ sở dữ liệu nhân bản trong SQL Server 2014 SP2 không?

A: Có, điều này sẽ hoạt động, tuy nhiên nó sẽ không cung cấp nhiều thông tin vì cơ sở dữ liệu nhân bản trống - bạn sẽ thấy các ước tính đúng trong kế hoạch, nhưng thực tế tất cả sẽ bằng 0 và do đó, các chỉ số thời gian chạy sẽ không đại diện cho bất kỳ thực tế nào hoặc các nút thắt cổ chai có ý nghĩa. Trừ khi bạn đang điền bản sao với dữ liệu thay thế, như Erin Stellato đã quảng cáo trong một bài viết trước đó. Cũng lưu ý rằng nếu bạn muốn các kế hoạch truy vấn phản ánh kích thước dữ liệu sản xuất thực, bạn sẽ muốn đảm bảo rằng tất cả các dạng thống kê tự động đang tắt, nếu không, chúng sẽ được cập nhật khi bạn chạy truy vấn và khi đó tất cả các ước tính sẽ bằng 0.

Hỏi:Phiên bản mới của Plan Explorer có hoạt động với SQL Server 2016 không?

A: Đúng. Chúng tôi hỗ trợ tất cả các toán tử gói SQL Server 2016 mới và các thay đổi khác trong chương trình (xem bài đăng của tôi, "Hỗ trợ Plan Explorer cho SQL Server 2016") và bổ trợ này cũng hoạt động với phiên bản mới nhất của SSMS (xem bài đăng của tôi, "Thông báo Hỗ trợ bổ trợ của Plan Explorer cho SSMS 2016").

H:Vì vậy, ngay cả một kế hoạch thực thi thực tế trong SSMS cũng được gắn nhãn ước tính chi phí?

A: Vâng đúng vậy. Khi bạn nắm bắt dữ liệu Hồ sơ truy vấn trực tiếp, chúng tôi có thể thay đổi tỷ lệ phần trăm chi phí cho tất cả các toán tử, bởi vì chúng tôi biết với mức độ chính xác đáng kể về lượng công việc thực tế mà mỗi hoạt động đã thực hiện (tuy nhiên, truy vấn cần chạy lâu hơn một ngưỡng). Điều này có thể đặc biệt hữu ích nếu bạn đang khắc phục sự cố I / O, vì các ước tính dường như không bao giờ tính đến các nút thắt cổ chai I / O. Đồ họa sau đây xoay vòng thông qua các ước tính ban đầu (chúng tôi luôn có thể cho bạn biết những gì SSMS sẽ cho bạn biết), thực tế sau khi tính lại chi phí và thực tế sau khi tính lại chi phí và thay đổi chi phí thành "theo I / O" và độ rộng dòng thành "theo kích thước dữ liệu":

H:Tôi đã từng mở kế hoạch của mình được tạo bởi SSMS trong Plan Explorer nhưng từ những gì Aaron vừa hiển thị, tôi có hiểu chính xác rằng tôi nên chạy các truy vấn của mình (trong khi điều chỉnh) từ Plan Explorer không?

A: Tôi đã giải quyết câu hỏi này trong hội thảo trên web, nhưng nói rõ ràng, tôi nghĩ rằng có hai bước trong quá trình phát triển của một truy vấn:(1) đảm bảo kết quả chính xác và (2) tối ưu hóa hiệu suất. Tôi rất tin tưởng rằng hiện tại bạn nên sử dụng SSMS cho (1) và Plan Explorer cho (2). Từ lâu, tôi đã khuyến khích rằng một khi mọi người chắc chắn rằng họ có kết quả chính xác, họ nên điều chỉnh bằng cách tạo ra thực tế kế hoạch thực thi từ bên trong Plan Explorer, vì chúng tôi thu thập thêm rất nhiều thông tin về thời gian chạy cho bạn. Thông tin về thời gian chạy này đặc biệt hữu ích nếu bạn chia sẻ kế hoạch của mình trên trang web Hỏi và Đáp của chúng tôi, bởi vì thông tin này làm cho tất cả các chỉ số và tắc nghẽn tiềm ẩn trở nên rõ ràng hơn nhiều.

Hỏi:Tỷ lệ phần trăm bên dưới toán tử là bao nhiêu… ví dụ:2,885% bên dưới hàm?

A: Phần trăm đó không phải là chi phí mà là% số hàng đã thực sự được xử lý so với ước tính. Trong trường hợp này, SQL Server ước tính rằng hàm sẽ trả về 10.000 hàng, nhưng trong thời gian chạy, nó trả về gần 300.000! Bạn có thể thấy chú giải công cụ nếu bạn chỉ di chuột vào số% đó và bạn có thể thấy sự khác biệt ước tính số lượng hàng trong chú giải công cụ cho toán tử hoặc trong các lưới khác như Hoạt động hàng đầu (hàm trả về số lượng hàng khác với số lượng hàng hiện tại trong bản demo):

Hỏi:Bạn có thể thu nhỏ hoặc ẩn phần phát lại để có nhiều bất động sản hơn cho chính kế hoạch không?

A: Có, tất cả các bảng của chúng tôi có thể điều chỉnh được; nhiều bảng có chốt đẩy để chuyển đổi giữa tĩnh và ẩn tự động, hầu hết các bảng có thể được kéo xung quanh (giống như trong Visual Studio, SSMS, v.v.) và bảng phát lại đặc biệt có một mũi tên nhỏ ở giữa trên cùng cho phép bạn để nhanh chóng hiển thị / ẩn:

Hỏi:Bạn có thể nhìn thấy khối mã vi phạm trực tiếp từ kế hoạch không?

A: Tôi không chắc liệu mình có đang giải thích câu hỏi một cách chính xác hay không, nhưng tất cả các bảng của chúng tôi đều phân biệt ngữ cảnh và tuyên bố cho kế hoạch hiện đang được kiểm tra được hiển thị cả trong lưới Báo cáo và bảng Dữ liệu văn bản:

Nếu văn bản câu lệnh không hiển thị đầy đủ do độ dài, bạn luôn có thể bấm chuột phải vào ô đó và chọn Sao chép câu lệnh thành Sao chép văn bản lệnh, sau đó chuyển sang tab đó. Hoặc, nếu bạn không muốn ghi đè nội dung hiện tại của tab Văn bản Lệnh, hãy chọn Sao chép> Ô và dán vào một phiên mới, SSMS hoặc trình chỉnh sửa khác.

H:Làm cách nào để dừng "Nhận gói thực tế" nếu tôi bắt đầu truy vấn 1 giờ do nhầm lẫn?

A: Nếu một truy vấn hiện đang chạy, có một nút Dừng trên thanh trạng thái, phía dưới bên trái:

H:Sẽ không tốt hơn nếu sử dụng DROP_EXISTING =ON thay vì bỏ một chỉ mục trước và tạo một chỉ mục mới?

A: Chúng tôi chắc chắn có kế hoạch làm cho tập lệnh chỉ mục mạnh mẽ hơn trong tương lai, bao gồm các tùy chọn như DROP_EXISTING và ONLINE.

Q:Điều này có ràng buộc với SentryOne không?

A: Tất cả các chức năng trong Plan Explorer cũng có sẵn trong SentryOne Client. Về mặt kỹ thuật, bạn không cần phải cài đặt Plan Explorer nếu bạn có ứng dụng khách, ngoại trừ việc các bản cập nhật được đẩy vào một lịch trình khác, vì vậy trong nhiều trường hợp, bạn có thể cài đặt cả hai.

Hãy nhớ rằng kế hoạch mà chúng tôi thu thập cho bạn trong các hoạt động giám sát là kế hoạch ước tính, do chi phí thu thập kế hoạch thực tế cao cho tất cả các truy vấn chạy trên máy chủ. Điều này có nghĩa là nếu bạn đi sâu vào một kế hoạch được thu thập trong ứng dụng khách, kế hoạch đó sẽ không có thêm thông tin như dữ liệu Phân tích chỉ mục và Hồ sơ truy vấn trực tiếp. Bạn luôn có thể chạy lại truy vấn một cách tương tác để nhận dữ liệu thời gian chạy bổ sung đó.

H:Chi phí hiệu suất của các tính năng mới này là gì?

A: Hầu hết thông tin chúng tôi thu thập không đắt hơn nếu bạn chạy cùng một truy vấn và thu thập cùng một dữ liệu thời gian chạy từ Management Studio (ví dụ:bật SHOWPLAN, STATISTICS TIME và STATISTICS IO). Tuy nhiên, phần lớn điều này được bù đắp theo hành vi mặc định của chúng tôi là loại bỏ kết quả, vì vậy chúng tôi không tạo gánh nặng cho máy chủ về nỗ lực truyền kết quả tới ứng dụng của chúng tôi.

Đối với các kế hoạch cực kỳ phức tạp chạy trên cơ sở dữ liệu với các lược đồ rất phức tạp và rất nhiều chỉ mục, việc thu thập chỉ mục và thống kê có thể kém hiệu quả hơn, nhưng điều này sẽ cực kỳ khó gây ra bất kỳ tác động đáng chú ý nào đến khối lượng công việc hiện có. Điều này sẽ không bị ảnh hưởng bởi số lượng hàng trong một bảng, được đề cập trong một biến thể của câu hỏi này.

Đối với các truy vấn thực sự kéo dài hoặc sử dụng nhiều tài nguyên, mối quan tâm lớn nhất của tôi sẽ là bộ sưu tập Hồ sơ truy vấn trực tiếp của chúng tôi. Chúng tôi có hai tùy chọn có thể giúp thực hiện việc này:có bao gồm Hồ sơ truy vấn trực tiếp với tất cả việc tạo gói thực tế theo mặc định hay không và khoảng thời gian nào để thu thập dữ liệu từ DMV. Mặc dù tôi vẫn cảm thấy phần đầu của bộ sưu tập này sẽ không bao giờ đến gần phần chi phí của chính truy vấn, nhưng bạn có thể điều chỉnh các cài đặt này để làm cho bộ sưu tập ít hoạt động hơn.

Điều đó đã nói lên rằng, với tuyên bố từ chối trách nhiệm rằng mọi thứ nên được thực hiện có chừng mực, tôi đã không quan sát thấy bất kỳ vấn đề nào liên quan đến chi phí thu thập dữ liệu và sẽ không ngần ngại sử dụng toàn bộ chức năng đối với một phiên bản sản xuất.

Hỏi:Có điều gì trong đó để giúp xây dựng các chỉ mục được lọc không?

A: Hiện tại, chúng tôi không có bất kỳ chức năng nào đề xuất các chỉ mục đã lọc, nhưng nó chắc chắn nằm trên radar của chúng tôi.

Hỏi:Có kế hoạch nào để thêm tính năng so sánh kế hoạch truy vấn vào Plan Explorer không?

A: Có, điều này chắc chắn đã có trong lộ trình của chúng tôi từ rất lâu trước khi chức năng này được giới thiệu trong SSMS. :-) Chúng tôi sẽ dành thời gian và xây dựng một bộ tính năng mà bạn hy vọng sẽ mong đợi từ chúng tôi.

Hỏi:Bạn có thể sử dụng với các gói SSIS để tìm hiểu hiệu suất của một gói không?

A: Tôi cho rằng bạn có thể, nếu bạn gọi gói hoặc công việc thông qua T-SQL với một máy chủ (Plan Explorer không có khả năng khởi chạy những thứ như gói SSIS trực tiếp). Nhưng ứng dụng sẽ chỉ hiển thị các khía cạnh hiệu suất được hiển thị thông qua SQL Server - nếu có sự kém hiệu quả trong gói SSIS không liên quan đến việc thực thi đối với SQL Server (giả sử, một vòng lặp vô hạn trong tác vụ tập lệnh), chúng tôi sẽ không thể chọn những thứ đó, bởi vì chúng tôi không có khả năng hiển thị và không thực hiện bất kỳ phân tích mã nào.

Hỏi:Bạn có thể nhanh chóng chỉ ra cách sử dụng tính năng phân tích bế tắc không?

A: Tôi đã bỏ lỡ câu hỏi này trong hội thảo trên web, nhưng tôi nói về chức năng này trong Bộ công cụ trình diễn của mình, Jonathan Kehayias đã viết blog về nó ở đây, Steve Wright có một video về nó trên YouTube và bạn có thể xem lại tài liệu chính thức trong Hướng dẫn sử dụng PE.

Q:Cái này có thể được sử dụng như Hồ sơ không? Tôi có thể phân tích toàn bộ khối lượng công việc không?

A: Plan Explorer được thiết kế để giúp phân tích các truy vấn riêng lẻ và kế hoạch thực hiện của chúng. Chúng tôi có một nền tảng giám sát đầy đủ tính năng cho những nỗ lực trong phạm vi lớn hơn và cũng có một số công cụ phân tích khối lượng công việc của bên thứ ba.

H:Tôi rất mới làm quen với việc điều chỉnh truy vấn - bạn có thể đề xuất các công cụ và bài viết để hiểu sâu hơn không?

A: Có rất nhiều tài nguyên để điều chỉnh truy vấn tốt hơn:

  • Bất kỳ cuốn sách T-SQL nào của Itzik Ben-Gan, Grant Fritchey hoặc Benjamin Nevarez;
  • Bất kỳ bài đăng trên blog nào của Paul White hoặc Rob Farley;
  • Hỏi &Đáp tại đây trên answer.sqlperformance.com hoặc tại dba.stackexchange.com;
  • Truy vấn điều chỉnh video trên YouTube;
  • Bộ công cụ trình diễn (sắp có phiên bản mới!); và,
  • Thực hành . Nghiêm túc. Bạn có thể đọc tất cả sách và bài báo mình muốn, nhưng nếu không có công việc thực tế, thực hành khắc phục sự cố và cải thiện các truy vấn có vấn đề với các vấn đề về hiệu suất thực, sẽ rất khó để trở thành một chuyên gia. IMHO.

Tóm tắt

Cảm ơn bạn đã tham dự hội thảo trên web và cảm ơn rất nhiều vì tất cả các câu hỏi tuyệt vời. Tôi xin lỗi vì tôi không thể giải quyết tất cả, nhưng tôi hy vọng điều này sẽ hữu ích. Nếu bạn có câu hỏi mà tôi chưa giải đáp ở trên, vui lòng hỏi tôi trực tiếp tại [email protected].


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Nhóm dữ liệu bằng cách sử dụng hàm OVER và PARTITION BY

  2. Bước tới Bắt đầu Phát triển Cơ sở dữ liệu Theo hướng Thử nghiệm (TDDD)

  3. T-SQL Thứ ba # 67:Sao lưu và khôi phục các sự kiện mở rộng mới

  4. Cơ sở dữ liệu RAC khởi động không thành công với lỗi ORA-12547

  5. Vui vẻ với nén (columnstore) trên một bảng rất lớn - phần 1