I have a stored procedure currently executing a complicated fetch that is frequently timing out when used. The proposed solution in my department has been to simply increase the timeout time length; which I don't really want to do. I'd like to refactor this sproc, but because it's so complicated and undocumented (yay legacy systems) I'm concerned my refactoring my not result in the same functionality executing more efficiently. Are there any strategies to use when refactoring a stored procedure to ensure the same functions are being performed in less time?
This is a Microsoft SQL Server 2005 stored procedure.