This is a very general question, but here are a couple of pieces of advice:
- Name your stored procedures consistently. Many use a prefix to identify that it's a stored procedure, but don't use 'sp_' as the prefix as that's designated for the Master databae (in SQL Server anyway)
- Set NOCOUNT on, as this reduces the number of possible return values
- Set-based queries often perform better than cursors. This question gets into this in much more detail.
- If you're DECLARE'ing variables for your stored procedure, use good naming conventions just as you would/should in any other kind of programming.
- Call SPs using their fully-qualified name to eliminate any confusion about which SP should be called, and to help boost SQL Server performance; this makes it easier to find the SP in question.
There's much more, of course. Here's are a link with more:
SQL Server Stored Procedures Optimization Tips