SQL Profiler allows you to monitor and capture events on an instance of SQL Server. You can configure it to capture all events or just a subset that you need to monitor. It lets you do the following:
Capture Transact-SQL statements that are causing errors.
Debug individual stored procedures or Transact-SQL statements.
Monitor system performance.
Collect the complete Transact-SQL load of a production system and replay it in your test environment.
SQL Profiler can collect external events initiated by end users (such as batch starts or login attempts), as well as internal events initiated by the system (such as individual Transact-SQL statements from within a stored procedure, table or index scans, objects locks, and transactions).