Profiles are test results reporting on the performance of some part of your application. They provide a great deal of information as to which SQL statements were executed, for what reasons, because of which constraints, and so on. All error messages that were generated are also stored in the profile, in both plain text and XML format.
Time, Percentage of Total Time, and Rows Processed profiler data provide valuable information as to which SQL statements take up the most time. This information can be used to tune your implementation of the business logic.
The performance is measured in terms of the time it takes to interpret and execute the SQL statements involved.
You can make Profiles as part of playing a test, or separately using the Profiler. Once you have made a profile, you can query and interpret the results. Part of these results are index hints.
As part of a profile, Index Hints indicate which database columns could be candidates for putting an index on. Obtaining these hints is useful for SQL statements that were executed because of constraints, especially if they take up a lot of network time.
Generally speaking, indexes increase the performance of your application. Performance, however, is a relative and subjective concept. For example: a badly written constraint may perform excellently on a small database, or a fast machine. Therefore, you should concentrate your efforts on those performance aspects that are considered to be unacceptable.