I have a stored procedure that if in the query window I run it takes over 2 minutes to run.If I copy all the sql and put in query window, set variables, highlight and execute it takes 1 maybe 2 seconds. Does anyone have any ideas on why when I hightlight and run it only takes a few seconds vs minutes with the sp?Here is the stored procedure way:EXEC sp_Report_Test NULL,NULL,'1/16/2009','1/17/2009',NULLset ANSI_NULLS ONset QUOTED_IDENTIFIER ONGO-- =============================================-- Author: <Author,,Name>-- Create date: <Create Date,,>-- Description: <Description,,>-- =============================================ALTER PROCEDURE [dbo].[sp_Report_Test]@Client_ID int=NULL,@JobPosting_ID int=NULL,@StartDate datetime=NULL,@EndDate datetime=NULL,@Personnel_ID int=NULLASBEGINSET NOCOUNT ON;SELECT DISTINCT cjp.Candidate_ID, c.Candidate_LastName, c.Candidate_FirstName, c.Candidate_Email, c.Candidate_PhonePrimary, c.Candidate_City, c.Candidate_StateProvince, c.Candidate_ZipPostalCode, cjp.CandidateJobPosting_DateCreated, (p.Personnel_LastName + ', ' + p.Personnel_FirstName) AS Personnel_Name, jp.JobPosting_ID, jp.JobPosting_Name, ec.EmploymentCategory_Name, ess.EmploymentSearchSource_Name, Len(vcr.CandidateResume_Resume) as ResumeChars, vcr.CandidateResume_IDFROM CandidateJobPosting cjp inner join Candidate c on cjp.Candidate_ID = c.Candidate_ID inner join JobPosting jp on cjp.JobPosting_ID = jp.JobPosting_ID inner join Personnel p on cjp.Personnel_ID = p.Personnel_ID inner join EmploymentCategory ec on cjp.EmploymentCategory_ID = ec.EmploymentCategory_ID inner join EmploymentSearchSource ess on cjp.EmploymentSearchSource_ID = ess.EmploymentSearchSource_ID LEFT OUTER JOIN vwCandidateResume vcr on cjp.Candidate_ID = vcr.Candidate_IDWHERE (@Client_ID is null or jp.Client_ID=@Client_ID) AND (@JobPosting_ID is null or cjp.JobPosting_ID=@JobPosting_ID) AND (@StartDate is null or cjp.CandidateJobPosting_DateCreated >= @StartDate) AND (@EndDate is null or cjp.CandidateJobPosting_DateCreated <= @EndDate) AND (@Personnel_ID is null or cjp.Personnel_ID=@Personnel_ID)ORDER BY c.Candidate_LastName, c.Candidate_FirstName, cjp.Candidate_ID, cjp.CandidateJobPosting_DateCreated DESCEND
Here is the code I run manually:DECLARE @Client_ID intDECLARE @JobPosting_ID intDECLARE @StartDate datetimeDECLARE @EndDate datetimeDECLARE @Personnel_ID intSET @Client_ID = NULLSET @JobPosting_ID = NULLSET @StartDate = '1/16/2009'SET @EndDate = '1/17/2009'SET @Personnel_ID = NULLSELECT DISTINCT cjp.Candidate_ID, c.Candidate_LastName, c.Candidate_FirstName, c.Candidate_Email, c.Candidate_PhonePrimary, c.Candidate_City, c.Candidate_StateProvince, c.Candidate_ZipPostalCode, cjp.CandidateJobPosting_DateCreated, (p.Personnel_LastName + ', ' + p.Personnel_FirstName) AS Personnel_Name, jp.JobPosting_ID, jp.JobPosting_Name, ec.EmploymentCategory_Name, ess.EmploymentSearchSource_Name, Len(vcr.CandidateResume_Resume) as ResumeChars, vcr.CandidateResume_IDFROM CandidateJobPosting cjp inner join Candidate c on cjp.Candidate_ID = c.Candidate_ID inner join JobPosting jp on cjp.JobPosting_ID = jp.JobPosting_ID inner join Personnel p on cjp.Personnel_ID = p.Personnel_ID inner join EmploymentCategory ec on cjp.EmploymentCategory_ID = ec.EmploymentCategory_ID inner join EmploymentSearchSource ess on cjp.EmploymentSearchSource_ID = ess.EmploymentSearchSource_ID LEFT OUTER JOIN vwCandidateResume vcr on cjp.Candidate_ID = vcr.Candidate_IDWHERE (@Client_ID is null or jp.Client_ID=@Client_ID) AND (@JobPosting_ID is null or cjp.JobPosting_ID=@JobPosting_ID) AND (@StartDate is null or cjp.CandidateJobPosting_DateCreated >= @StartDate) AND (@EndDate is null or cjp.CandidateJobPosting_DateCreated <= @EndDate) AND (@Personnel_ID is null or cjp.Personnel_ID=@Personnel_ID)ORDER BY c.Candidate_LastName, c.Candidate_FirstName, cjp.Candidate_ID, cjp.CandidateJobPosting_DateCreated DESC