Làm thế nào để khắc phục sự cố truy vấn chậm-chạy SQL Server 7.0 hoặc trên phiên bản mới nhất

QUAN TRỌNG: Bài viết này được dịch bằng phần mềm dịch máy của Microsoft chứ không phải do con người dịch. Microsoft cung cấp các bài viết do con người dịch và cả các bài viết do máy dịch để bạn có thể truy cập vào tất cả các bài viết trong Cơ sở Kiến thức của chúng tôi bằng ngôn ngữ của bạn. Tuy nhiên, bài viết do máy dịch không phải lúc nào cũng hoàn hảo. Loại bài viết này có thể chứa các sai sót về từ vựng, cú pháp hoặc ngữ pháp, giống như một người nước ngoài có thể mắc sai sót khi nói ngôn ngữ của bạn. Microsoft không chịu trách nhiệm về bất kỳ sự thiếu chính xác, sai sót hoặc thiệt hại nào do việc dịch sai nội dung hoặc do hoạt động sử dụng của khách hàng gây ra. Microsoft cũng thường xuyên cập nhật phần mềm dịch máy này.

Nhấp chuột vào đây để xem bản tiếng Anh của bài viết này:243589
TÓM TẮT
Bài viết này mô tả cách xử lý một vấn đề hiệu suất mà các ứng dụng có thể kinh nghiệm kết hợp với Microsoft SQL Server: chậm hiệu suất của một truy vấn cụ thể hoặc nhóm các truy vấn. Nếu bạn đang gỡ rối một vấn đề hiệu suất, nhưng bạn đã không cô lập vấn đề một truy vấn cụ thể hoặc một nhóm nhỏ các truy vấn thực hiện chậm hơn so với dự kiến, xem bài viết sau trong cơ sở kiến thức Microsoft trước khi bạn tiếp tục:
224587 Làm thế nào để: Gỡ rối ứng dụng hiệu suất với SQL Server
Bài viết này được dựa trên giả định rằng bạn đã sử dụng bài viết 224587 để thu hẹp phạm vi của vấn đề, và rằng bạn đã nắm bắt một dấu vết SQL Profiler với các cụ thể các sự kiện và dữ liệu cột được chi tiết trong bài viết 224587.

Điều chỉnh truy vấn cơ sở dữ liệu có thể là một nỗ lực nhiều mặt. Các đoạn thảo luận về khoản mục phổ biến để xem xét khi bạn đang điều tra hiệu suất truy vấn.

Chú ý Nếu bạn đang sử dụng SQL Server 2005, sử dụng SQL Server Management Studio thay vì phân tích truy vấn SQL, và sử dụng cơ sở dữ liệu công cụ chỉnh cố vấn thay vì thuật sĩ điều chỉnh chỉ số.
back to the top

Xác minh sự tồn tại của các chỉ số chính xác

Một trong những kiểm tra đầu tiên để thực hiện khi bạn đang trải qua thời gian thực hiện truy vấn chậm là một phân tích chỉ số. Nếu bạn đang điều tra một truy vấn duy nhất, bạn có thể sử dụng các Thực hiện phân tích chỉ số tùy chọn trong SQL Query Analyzer; Nếu bạn có một dấu vết SQL Profiler của một khối lượng công việc lớn, bạn có thể sử dụng thuật sĩ điều chỉnh chỉ số. Cả hai phương pháp sử dụng trình tối ưu hoá truy vấn SQL Server để xác định danh mục đó sẽ là hữu ích cho các truy vấn được chỉ định. Đây là một phương pháp rất hiệu quả để xác định xem các chỉ số chính xác tồn tại trong cơ sở dữ liệu của bạn.

Thông tin về cách sử dụng thuật sĩ điều chỉnh chỉ số, xem chủ đề "Index Tuning Wizard" trong SQL Server 7.0 sách trực tuyến.

Nếu bạn đã nâng cấp ứng dụng của bạn từ phiên bản trước đó của SQL Server, lập chỉ mục khác nhau có thể hiệu quả hơn trong SQL Server 7.0 vì tối ưu hóa và thay đổi công cụ lưu trữ. Thuật sĩ điều chỉnh chỉ số sẽ giúp bạn xác định nếu một thay đổi trong chỉ mục chiến lược sẽ cải thiện hiệu suất.

