I am an experienced Informix and Oracle DBA with little SQL Server tuning experience. The application is web-based OLTP and only calls stored procedures to access the database. The procedure in question sometimes takes 8 seconds to execute, it should be sub-second. If I execute the procedure using the 'with recompile' option, it now executes sub-second. I can see that the Execution Plan has changed. After a random period of time, the procedure is recompiled for some reason with the same bad Execution Plan as before and takes 8 seconds again. If I execute with the 'with recompile' option it goes back to sub-second for a random period of time. Any suggestions on where to look? How can I tell why the optimizer is making a bad choice? Is there any way to force the proc to use the good excecution plan? Thanks!