Khi có một lỗi xuất hiện từ ứng dụng mà bạn biết chắc rằng nó có liên quan đến database, làm cách nào để bạn xác định được lỗi đó sai ở đâu, Sql Server Profiler sẽ là một công cụ hỗ trợ rất hiệu quả trong việc này.

Bằng cách ghi lại tất cả các lệnh gọi vào database, Profiler sẽ hiển thị chi tiết các parameter được truyền vào, từ đó giúp bạn xác định được lỗi dễ dàng hơn.  Bên cạnh đó Profiler cũng sẽ giúp cho việc theo dõi, thống kê tốc độ xử lý của database thông qua dữ liệu thu thập được.

Sử dụng Profiler để trace log cũng khá đơn giản, đầu tiên khởi động SQL Server lên:

Có nhiều cách để khởi động Profiler :

  1. Start -> All Programs -> Microsoft SQL Server 2005 -> Performance Tools -> SQL Server Profiler
  2. Tools -> SQL Server Profiler

Chọn 1 trong 2 cách trên sẽ xuất hiện màn hình bên dưới:

Ở đây, bạn nhập tên server, user sau đó nhấn connect:

 

Đầu tiên ở tab General, đây là phần cấu hình chung, bạn chú ý các phần sau:

Save to file: Click chọn để lưu profiler và mở lại file với đuôi .trc. Profiler cho phép lưu và mở lại file trace log khi cần thiết.

Save to table: Cho phép lưu trữ kết quả thành một table trong database, chỉ cần khai báo tên database , tên table như hình dưới:

 

Enable trace stop time: Click chọn và cấu hình thời gian tự động dừng theo dõi profiler nếu muốn.

Tuy nhiên đối với việc trace log thông thường, mình thường bỏ qua tab này.

Tiếp theo bạn chọn Tab Events Selection:

 

Events: Profiler sẽ cho phép theo dõi các truy xuất đến database như câu lệnh T-SQL, câu lệnh thực thi các stored procedure hay thông tin user login, logout… Ở phần này, bạn bỏ chọn những mục nào không cần thiết, thông thường sẽ giữ lại 2 mục cơ bản là Stored Procedures và TSQL.

Show all eventsShow all columns dành cho các tùy chọn nâng cao, thông thường thì không cần chọn 2 mục này.

Organize Columns:  Cho phép sắp xếp thứ tự các cột hiển thị trong profiler.

Column Filters: Đây là tùy chọn giúp bạn lọc theo tiêu chí cần thiết để giới hạn đúng thông tin muốn theo dõi nhất là đối với các hệ thống lớn.

Có nhiều tiêu chí để giới hạn data, bên dưới là ví dụ cho trường hợp chỉ muốn lọc tất cả thông tin liên quan đến user đăng nhập.

 

TextData: Cho phép lọc những câu lệnh, Stored Procedure có chuỗi bạn muốn tìm.

Duration: Các bạn chú ý tiêu chí này, đây là phần giới hạn thời gian thực thi câu lệnh, đối với các trường hợp muốn biết câu lệnh nào mất nhiều thời gian thì nên chọn. Duration tính theo ms nhé.

Ví dụ chỉ lọc Duration >=10s:

Sau khi cấu hình xong, nhấn Run. Profile sẽ ghi lại tất cả thông tin truy cập đến database như bạn đã cấu hình như bên dưới:

Ở đây sẽ hiển thị chi tiết các câu lệnh bạn muốn tìm, chọn Tạm dừng hoặc Stop để dừng việc theo dõi.

Bạn có thể nhấn Ctrl F để lọc theo tên stored cần tìm, phần bên dưới sẽ hiển thị chi tiết câu lệnh, parameter truyền vào bạn chỉ cần copy ra và debug một cách dễ dàng.

Ngoài ra bạn có thể xem lại dữ liệu tự động ghi vào table đã thiết lập như hình dưới:

Trên đây là phần giới thiệu cơ bản về Sql Server Profiler, khá đơn giản nhưng hỗ trợ rất hiệu quả trong việc điều tra bug, theo dõi hệ thống.

Chúc bạn tìm được sự hữu ích khi đọc chia sẻ này.

AutoCode.VN

minhnhatict@gmail.com SQL Server