Để biết thêm chi tiết về làm thế nào để sử dụng cơ sở dữ liệu công cụ chỉnh cố vấn thay vì thuật sĩ điều chỉnh chỉ số trong SQL Server 2005, xem các chủ đề sau trong SQL Server 2005 sách trực tuyến:
  • Sự khác biệt giữa các cơ sở dữ liệu công cụ điều chỉnh cố vấn và chỉ số điều chỉnh thuật sĩ
  • Cơ sở dữ liệu công cụ chỉnh cố vấn hướng dẫn
back to the top

Loại bỏ tất cả các truy vấn, bảng, và gợi ý tham gia

Gợi ý ghi đè lên tối ưu hóa truy vấn và có thể ngăn chặn tôi ưu hoa truy vấn từ việc lựa chọn kế hoạch thực hiện nhanh nhất. Vì các tối ưu hóa thay đổi, gợi ý rằng hiệu suất được cải thiện trong phiên bản trước của SQL Server có thể không có hiệu lực hoặc có thể thực sự bất lợi ảnh hưởng đến hiệu suất trong SQL Server 7.0. Ngoài ra, gợi ý tham gia có thể gây ra sự xuống cấp hiệu suất dựa trên những lý do sau:
  • Gợi ý tham gia ngăn chặn một truy vấn phi thể thức không đủ điều kiện cho auto-parameterization và bộ nhớ đệm của kế hoạch truy vấn.
  • Khi bạn sử dụng một gợi ý tham gia, nó ngụ ý rằng bạn muốn ép buộc tham gia để cho tất cả các bảng trong truy vấn, ngay cả khi những người tham gia không sử dụng một cách rõ ràng một gợi ý.
Nếu truy vấn mà bạn đang phân tích bao gồm bất kỳ gợi ý, loại bỏ chúng, và sau đó đánh giá lại hiệu suất.

back to the top

Kiểm tra kế hoạch thực hiện

Sau khi bạn xác nhận rằng các chỉ số chính xác tồn tại, và rằng không có gợi ý hạn chế khả năng của tôi ưu hoa để tạo ra một kế hoạch hiệu quả, bạn có thể xem xét kế hoạch thực hiện truy vấn. Bạn có thể sử dụng bất kỳ các phương pháp sau đây để xem kế hoạch thực hiện một truy vấn:
  • SQL Profiler

    Nếu bạn bắt các Kế hoạch Misc:Execution sự kiện trong SQL Profiler, nó sẽ xảy ra ngay trước khi các StmtCompleted sự kiện cho truy vấn cho hệ thống cụ thể quá trình ID (dịch vụ SPID).
  • SQL Query Analyzer: Đồ họa Showplan

    Với các truy vấn được chọn trong cửa sổ truy vấn, bấm các Truy vấn trình đơn, và sau đó bấm Hiển thị dự kiến thực hiện kế hoạch.

    LƯU Ý: Nếu các thủ tục được lưu trữ hoặc lô tạo ra và tài liệu tham khảo tạm thời bảng, bạn phải sử dụng một tuyên bố SET thống kê PROFILE ON hoặc một cách rõ ràng tạo bảng tạm thời trước khi bạn hiển thị thực hiện kế hoạch.
  • SHOWPLAN_ALL và SHOWPLAN_TEXT

    Để nhận được một phiên bản văn bản kế hoạch thực hiện ước tính, bạn có thể sử dụng các tùy chọn đặt SHOWPLAN_ALL và SET SHOWPLAN_TEXT. Xem "đặt SHOWPLAN_ALL (T-SQL)" và "Thiết lập SHOWPLAN_TEXT (T-SQL)" các chủ đề trong SQL Server 7.0 sách trực tuyến cho biết thêm chi tiết.

    LƯU Ý: Nếu các thủ tục được lưu trữ hoặc lô tạo ra và tài liệu tham khảo tạm thời bảng, bạn phải sử dụng tùy chọn cấu hình thống kê SET ON hoặc một cách rõ ràng có thể tạo ra các bảng tạm thời trước khi hiển thị các kế hoạch thực hiện.
  • THỐNG KÊ PROFILE

    Khi bạn đang hiển thị ước thực hiện kế hoạch, đồ họa hoặc bằng cách sử dụng SHOWPLAN, truy vấn không thực thực sự thi. Vì vậy, nếu bạn tạo bảng tạm thời trong một lô hay một thủ tục được lưu trữ, bạn không hiển thị các kế hoạch thực hiện ước tính bởi vì các bảng tạm thời sẽ không tồn tại. Thống kê hồ sơ thực hiện truy vấn đầu tiên, và sau đó sẽ hiển thị thực tế thực hiện kế hoạch. Xem chủ đề "Thiết lập thống kê PROFILE (T-SQL)" trong SQL Server 7.0 sách trực tuyến cho biết thêm chi tiết. Khi nó đang chạy trong SQL Query Analyzer, điều này xuất hiện ở định dạng đồ họa trên các Thực hiện kế hoạch tab trong cửa sổ kết quả.
