2008-08-14 32 views

Trả lời

6

Ngoài đề cập của SQL về SQL Profiler, nếu bạn muốn thực hiện điều này bằng mã, sau đó tất cả các cuộc gọi cơ sở dữ liệu của bạn cần được chuyển qua một thư viện chung. Bạn chèn mã thời gian ở đó, và thì đấy, bạn biết mỗi truy vấn trong hệ thống của bạn mất bao lâu.

Một điểm vào cơ sở dữ liệu là một tính năng khá chuẩn của bất kỳ lớp ORM hoặc cơ sở dữ liệu nào - hoặc ít nhất nó đã nằm trong bất kỳ dự án nào tôi đã làm cho đến nay!

2

SQL Profiler là công cụ tôi sử dụng để giám sát lưu lượng truy cập vào SQL Server của tôi. Nó cho phép bạn thu thập dữ liệu chi tiết về SQL Server của bạn. SQL Profiler đã được phân phối với SQL Server vì ít nhất là SQL Server 2000 (nhưng có lẽ trước đó cũng vậy).

Rất khuyến khích.

0

Dự án Dropthings trên CodePlex có lớp dành cho các khối mã thời gian. Lớp được đặt tên là TimedLog. Nó thực hiện IDisposable. Bạn quấn khối mã bạn muốn thời gian trong một câu lệnh sử dụng.

0

Nếu bạn sử dụng đường ray, nó sẽ tự động ghi lại tất cả các truy vấn SQL và thời gian chúng thực hiện, trong tệp nhật ký phát triển của bạn.

Tôi thấy điều này rất hữu ích bởi vì nếu bạn thấy một trong số đó mất một thời gian, đó là một bước để chỉ sao chép và dán nó thẳng ra khỏi màn hình/logfile, và đặt 'giải thích' ở phía trước của nó trong mysql.

Bạn không cần phải tìm hiểu kỹ mã của mình và tái tạo lại những gì đang diễn ra.

Không cần phải nói điều này không xảy ra trong quá trình sản xuất vì nó sẽ khiến bạn mất dung lượng đĩa trong khoảng một giờ.

1

Hãy xem chương này Jeff Atwood và tôi đã viết về tối ưu hóa hiệu suất cho các trang web. Chúng tôi bao gồm rất nhiều thứ, nhưng có rất nhiều thứ về truy tìm và tối ưu hóa cơ sở dữ liệu: Speed Up Your Site: 8 ASP.NET Performance Tips

0

Nếu bạn xác định nhà máy tạo SqlCommands cho bạn và luôn gọi nó khi bạn cần lệnh mới, bạn có thể trả về RealProxy đến một SqlCommand.

Proxy này sau đó có thể đo thời gian ExecuteReader/ExecuteScalar, v.v. sử dụng đồng hồ bấm giờ và đăng nhập ở đâu đó. Ưu điểm của việc sử dụng kiểu phương thức này trên Sql Server Profiler là bạn có thể nhận được các dấu vết ngăn xếp đầy đủ cho mỗi đoạn SQL được thực thi.

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