2009-10-12 36 views
7

Trong tìm kiếm không bao giờ kết thúc cho hiệu suất (và kinh nghiệm bludgeoning của riêng tôi), tôi đã học được một vài điều có thể kéo xuống hiệu suất của một câu lệnh SQL.Những công cụ nào có sẵn để kiểm tra hiệu suất câu lệnh SQL?

ám ảnh cưỡng các truy vấn con Rối loạn
Làm chuyển đổi loại điên (và tổ những vào quên lãng)
Nhóm Bằng về chức năng tổng hợp của anh chàng nhóm máu điên chuyển đổi
đâu fldID trong (chọn tất cả mọi thứ từ bảng kỷ lục 5 triệu của tôi)

Tôi thường làm việc với MSSQL. Những công cụ nào có sẵn để kiểm tra hiệu suất của một câu lệnh SQL? Các công cụ này có được xây dựng và cụ thể cho từng loại máy chủ DB không? Hoặc có công cụ chung nào không?

+0

Bạn đang phỉ báng mọi thứ cho trải nghiệm? Hay là trải nghiệm của bạn * đang phát triển *? +1 cho xe đẩy của Mitch. – DaveE

Trả lời

9

SQL Profiler (built-in): Monitoring with SQL Profiler

SQL Benchmark Pro (thương mại)

SQL Server 2008 có mới Data Collector

SQL Server 2005 (trở đi) có một chỉ mục mất tích Dynamic Management View (DMV) có thể khá hữu ích (nhưng chỉ cho các kế hoạch truy vấn hiện có trong bộ nhớ đệm của kế hoạch): About the Missing Indexes Feature.

Ngoài ra còn có các SQL Server Database Engine Tuning Advisor mà làm một công việc hợp lý (chỉ không thực hiện tất cả những gì nó gợi ý!)

+0

Cảm ơn, điều đó đã khiến tôi bắt đầu. Điều này bao gồm các góc MSSQL, có công cụ chung có sẵn cho MySQL hay Oracle? Hay những người có công cụ riêng của họ? – MoSlo

3

Tôi chủ yếu chỉ sử dụng Profiler và kế hoạch thực hiện xem

+0

Khá nhiều tất cả những gì bạn cần, bao giờ, đối với các truy vấn riêng lẻ – gbn

0

MSSQL có một cố vấn cơ sở dữ liệu điều chỉnh thường sẽ giới thiệu chỉ số cho các bảng dựa trên các truy vấn thông thường chạy trong giai đoạn điều chỉnh, tuy nhiên nó sẽ không viết lại một truy vấn cho bạn.

Theo ý kiến ​​của tôi, trải nghiệm và thử nghiệm là những công cụ tốt nhất để viết các truy vấn SQL tốt.

0

Trong mysql (có thể nằm trong các cơ sở dữ liệu khác), bạn có thể EXPLAIN truy vấn của mình để xem máy chủ cơ sở dữ liệu nghĩ gì về nó. Điều này thường được sử dụng để xác định các chỉ mục nào sẽ được tạo. Và cái này được tích hợp sẵn, vì vậy bạn có thể sử dụng nó mà không cần cài đặt phần mềm bổ sung.

0

Adam Machanic có một công cụ đơn giản gọi là SqlQueryStress có thể được sử dụng. Nó được thiết kế để được sử dụng để "chạy thử nghiệm hiệu suất nhanh đối với một truy vấn duy nhất, để kiểm tra ý tưởng hoặc xác thực các thay đổi".

+0

Công cụ của Adam thực sự tuyệt vời. Tôi đã sử dụng nó và thấy nó rất hữu ích để điều chỉnh db của tôi. –

1

Execution Plans là một trong những điều đầu tiên cần xem xét khi gỡ lỗi các vấn đề về hiệu suất truy vấn. Một kế hoạch thực hiện sẽ cho bạn biết lượng thời gian được dành cho mỗi phần trong truy vấn của bạn và có thể được sử dụng để xác định nhanh chóng nếu bạn thiếu chỉ mục hoặc có các kết nối hoặc vòng lặp đắt tiền.

Các vấn đề liên quan