Để biết thêm chi tiết về làm thế nào để hiển thị kế hoạch thực hiện ước tính trong SQL Server 2005, xem chủ đề "Làm thế nào để hiển thị ước tính thực hiện kế hoạch" trong SQL Server 2005 sách trực tuyến.
back to the top

Kiểm tra ra Showplan

Showplan sản lượng cung cấp rất nhiều thông tin về kế hoạch thực hiện SQL Server đang sử dụng cho một truy vấn cụ thể. Các chi tiết của thông tin và sự kiện được tạo ra sẽ được thảo luận chi tiết trong chương "Tối ưu hóa hiệu suất cơ sở dữ liệu" của SQL Server 7.0 sách trực tuyến. Sau đây là một số khía cạnh cơ bản thực hiện kế hoạch mà bạn có thể xem để xác định cho dù bạn đang sử dụng kế hoạch tốt nhất:
  • Đúng cách sử dụng chỉ mục

    Sản lượng showplan hiển thị mỗi bảng mà là có liên quan trong các truy vấn và đường dẫn truy cập được sử dụng để có được dữ liệu từ nó. Với đồ họa showplan, di chuyển con trỏ qua một bảng để xem thông tin chi tiết cho mỗi bảng. Nếu một chỉ số sử dụng, bạn nhìn thấy "Chỉ mục tìm kiếm"; Nếu chỉ mục không sử dụng, bạn xem hoặc "Bảng quét" cho một đống hoặc "Nhóm chỉ số quét" cho một bảng có một chỉ số nhóm. "Nhóm chỉ số quét" chỉ ra rằng bảng đang được quét qua chỉ số nhóm, không rằng chỉ số nhóm đang được sử dụng để truy cập trực tiếp các hàng cá nhân.

    Nếu bạn xác định rằng một chỉ số hữu ích tồn tại và nó không được sử dụng cho truy vấn, bạn có thể thử buộc chỉ mục bằng cách sử dụng một gợi ý chỉ số. Xem chủ "Từ (T-SQL)" đề trong SQL Server sách trực tuyến cho biết thêm chi tiết về chỉ số gợi ý.
  • Chính xác tham gia đặt hàng

    Sản lượng showplan chỉ ra theo thứ tự nào bảng được tham gia trong một truy vấn đang được tham gia. Cho tham gia vòng lặp lồng nhau, trên bảng được liệt kê là bảng bên ngoài và nó nên là nhỏ hơn của hai bảng. Cho băm tham gia, trên bảng sẽ trở thành đầu vào xây dựng và cũng nên nhỏ hơn của hai bảng. Tuy nhiên, lưu ý rằng thứ tự là ít quan trọng bởi vì bộ xử lý truy vấn có thể đảo ngược xây dựng và thăm dò đầu vào lúc thời gian chạy nếu nó tìm thấy rằng trình tối ưu hoá thực hiện một quyết định sai lầm. Bạn có thể xác định bảng mà trả về ít hơn hàng bằng cách kiểm tra đếm hàng ước tính trong đầu ra showplan.

    Nếu bạn xác định rằng các truy vấn có thể hưởng lợi từ một thứ tự khác nhau tham gia, bạn có thể thử buộc bộ tham gia với một gợi ý tham gia. Xem chủ "Từ (T-SQL)" đề trong SQL Server 7.0 sách trực tuyến cho biết thêm chi tiết về gợi ý tham gia.

    LƯU Ý: Dùng một gợi ý tham gia trong một truy vấn lớn ngầm lực lượng để tham gia cho các bảng khác trong truy vấn như nếu FORCEPLAN đã được thiết lập.
  • Đúng tham gia loại

    SQL Server sử dụng lồng nhau vòng lặp, băm, và tham gia hợp nhất. Nếu một truy vấn chậm hiệu suất sử dụng một kỹ thuật tham gia hơn khác, bạn có thể thử buộc một loại khác nhau tham gia. Ví dụ, nếu một truy vấn bằng cách sử dụng một băm tham gia, bạn có thể ép buộc một lồng nhau vòng tham gia bằng cách sử dụng gợi ý tham gia vòng LẶP. Xem chủ "Từ (T-SQL)" đề trong SQL Server 7.0 sách trực tuyến cho biết thêm chi tiết về gợi ý tham gia.

    LƯU Ý: Dùng một gợi ý tham gia trong một truy vấn lớn ngầm lực lượng tham gia kiểu cho các bảng khác trong truy vấn như nếu FORCEPLAN đã được thiết lập.
  • Thực hiện song song

    Nếu bạn đang sử dụng một máy tính sự, bạn cũng có thể điều tra cho dù một kế hoạch song song đang dùng. Nếu song song đang sử dụng, bạn nhìn thấy một SONG SONG Sự kiện (gather dòng). Nếu một truy vấn cụ thể là chậm khi nó sử dụng một kế hoạch song song, bạn có thể thử buộc một kế hoạch không song song bằng cách sử dụng gợi ý lựa chọn (MAXDOP 1). Xem chủ đề "Chọn (T-SQL)" trong SQL Server 7.0 sách trực tuyến cho biết thêm chi tiết.
Để biết thêm chi tiết về cách sử dụng Showplan thực hiện kế hoạch sản lượng trong SQL Server 2005, xem các chủ đề sau trong SQL Server 2005 sách trực tuyến:
  • Làm thế nào để tiết kiệm một kế hoạch thực hiện ở định dạng XML
  • XML Showplans
  • An ninh Showplan
THẬN TRỌNG: Bởi vì tôi ưu hoa truy vấn thường chọn kế hoạch thực hiện tốt nhất cho một truy vấn, Microsoft recommends rằng bạn tham gia gợi ý, gợi ý truy vấn và bảng gợi ý chỉ sử dụng như một phương sách cuối cùng, và chỉ nếu bạn là một người quản trị cơ sở dữ liệu có kinh nghiệm.back to the top
THAM KHẢO
Các chủ đề sau trong SQL Server 7.0 sách trực tuyến cung cấp thông tin về tối ưu hóa truy vấn:
  • "Tối ưu hóa hiệu suất của ứng dụng bằng cách sử dụng hiệu quả dữ liệu truy"
  • "Truy vấn điều chỉnh"
  • "Truy vấn đề nghị điều chỉnh"
  • "Giao dịch-SQL Mẹo"
back to the top

Cảnh báo: Bài viết này được dịch tự động

Thuộc tính

ID Bài viết: 243589 - Xem lại Lần cuối: 08/21/2011 10:28:00 - Bản sửa đổi: 2.0

Microsoft SQL Server 2000 Standard Edition, Microsoft SQL Server 2000 64-bit Edition, Microsoft SQL Server 7.0 Standard Edition, Microsoft SQL Server 2005 Standard Edition, Microsoft SQL Server 2005 Developer Edition, Microsoft SQL Server 2005 Enterprise Edition, Microsoft SQL Server 2005 Workgroup Edition

  • kbsqlsetup kbhowtomaster kbmt KB243589 KbMtvi
Phản hồi