<p>Hi All,<br><br>I am new to performance tuning. I wanted to do tunebelow stored procedure. I can not avoid sorting in this SP, becausefunctionality requires it. Please help me that anything needs to bechange.<br><br><br>SET ANSI_NULLS ON<br>GO<br>SET QUOTED_IDENTIFIER OFF<br>GO<br><br>CREATE PROCEDURE [dbo].[Asco_CheckAssoc]<br>( </p><table cellpadding="0" cellspacing="0" width="100%"><tbody><tr><td class="smalltxt" valign="top"><wbr><br> <wbr>@p_sLoggedUserType char(1),<br> <wbr>@p_iLoggedUserId int,<br> <wbr>@p_sRoom char(1),<br> <wbr>@p_sActionCode varchar(50),<br> <wbr>@p_sView varchar(20),<br> <wbr>@p_sFilterBy varchar(20),<br> <wbr>@p_sSortBy varchar(50),<br> <wbr>@p_sStartWith varchar(100), <wbr> <wbr> <wbr> -- CR 26038 Project name length is increased to 100 characters<br> <wbr>@p_sContaining varchar(100), <wbr> <wbr> <wbr> -- CR 26038 Project name length is increased to 100 characters<br> <wbr>@p_sOrderBy varchar(50),<br> <wbr>@p_iPageSize int,<br> <wbr>@p_iStartRecord int OUTPUT,<br> <wbr>@p_iCurrentPage int OUTPUT,<br> <wbr>@p_iNoOfPages int OUTPUT,<br> <wbr>@p_bookedProjects char(1)= NULL <br>)<br><br>AS<br><br><br>DECLARE<br> <wbr>@sSQL nvarchar(4000),<br> <wbr>@iTotalRecords int,<br> <wbr>@iUpperLimit int,<br> <wbr>@iLowerLimit int,<br> <wbr>@iProjectScopeCode int,<br> <wbr>@iProjectScopeObjId int,<br> <wbr>@iUserKey int,<br> <wbr>@iProjAcctGrpId int,<br> <wbr>@iProjOfficeLocId int,<br> <wbr>@iProjSiteLocId int,<br> <wbr>@iProjCustId int,<br> <wbr>@sRoom char(1),<br> <wbr>@sFamily varchar(8),<br> <wbr>@sName varchar(24),<br> <wbr>@sDisplayCodeValueInd char(1),<br> <wbr>@iRowCount int<br><br>SET NOCOUNT ON<br><br>CREATE TABLE #OrderedResultSet <br>(<br> <wbr>counter int identity(1,1),<br> <wbr>user_type char(1),<br> <wbr>user_id int, <wbr><br> <wbr>project_id int,<br> <wbr>identifier varchar(100), <wbr> <wbr> <wbr> <wbr> -- CR 26038 Project name length is increased to 100 characters<br> <wbr>xref varchar(32),<br> <wbr>contact_name varchar(50),<br> <wbr>description varchar(160),<br> <wbr>customer_id int,<br> <wbr>customer_name varchar(100), <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> -- CR 25891- Client name length is increased to 100 characters<br> <wbr>status varchar(16),<br> <wbr>name varchar(24), <br> <wbr>funding_type_code varchar(12), <wbr> <wbr> <wbr><br> <wbr>user_field_index int <wbr> <wbr> <br>)<br><br>CREATE TABLE #LocationsList<br>(<br> <wbr>location_key <wbr> <wbr>int <wbr> <wbr> <wbr>,<br> <wbr>location_room <wbr> <wbr>char(1) <wbr> <wbr>,<br> <wbr>location_family <wbr> <wbr>varchar(8) <wbr>,<br> <wbr>location_id <wbr> <wbr> <wbr>int<br>)<br><br>IF ( @p_sActionCode <wbr> <wbr>is null or @p_sActionCode <wbr>= '' ) <wbr>SET @p_sActionCode <wbr>= 'REFRESH'<br>IF ( @p_sView <wbr> <wbr> <wbr>is null or @p_sView <wbr> <wbr>= '' ) <wbr>SET @p_sView <wbr> <wbr>= 'ALL'<br>IF ( @p_sFilterBy <wbr> <wbr>is null or @p_sFilterBy <wbr> <wbr>= '' ) <wbr>SET @p_sFilterBy <wbr>= 'project_id'<br>IF ( @p_sSortBy <wbr> <wbr> <wbr>is null or @p_sSortBy <wbr> <wbr>= '' ) <wbr>SET @p_sSortBy <wbr> <wbr>= 'project_id'<br>IF ( @p_sOrderBy <wbr> <wbr>is null or @p_sOrderBy <wbr> <wbr>= '' ) <wbr>SET @p_sOrderBy <wbr> <wbr>= 'ASC'<br>IF ( @p_iPageSize <wbr> <wbr>is null or @p_iPageSize <wbr> <wbr>= '' ) <wbr>SET @p_iPageSize <wbr>= 10<br>IF ( @p_iStartRecord <wbr> <wbr>is null or @p_iStartRecord <wbr>= '' ) <wbr>SET @p_iStartRecord <wbr> = 1<br><br><br>SELECT<br> <wbr>@sRoom = room,<br> <wbr>@sFamily = family,<br> <wbr>@sName = name,<br> <wbr>@iUserKey = user_key<br>FROM<br> <wbr>CXmain.dbo.Users WITH (READUNCOMMITTED)<br>WHERE<br> <wbr>user_id = <wbr>@p_iLoggedUserId<br> <wbr>AND <wbr>user_type = @p_sLoggedUserType<br> <wbr><br>SELECT<br> <wbr>@iProjectScopeCode = project_scope_code,<br> <wbr>@iProjectScopeObjId = project_scope_object_key<br>FROM<br> <wbr>CXmain.dbo.User_Dashboard_Scope WITH (READUNCOMMITTED)<br>WHERE<br> <wbr>user_key = @iUserKey<br><br>IF @iProjectScopeCode IS NULL<br> <wbr>SELECT @iProjectScopeCode = 1<br><br>IF @iProjectScopeCode = 2<br> <wbr>SELECT @iProjAcctGrpId = @iProjectScopeObjId<br><br>IF @iProjectScopeCode = 4<br>BEGIN<br> <wbr>SELECT<br> <wbr> <wbr>@iProjOfficeLocId = location_id<br> <wbr>FROM<br> <wbr> <wbr>CXmain.dbffice_Locations WITH (READUNCOMMITTED)<br> <wbr>WHERE<br> <wbr> <wbr>office_location_key = @iProjectScopeObjId<br> <wbr><br> <wbr>INSERT INTO #LocationsList(<br> <wbr> <wbr>location_key,<br> <wbr> <wbr>location_room,<br> <wbr> <wbr>location_family,<br> <wbr> <wbr>location_id<br> <wbr>)<br> <wbr>SELECT<br> <wbr> <wbr>office_location_key,<br> <wbr> <wbr>room,<br> <wbr> <wbr>family,<br> <wbr> <wbr>location_id<br> <wbr>FROM<br> <wbr> <wbr>office_Locations<br> <wbr>WHERE<br> <wbr> <wbr>office_location_key = @iProjectScopeObjId<br> <wbr> <wbr><br> <wbr>SELECT @iRowCount = @@ROWCOUNT<br><br> <wbr>WHILE ( @iRowCount > 0 )<br> <wbr>BEGIN<br> <wbr> <wbr>INSERT INTO #LocationsList(<br> <wbr> <wbr> <wbr>location_key,<br> <wbr> <wbr> <wbr>location_room,<br> <wbr> <wbr> <wbr>location_family,<br> <wbr> <wbr> <wbr>location_id<br> <wbr> <wbr>)<br> <wbr> <wbr>SELECT<br> <wbr> <wbr> <wbr>office_location_key,<br> <wbr> <wbr> <wbr>room,<br> <wbr> <wbr> <wbr>family,<br> <wbr> <wbr> <wbr>location_id<br> <wbr> <wbr>FROM<br> <wbr> <wbr> <wbr>office_Locations<br> <wbr> <wbr>WHERE<br> <wbr> <wbr> <wbr>NOT EXISTS (<br> <wbr> <wbr> <wbr> <wbr>SELECT 1<br> <wbr> <wbr> <wbr> <wbr>FROM<br> <wbr> <wbr> <wbr> <wbr> <wbr>#LocationsList<br> <wbr> <wbr> <wbr> <wbr>WHERE<br> <wbr> <wbr> <wbr> <wbr> <wbr>office_location_key = location_key<br> <wbr> <wbr> <wbr>)<br> <wbr> <wbr> <wbr>AND EXISTS (<br> <wbr> <wbr> <wbr> <wbr>SELECT 1<br> <wbr> <wbr> <wbr> <wbr>FROM<br> <wbr> <wbr> <wbr> <wbr> <wbr>#LocationsList<br> <wbr> <wbr> <wbr> <wbr>WHERE<br> <wbr> <wbr> <wbr> <wbr> <wbr>location_room = parent_room<br> <wbr> <wbr> <wbr> <wbr> <wbr>AND location_family = parent_family<br> <wbr> <wbr> <wbr> <wbr> <wbr>AND location_id = parent_location_id<br> <wbr> <wbr> <wbr>)<br><br> <wbr> <wbr>SELECT @iRowCount = @@ROWCOUNT<br> <wbr>END<br>END <wbr> --End IF (@iProjectScopeCode = 4)<br><br>IF @iProjectScopeCode = 5<br>BEGIN<br> <wbr>SELECT<br> <wbr> <wbr>@iProjSiteLocId = location_id<br> <wbr>FROM<br> <wbr> <wbr>CXmain.dbo.Site_Locations WITH (READUNCOMMITTED)<br> <wbr>WHERE<br> <wbr> <wbr>site_location_key = @iProjectScopeObjId<br><br> <wbr>INSERT INTO #LocationsList (<br> <wbr> <wbr>location_key,<br> <wbr> <wbr>location_room,<br> <wbr> <wbr>location_family,<br> <wbr> <wbr>location_id<br> <wbr>)<br> <wbr>SELECT<br> <wbr> <wbr>site_location_key,<br> <wbr> <wbr>room,<br> <wbr> <wbr>family,<br> <wbr> <wbr>location_id<br> <wbr>FROM<br> <wbr> <wbr>site_Locations<br> <wbr>WHERE<br> <wbr> <wbr>site_location_key = @iProjectScopeObjId<br><br> <wbr>SELECT @iRowCount = @@ROWCOUNT<br><br> <wbr>WHILE ( @iRowCount > 0 )<br> <wbr>BEGIN<br> <wbr> <wbr>INSERT INTO #LocationsList (<br> <wbr> <wbr> <wbr>location_key,<br> <wbr> <wbr> <wbr>location_room,<br> <wbr> <wbr> <wbr>location_family,<br> <wbr> <wbr> <wbr>location_id<br> <wbr> <wbr>)<br> <wbr> <wbr>SELECT<br> <wbr> <wbr> <wbr>site_location_key,<br> <wbr> <wbr> <wbr>room,<br> <wbr> <wbr> <wbr>family,<br> <wbr> <wbr> <wbr>location_id<br> <wbr> <wbr>FROM<br> <wbr> <wbr> <wbr>site_Locations<br> <wbr> <wbr>WHERE<br> <wbr> <wbr> <wbr>NOT EXISTS ( <wbr><br> <wbr> <wbr> <wbr> <wbr>SELECT 1<br> <wbr> <wbr> <wbr> <wbr>FROM<br> <wbr> <wbr> <wbr> <wbr> <wbr>#LocationsList<br> <wbr> <wbr> <wbr> <wbr>WHERE<br> <wbr> <wbr> <wbr> <wbr> <wbr>site_location_key = location_key<br> <wbr> <wbr> <wbr>)<br> <wbr> <wbr> <wbr>AND EXISTS (<br> <wbr> <wbr> <wbr> <wbr>SELECT 1 <br> <wbr> <wbr> <wbr> <wbr>FROM<br> <wbr> <wbr> <wbr> <wbr> <wbr>#LocationsList<br> <wbr> <wbr> <wbr> <wbr>WHERE<br> <wbr> <wbr> <wbr> <wbr> <wbr>location_room = parent_room<br> <wbr> <wbr> <wbr> <wbr> <wbr>AND location_family = parent_family<br> <wbr> <wbr> <wbr> <wbr> <wbr>AND location_id = parent_location_id<br> <wbr> <wbr> <wbr>)<br><br> <wbr> <wbr>SELECT @iRowCount = @@ROWCOUNT<br> <wbr>END<br>END <wbr> --End IF @iProjectScopeCode = 5<br><br>IF @iProjectScopeCode = 6<br> <wbr>SELECT @iProjCustId = @iProjectScopeObjId<br><br><br>SELECT<br> <wbr>@sDisplayCodeValueInd = display_code_value_ind<br>FROM<br> <wbr>Cxmain.dbo.Code_Table_Label WITH (READUNCOMMITTED)<br>WHERE<br> <wbr>room = @sRoom<br> <wbr>AND family = @sFamily<br> <wbr>AND code_table_id = 1020<br><br>SET @sSQL = N'<br>INSERT INTO #OrderedResultSet <br>( <br> <wbr>user_type, <br> <wbr>user_id, <br> <wbr>project_id, <br> <wbr>identifier, <br> <wbr>xref, <br> <wbr>contact_name, <br> <wbr>description, <br> <wbr>customer_id, <br> <wbr>customer_name, <br> <wbr>status, <br> <wbr>name, <br> <wbr>funding_type_code, <wbr> <br> <wbr>user_field_index <br>) <br>'<br><br>IF (@p_sView = 'ALL')<br>BEGIN<br> <wbr>SET @sSQL = @sSQL + N'<br> <wbr>SELECT <br> <wbr> <wbr>p.project_user_type, <br> <wbr> <wbr>p.project_user_id, <br> <wbr> <wbr>p.project_id, <br> <wbr> <wbr>p.project_identifier, <br> <wbr> <wbr>p.project_xref, <br> <wbr> <wbr>p.project_contact_name, <br> <wbr> <wbr>p.project_description, <br> <wbr> <wbr>p.project_customer_id, <wbr> <br> <wbr> <wbr>p.project_customer_name, <br> <wbr> <wbr>p.project_status_name, <br> <wbr> <wbr>p.project_owner_name, <br> <wbr> <wbr>p.project_funding_type_code, <br> <wbr> <wbr>p.project_user_field_index <wbr> <wbr> <br> <wbr>FROM <br> <wbr> <wbr>CXmain.dbo.Viewable_Projects_All_Security_In_One_VW p WITH (READUNCOMMITTED)<br> <wbr>WHERE <br> <wbr> <wbr>p.user_type = @p_sLoggedUserType <br> <wbr> <wbr>AND p.user_id = @p_iLoggedUserId <wbr> <wbr> <wbr> <wbr> <wbr><br> <wbr> <wbr>AND p.bus_rule_mask LIKE ''1%''<br> <wbr>' <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr><br>END -- end all<br>ELSE IF (@p_sView = 'MY')<br>BEGIN<br> <wbr>SET @sSQL = @sSQL + N'<br> <wbr>SELECT<br> <wbr> <wbr>p.user_type project_user_type,<br> <wbr> <wbr>p.user_id project_user_id,<br> <wbr> <wbr>p.project_id project_id,<br> <wbr> <wbr>p.identifier project_identifier,<br> <wbr> <wbr>p.xref project_xref,<br> <wbr> <wbr>p.contact_name project_contact_name,<br> <wbr> <wbr>p.description project_description,<br> <wbr> <wbr>p.customer_id project_customer_id,<br> <wbr> <wbr>ISNULL(c.customer_name,''<Secured>'') project_customer_name,<br> <wbr> <wbr>s.status_name project_status_name,<br> <wbr> <wbr>@sName project_owner_name,<br> <wbr> <wbr>p.funding_type_code project_funding_type_code,<br> <wbr> <wbr>p.user_field_index project_user_field_index<br> <wbr>FROM<br> <wbr> <wbr>CXmain.dbo.Projects p WITH (READUNCOMMITTED)<br> <wbr> <wbr>INNER JOIN CXmain.dbo.Status s WITH (READUNCOMMITTED)<br> <wbr> <wbr> <wbr>ON p.project_status_id = s.status_id<br> <wbr> <wbr>LEFT OUTER JOIN CXmain.dbo.Secured_Client_Display_Base_vw c WITH (READUNCOMMITTED)<br> <wbr> <wbr> <wbr>ON p.customer_id = c.customer_id<br> <wbr> <wbr> <wbr>AND c.active_user_id = @p_iLoggedUserId<br> <wbr>WHERE<br> <wbr> <wbr>p.user_type = @p_sLoggedUserType<br> <wbr> <wbr>AND p.user_id = @p_iLoggedUserId<br> <wbr> <wbr>AND s.room = @sRoom<br> <wbr> <wbr>AND s.family = @sFamily<br> <wbr> <wbr>AND s.application_object_id = 3<br> <wbr>'<br> <wbr>IF (@p_bookedProjects = 'Y')<br> <wbr>BEGIN<br> <wbr> <wbr>SET @sSQL = @sSQL + '<br> <wbr> <wbr>AND s.bus_rule_mask like ''1%''<br> <wbr> <wbr>'<br> <wbr>END<br>END <wbr>-- my<br>ELSE IF (@p_sView = 'EDIT')<br>BEGIN<br> <wbr>SET @sSQL = @sSQL + N'<br> <wbr>SELECT<br> <wbr> <wbr>p.project_user_type,<br> <wbr> <wbr>p.project_user_id,<br> <wbr> <wbr>p.project_id,<br> <wbr> <wbr>p.project_identifier,<br> <wbr> <wbr>p.project_xref,<br> <wbr> <wbr>p.project_contact_name,<br> <wbr> <wbr>p.project_description,<br> <wbr> <wbr>p.project_customer_id,<br> <wbr> <wbr>p.project_customer_name,<br> <wbr> <wbr>p.project_status_name,<br> <wbr> <wbr>p.project_owner_name,<br> <wbr> <wbr>p.project_funding_type_code,<br> <wbr> <wbr>p.project_user_field_index<br> <wbr>FROM<br> <wbr> <wbr>CXmain.dbo.Viewable_Projects_All_Security_In_One_VW p WITH (READUNCOMMITTED)<br> <wbr>WHERE<br> <wbr> <wbr>p.user_type = @p_sLoggedUserType<br> <wbr> <wbr>AND p.user_id = @p_iLoggedUserId<br> <wbr> <wbr>AND SUBSTRING(p.permission_mask, 2, 1) = ''1''<br> <wbr> <wbr>AND p.bus_rule_mask like ''1%''<br> <wbr>'<br>END <wbr> -- end edit<br>ELSE IF (@p_sView = 'TOTAL_PROJECTS' OR @p_sView = 'PROJ_OPEN_POSITIONS' OR @p_sView = 'PROJ_OPEN_POSTINGS')<br>BEGIN<br> <wbr>IF (@iProjAcctGrpID IS NOT NULL AND @iProjAcctGrpID <>'' AND @iProjAcctGrpID<>'0')<br> <wbr>BEGIN<br> <wbr> <wbr>SET @sSQL = @sSQL + N'<br> <wbr> <wbr>SELECT<br> <wbr> <wbr> <wbr>p.project_user_type,<br> <wbr> <wbr> <wbr>p.project_user_id,<br> <wbr> <wbr> <wbr>p.project_id,<br> <wbr> <wbr> <wbr>p.project_identifier,<br> <wbr> <wbr> <wbr>p.project_xref,<br> <wbr> <wbr> <wbr>p.project_contact_name,<br> <wbr> <wbr> <wbr>p.project_description,<br> <wbr> <wbr> <wbr>p.project_customer_id,<br> <wbr> <wbr> <wbr>p.project_customer_name,<br> <wbr> <wbr> <wbr>p.project_status_name,<br> <wbr> <wbr> <wbr>p.project_owner_name,<br> <wbr> <wbr> <wbr>p.project_funding_type_code,<br> <wbr> <wbr> <wbr>p.project_user_field_index<br> <wbr> <wbr>FROM<br> <wbr> <wbr> <wbr>CXmain.dbo.Viewable_Projects_All_Security_In_One_VW p WITH (READUNCOMMITTED)<br> <wbr> <wbr> <wbr>INNER JOIN CXmain.dbo.Preferred_Vendors_Assign pva WITH (READUNCOMMITTED)<br> <wbr> <wbr> <wbr> <wbr>ON pva.member_id = p.project_user_id<br> <wbr> <wbr> <wbr> <wbr>AND pva.member_type = p.project_user_type <wbr><br> <wbr> <wbr>WHERE<br> <wbr> <wbr> <wbr>p.user_type = @p_sLoggedUserType<br> <wbr> <wbr> <wbr>AND p.user_id = @p_iLoggedUserId<br> <wbr> <wbr> <wbr>AND pva.pref_vend_group = @iProjAcctGrpID<br> <wbr> <wbr> <wbr>AND p.bus_rule_mask like ''1%''<br> <wbr> <wbr>'<br><br> <wbr> <wbr>IF (@p_sView = 'PROJ_OPEN_POSITIONS')<br> <wbr> <wbr>BEGIN<br> <wbr> <wbr> <wbr>SET @sSQL = @sSQL + N' <br> <wbr> <wbr> <wbr>AND EXISTS ( <br> <wbr> <wbr> <wbr> <wbr>SELECT 1 <br> <wbr> <wbr> <wbr> <wbr>FROM<br> <wbr> <wbr> <wbr> <wbr> <wbr>CXmain.dbo.Project_Detail pd WITH (READUNCOMMITTED)<br> <wbr> <wbr> <wbr> <wbr>WHERE <br> <wbr> <wbr> <wbr> <wbr> <wbr>p.project_user_type = pd.user_type<br> <wbr> <wbr> <wbr> <wbr> <wbr>AND p.project_user_id = pd.user_id<br> <wbr> <wbr> <wbr> <wbr> <wbr>AND p.project_id = pd.project_id<br> <wbr> <wbr> <wbr> <wbr> <wbr>AND pd.project_object_id = 1<br> <wbr> <wbr> <wbr>)<br> <wbr> <wbr> <wbr>' <br> <wbr> <wbr>END -- end proj_open_positions<br> <wbr> <wbr>ELSE IF (@p_sView = 'PROJ_OPEN_POSTINGS')<br> <wbr> <wbr>BEGIN<br> <wbr> <wbr> <wbr>SET @sSQL = @sSQL + N'<br> <wbr> <wbr> <wbr>AND EXISTS (<br> <wbr> <wbr> <wbr> <wbr>SELECT 1 <br> <wbr> <wbr> <wbr> <wbr>FROM<br> <wbr> <wbr> <wbr> <wbr> <wbr>CXmain.dbo.Posting po WITH (READUNCOMMITTED) <wbr><br> <wbr> <wbr> <wbr> <wbr>WHERE <br> <wbr> <wbr> <wbr> <wbr> <wbr>p.project_user_type = po.project_user_type <br> <wbr> <wbr> <wbr> <wbr> <wbr>AND p.project_user_id = po.project_user_id <br> <wbr> <wbr> <wbr> <wbr> <wbr>AND p.project_id = po.project_id <br> <wbr> <wbr> <wbr> <wbr> <wbr>AND po.status = ''A'' <br> <wbr> <wbr> <wbr> <wbr> <wbr>AND po.date_timeout > getdate() <br> <wbr> <wbr> <wbr>)<br> <wbr> <wbr> <wbr>'<br> <wbr> <wbr>END<br> <wbr>END --if account group<br> <wbr>ELSE -- not account group <br> <wbr>BEGIN<br> <wbr> <wbr>SET @sSQL = @sSQL + N'<br> <wbr> <wbr>SELECT <br> <wbr> <wbr> <wbr>pr.user_type project_user_type,<br> <wbr> <wbr> <wbr>pr.user_id project_user_id,<br> <wbr> <wbr> <wbr>pr.project_id project_id,<br> <wbr> <wbr> <wbr>pr.identifier project_identifier,<br> <wbr> <wbr> <wbr>pr.xref project_xref,<br> <wbr> <wbr> <wbr>pr.contact_name project_contact_name,<br> <wbr> <wbr> <wbr>pr.description project_description,<br> <wbr> <wbr> <wbr>pr.customer_id project_customer_id,<br> <wbr> <wbr> <wbr>ISNULL(c.customer_name,''<Secured>'') project_customer_name,<br> <wbr> <wbr> <wbr>s.status_name project_status_name,<br> <wbr> <wbr> <wbr>@sName project_owner_name,<br> <wbr> <wbr> <wbr>pr.funding_type_code project_funding_type_code,<br> <wbr> <wbr> <wbr>pr.user_field_index project_user_field_index<br> <wbr> <wbr>FROM<br> <wbr> <wbr> <wbr>CXmain.dbo.Viewable_Projects_All_Security_In_One_VW p WITH (READUNCOMMITTED)<br> <wbr> <wbr> <wbr>INNER JOIN CXmain.dbo.Projects pr WITH (READUNCOMMITTED)<br> <wbr> <wbr> <wbr> <wbr>ON pr.project_key = p.project_key<br> <wbr> <wbr> <wbr>INNER JOIN CXmain.dbo.Status s WITH (READUNCOMMITTED)<br> <wbr> <wbr> <wbr> <wbr>ON pr.project_status_id = s.status_id <br> <wbr> <wbr> <wbr>LEFT OUTER JOIN CXmain.dbo.Secured_Client_Display_Base_vw c WITH (READUNCOMMITTED)<br> <wbr> <wbr> <wbr> <wbr>ON pr.customer_id = c.customer_id<br> <wbr> <wbr> <wbr> <wbr>AND c.active_user_id = @p_iLoggedUserId '<br><br><br> <wbr> <wbr>IF (@iProjOfficeLocId IS NOT NULL AND @iProjOfficeLocId <>'' AND @iProjOfficeLocId<>'0')<br> <wbr> <wbr>BEGIN<br> <wbr> <wbr> <wbr>SET @sSQL = @sSQL + N'<br> <wbr> <wbr> <wbr>INNER JOIN #LocationsList oll WITH (READUNCOMMITTED)<br> <wbr> <wbr> <wbr> <wbr>ON pr.office_location_room = oll.location_room<br> <wbr> <wbr> <wbr> <wbr>AND pr.office_location_family = oll.location_family<br> <wbr> <wbr> <wbr> <wbr>AND pr.office_location_id = oll.location_id'<br> <wbr> <wbr>END<br><br> <wbr> <wbr>IF (@iProjSiteLocId IS NOT NULL AND @iProjSiteLocId <>'' AND @iProjSiteLocId<>'0')<br> <wbr> <wbr>BEGIN<br> <wbr> <wbr> <wbr>-- CR: 25655 : In Decision dashboard set scope to site location and view the Projects COW, no projects are displayed. <br> <wbr> <wbr> <wbr>-- so following condition is modified -- pr.office_location_family into pr.site_locaiton_family<br><br> <wbr> <wbr> <wbr>SET @sSQL = @sSQL + N'<br> <wbr> <wbr> <wbr>INNER JOIN #LocationsList sll WITH (READUNCOMMITTED)<br> <wbr> <wbr> <wbr> <wbr>ON pr.site_location_room = sll.location_room<br> <wbr> <wbr> <wbr> <wbr>AND pr.site_location_family = sll.location_family <br> <wbr> <wbr> <wbr> <wbr>AND pr.site_location_id = sll.location_id' <wbr> <br> <wbr> <wbr>END<br><br> <wbr> <wbr>SET @sSQL = @sSQL + N'<br> <wbr> <wbr>WHERE<br> <wbr> <wbr> <wbr>p.user_type = @p_sLoggedUserType<br> <wbr> <wbr> <wbr>AND p.user_id = @p_iLoggedUserId<br> <wbr> <wbr> <wbr>AND s.room = @sRoom<br> <wbr> <wbr> <wbr>AND s.family = @sFamily<br> <wbr> <wbr> <wbr>AND s.application_object_id = 3<br> <wbr> <wbr> <wbr>AND s.bus_rule_mask like ''1%''<br> <wbr> <wbr>'<br><br> <wbr> <wbr>-- If the project scope is account, limit the results to the account's projects<br> <wbr> <wbr>IF (@iProjectScopeCode = 1)<br> <wbr> <wbr>BEGIN<br> <wbr> <wbr> <wbr>SET @sSQL = @sSQL + N'<br> <wbr> <wbr> <wbr> <wbr>AND pr.user_id = @p_iLoggedUserId<br> <wbr> <wbr> <wbr>'<br> <wbr> <wbr>END<br><br> <wbr> <wbr>IF (@iProjCustId IS NOT NULL AND @iProjCustId <>'' AND @iProjCustId<>'0')<br> <wbr> <wbr> <wbr>SET @sSQL = @sSQL + N'<br> <wbr> <wbr> <wbr>AND pr.customer_id = ' + convert(varchar, @iProjCustId)<br><br> <wbr> <wbr>IF (@p_sView = 'PROJ_OPEN_POSITIONS')<br> <wbr> <wbr>BEGIN<br> <wbr> <wbr> <wbr>SET @sSQL = @sSQL + N'<br> <wbr> <wbr> <wbr>AND EXISTS (<br> <wbr> <wbr> <wbr> <wbr>SELECT 1 <br> <wbr> <wbr> <wbr> <wbr>FROM<br> <wbr> <wbr> <wbr> <wbr> <wbr>CXmain.dbo.Project_Detail pd WITH (READUNCOMMITTED)<br> <wbr> <wbr> <wbr> <wbr>WHERE<br> <wbr> <wbr> <wbr> <wbr> <wbr>pr.user_type = pd.user_type<br> <wbr> <wbr> <wbr> <wbr> <wbr>AND pr.user_id = pd.user_id<br> <wbr> <wbr> <wbr> <wbr> <wbr>AND pr.project_id = pd.project_id<br> <wbr> <wbr> <wbr> <wbr> <wbr>AND pd.project_object_id = 1<br> <wbr> <wbr> <wbr>)<br> <wbr> <wbr> <wbr>'<br> <wbr> <wbr>END<br> <wbr> <wbr>ELSE IF (@p_sView = 'PROJ_OPEN_POSTINGS')<br> <wbr> <wbr>BEGIN<br> <wbr> <wbr> <wbr>SET @sSQL = @sSQL + N'<br> <wbr> <wbr> <wbr>AND EXISTS (<br> <wbr> <wbr> <wbr> <wbr>SELECT 1<br> <wbr> <wbr> <wbr> <wbr>FROM<br> <wbr> <wbr> <wbr> <wbr> <wbr>CXmain.dbo.Posting po WITH (READUNCOMMITTED)<br> <wbr> <wbr> <wbr> <wbr>WHERE<br> <wbr> <wbr> <wbr> <wbr> <wbr>pr.user_type = po.project_user_type<br> <wbr> <wbr> <wbr> <wbr> <wbr>AND pr.user_id = po.project_user_id<br> <wbr> <wbr> <wbr> <wbr> <wbr>AND pr.project_id = po.project_id<br> <wbr> <wbr> <wbr> <wbr> <wbr>AND po.status = ''A''<br> <wbr> <wbr> <wbr> <wbr> <wbr>AND po.date_timeout > getdate()<br> <wbr> <wbr> <wbr>)<br> <wbr> <wbr> <wbr>'<br> <wbr> <wbr>END<br> <wbr>END -- end not account group<br>END -- end total projects or open positions or open postings<br><br>IF (@p_sContaining is not null) AND (@p_sContaining <> '') <wbr><br>BEGIN<br>/* CR 25985 - Condition to be checked for <wbr> opens project with search parameter in project <wbr> maintenance */<br>IF <wbr>( @p_sView = 'MY' ) <br> <wbr> <wbr><br> <wbr>BEGIN<br> <wbr> <wbr>SELECT @sSQL = @sSQL + <br> <wbr> <wbr>CASE<br> <wbr> <wbr> <wbr>WHEN( @p_sFilterBy = 'project_id') THEN N' AND p.user_type +CONVERT(varchar,p.user_id) + ''-'' + CONVERT(varchar,p.project_id) like"%' + @p_sContaining + N'%" '<br> <wbr> <wbr> <wbr>WHEN ( @p_sFilterBy = 'identifier ') THEN <wbr> N' AND p.identifier like "%' + @p_sContaining + N'%" '<br> <wbr> <wbr> <wbr>WHEN ( @p_sFilterBy = 'xref') THEN N' AND p.xref like "%' + @p_sContaining + N'%" '<br> <wbr> <wbr> <wbr>WHEN ( @p_sFilterBy = 'contact_name') THEN N' AND p.contact_name like <wbr>"%' + @p_sContaining + N'%" '<br> <wbr> <wbr> <wbr>WHEN ( @p_sFilterBy = 'description') THEN <wbr> N' AND p.description like <wbr> "%' + @p_sContaining + N'%" ' <wbr> <wbr><br> <wbr> <wbr> <wbr>WHEN ( @p_sFilterBy = 'customer_name') THEN <wbr> N' AND c.customer_name like "%' + @p_sContaining + N'%" '<br> <wbr> <wbr> <wbr>WHEN ( @p_sFilterBy = 'status' <wbr> <wbr>) THEN <wbr> N' AND s.status_name like "%' + @p_sContaining + N'%" '<br> <wbr> <wbr> <wbr>WHEN ( @p_sFilterBy = 'name') THEN <wbr> N' AND "'+@sName+ '" like "%' + @p_sContaining + N'%" ' <wbr><br> <wbr> <wbr> <wbr>WHEN ( @p_sFilterBy = 'account' <wbr>) THEN N' AND "'+@sName+ '" like "%' + @p_sContaining + N'%" '<br> <wbr> <wbr> <wbr>WHEN ( @p_sFilterBy = 'funding_type_code' <wbr>) THEN N' AND p.funding_type_code like "%' + @p_sContaining + N'%" ' <wbr><br> <wbr> <wbr>END <wbr> <wbr><br> <wbr>END<br> <wbr>/* CR:26173 : Checking @iProjAcctGrpId is not necessary for filter : ref: <wbr> commented in Version 30 */<br> <wbr>-- <wbr> IF <wbr>( @p_sView = 'TOTAL_PROJECTS' AND ( @iProjAcctGrpId IS NULL OR @iProjAcctGrpId = '' OR @iProjAcctGrpId = '0') )<br> <wbr>-- <wbr>OR <wbr>( @p_sView = 'PROJ_OPEN_POSITIONS' AND ( @iProjAcctGrpId IS NULL OR @iProjAcctGrpId = '' OR @iProjAcctGrpId = '0') )<br> <wbr>-- <wbr>OR <wbr>( @p_sView = 'PROJ_OPEN_POSTINGS'AND ( @iProjAcctGrpId IS NULL OR @iProjAcctGrpId = '' OR @iProjAcctGrpId = '0') )<br><br> <wbr>IF(@p_sView = 'TOTAL_PROJECTS' OR @p_sView = 'PROJ_OPEN_POSITIONS' OR <wbr> @p_sView = 'PROJ_OPEN_POSTINGS')<br> <wbr>BEGIN<br> <wbr> <wbr>/* CR 20355 lgf 07-15-03 - changed code to handle apostrophe's */<br> <wbr> <wbr>SELECT @sSQL= @sSQL + <br> <wbr> <wbr> <wbr>CASE <br> <wbr> <wbr> <wbr> <wbr>WHEN( @p_sFilterBy = 'project_id') THEN N' AND p.project_user_type +CONVERT(varchar,p.project_user_id) + ''-'' +CONVERT(varchar,p.project_id) like "%' + @p_sContaining + N'%" '<br> <wbr> <wbr> <wbr> <wbr>WHEN ( @p_sFilterBy = 'identifier ') THEN N' AND p.project_identifier like "%' + @p_sContaining + N'%" '<br> <wbr> <wbr> <wbr> <wbr>WHEN ( @p_sFilterBy = 'xref') THEN N' AND p.project_xref like "%' + @p_sContaining + N'%" '<br> <wbr> <wbr> <wbr> <wbr>WHEN ( @p_sFilterBy = 'contact_name') THEN N' AND p.project_contact_name like "%' + @p_sContaining + N'%" '<br> <wbr> <wbr> <wbr> <wbr>WHEN ( @p_sFilterBy = 'description') THEN N' AND p.project_description like "%' + @p_sContaining + N'%" ' <wbr> <wbr><br> <wbr> <wbr> <wbr> <wbr>WHEN ( @p_sFilterBy = 'customer_name') THEN N' AND p.project_customer_name like "%' + @p_sContaining + N'%" '<br> <wbr> <wbr> <wbr> <wbr>WHEN ( @p_sFilterBy = 'status') THEN N' AND p.project_status_name like "%' + @p_sContaining + N'%" '<br> <wbr> <wbr> <wbr> <wbr>WHEN ( @p_sFilterBy = 'name') THEN N' AND p.project_owner_name like "%' + @p_sContaining + N'%" ' <wbr><br> <wbr> <wbr> <wbr> <wbr>WHEN ( @p_sFilterBy = 'account') THEN N' AND p.project_owner_name like "%' + @p_sContaining + N'%" ' <wbr><br> <wbr> <wbr> <wbr> <wbr>WHEN ( @p_sFilterBy = 'funding_type_code') THEN N' AND p.project_funding_type_code like "%' + @p_sContaining + N'%" ' <wbr> <wbr><br> <wbr> <wbr> <wbr>END <wbr> <wbr><br> <wbr>END<br>/* CR 25985 end */<br>/* CR 25994 - condition to be checked for ALL Projects <wbr> */<br> <wbr> <wbr> <br> <wbr> <wbr> --IF ( @p_sView = 'ALL' <wbr> <img src="http://www.sqlservercentral.com/Forums/Skins/Classic/Images/EmotIcons/Wink.gif" title="Wink" align="absmiddle" border="0"> <br> <wbr> <wbr> <br> <wbr> <wbr> IF <wbr>( ( @p_sView = 'ALL') <wbr> OR ( @p_sView = 'EDIT')) <br><br> <wbr> <wbr> <wbr> <wbr> BEGIN <wbr><br> <wbr> <wbr> <wbr>SELECT @sSQL= @sSQL + <br> <wbr> <wbr> <wbr>CASE<br> <wbr> <wbr> <wbr> <wbr>WHEN( @p_sFilterBy = 'project_id') THEN N' AND p.project_user_type +CONVERT(varchar,p.project_user_id) + ''-'' +CONVERT(varchar,p.project_id) like "%' + @p_sContaining + N'%" '<br> <wbr> <wbr> <wbr> <wbr>WHEN ( @p_sFilterBy = 'identifier ') THEN N' AND p.project_identifier like "%' + @p_sContaining + N'%" '<br> <wbr> <wbr> <wbr> <wbr>WHEN ( @p_sFilterBy = 'xref') <wbr> THEN N' AND p.project_xref like "%' + @p_sContaining + N'%" '<br> <wbr> <wbr> <wbr> <wbr>WHEN ( @p_sFilterBy = 'contact_name') THEN N' AND p.project_contact_name like "%' + @p_sContaining + N'%" '<br> <wbr> <wbr> <wbr> <wbr>WHEN ( @p_sFilterBy = 'status') THEN N' AND p.project_status_name like "%' + @p_sContaining + N'%" '<br> <wbr> <wbr> <wbr> <wbr>WHEN ( @p_sFilterBy = 'name') <wbr> THEN N' AND p.project_owner_name like "%' + @p_sContaining + N'%" ' <wbr><br> <wbr> <wbr> <wbr> <wbr>WHEN ( @p_sFilterBy = 'account') THEN N' AND p.project_owner_name like "%' + @p_sContaining + N'%" ' <wbr><br> <wbr> <wbr> <wbr> <wbr>WHEN ( @p_sFilterBy = 'funding_type_code') THEN N' AND p.project_funding_type_code like "%' + @p_sContaining + N'%" ' <wbr> <wbr><br> <wbr> <wbr> <wbr>END <wbr> <wbr> <wbr> <wbr> <wbr> <br><br> <wbr> <wbr> <wbr> <wbr> END<br>/* 25994 end */<br>END<br><br>IF ( @p_sStartWith is not null) AND ( @p_sStartWith <wbr><> '') <wbr><br><br>/* CR -25985 Condition to be checked for <wbr> opens project with search parameter in project <wbr> maintenance.*/<br>/* CR:26173 : Checking @iProjAcctGrpId is not necessary for filter : ref: <wbr> commented in Version 30 */<br><br>BEGIN<br> <wbr> <wbr> -- IF( @p_sView = 'TOTAL_PROJECTS' AND ( @iProjAcctGrpId IS NULL OR @iProjAcctGrpId = '' OR @iProjAcctGrpId = '0') )<br> <wbr>--OR <wbr>( @p_sView = 'PROJ_OPEN_POSITIONS' AND ( @iProjAcctGrpId IS NULL OR @iProjAcctGrpId = '' OR @iProjAcctGrpId = '0') )<br> <wbr>--OR <wbr>( @p_sView = 'PROJ_OPEN_POSTINGS'AND ( @iProjAcctGrpId IS NULL OR @iProjAcctGrpId = '' OR @iProjAcctGrpId = '0'))<br> <wbr>IF( @p_sView = 'TOTAL_PROJECTS' OR <wbr> @p_sView = 'PROJ_OPEN_POSITIONS' OR <wbr> @p_sView = 'PROJ_OPEN_POSTINGS')<br> <wbr>BEGIN<br> <wbr> <wbr>SELECT @sSQL= @sSQL + <br> <wbr> <wbr>CASE<br> <wbr> <wbr> <wbr>WHEN( @p_sFilterBy = 'project_id') THEN N' AND p.project_user_type +CONVERT(varchar,p.project_user_id) + ''-'' +CONVERT(varchar,p.project_id) like "' + @p_sStartWith + N'%" '<br> <wbr> <wbr> <wbr>WHEN ( @p_sFilterBy = 'identifier ') <wbr> THEN N' AND p.project_identifier like "' + @p_sStartWith + N'%" '<br> <wbr> <wbr> <wbr>WHEN ( @p_sFilterBy = 'xref') <wbr> THEN N' AND p.project_xref like "' + @p_sStartWith + N'%" '<br> <wbr> <wbr> <wbr>WHEN ( @p_sFilterBy = 'contact_name') <wbr> THEN N' AND p.project_contact_name like "' + @p_sStartWith + N'%" '<br> <wbr> <wbr> <wbr>WHEN ( @p_sFilterBy = 'description') <wbr> THEN N' AND p.project_description like "' + @p_sStartWith + N'%" ' <wbr> <wbr><br> <wbr> <wbr> <wbr>WHEN ( @p_sFilterBy = 'customer_name') <wbr> THEN N' AND p.project_customer_name like "' + @p_sStartWith + N'%" '<br> <wbr> <wbr> <wbr>WHEN ( @p_sFilterBy = 'status') <wbr> THEN N' AND p.project_status_name like "' + @p_sStartWith + N'%" '<br> <wbr> <wbr> <wbr>WHEN ( @p_sFilterBy = 'name') <wbr> THEN N' AND p.project_owner_name like "' + @p_sStartWith + N'%" ' <wbr><br> <wbr> <wbr> <wbr>WHEN ( @p_sFilterBy = 'account' <wbr>) <wbr> THEN N' AND p.project_owner_name like "' + @p_sStartWith + N'%" ' <wbr><br> <wbr> <wbr> <wbr>WHEN ( @p_sFilterBy = 'funding_type_code') <wbr> THEN N' AND p.project_funding_type_code like "' + @p_sStartWith + N'%" ' <wbr> <wbr><br> <wbr> <wbr>END<br><br> <wbr>END<br> <wbr><br> <wbr> <wbr> IF <wbr>( @p_sView = 'MY' ) <br> <wbr>BEGIN<br> <wbr> <wbr>SELECT @sSQL= @sSQL + <br> <wbr> <wbr>CASE<br> <wbr> <wbr> <wbr>WHEN ( @p_sFilterBy = 'project_id') <wbr> THENN' AND p.user_type + CONVERT(varchar,p.user_id) + ''-'' +CONVERT(varchar,p.project_id) like "' + @p_sStartWith + N'%" ' --KJC<br> <wbr> <wbr> <wbr>WHEN ( @p_sFilterBy = 'identifier ') <wbr> THEN N' AND p.identifier like "' + @p_sStartWith + N'%" ' <br> <wbr> <wbr> <wbr>WHEN ( @p_sFilterBy = 'xref') <wbr> THEN N' AND p.xref like "' + @p_sStartWith + N'%" ' <br> <wbr> <wbr> <wbr>WHEN ( @p_sFilterBy = 'contact_name') <wbr> THEN N' AND p.contact_name like <wbr>"' + @p_sStartWith + N'%" '<br> <wbr> <wbr> <wbr>WHEN ( @p_sFilterBy = 'description') <wbr> THEN N' AND p.description like <wbr> "' + @p_sStartWith + N'%" ' <wbr> <wbr><br> <wbr> <wbr> <wbr>WHEN ( @p_sFilterBy = 'customer_name') <wbr> THEN N' AND c.customer_name like "' + @p_sStartWith + N'%" '<br> <wbr> <wbr> <wbr>WHEN ( @p_sFilterBy = 'status') <wbr> THEN N' AND s.status_name like "' + @p_sStartWith + N'%" '<br> <wbr> <wbr> <wbr>WHEN ( @p_sFilterBy = 'name') <wbr> THEN N' AND "'+@sName+ '" like "' + @p_sStartWith + N'%" ' <wbr><br> <wbr> <wbr> <wbr>WHEN ( @p_sFilterBy = 'account') <wbr> THEN N' AND "'+@sName+ '" like "' + @p_sStartWith + N'%" ' <br> <wbr> <wbr> <wbr>WHEN ( @p_sFilterBy = 'funding_type_code') <wbr> THEN N' AND p.funding_type_code like "' + @p_sStartWith + N'%" ' <wbr><br> <wbr> <wbr>END<br> <wbr> <wbr><br> <wbr>END<br><br><br>/* CR 25994 - condition to be checked for ALL Projects <wbr> */<br> <wbr> <wbr> -- <wbr> IF <wbr>( @p_sView = 'ALL' <wbr> <img src="http://www.sqlservercentral.com/Forums/Skins/Classic/Images/EmotIcons/Wink.gif" title="Wink" align="absmiddle" border="0"> <br> <wbr> <wbr> <br> <wbr> <wbr> IF <wbr>( ( @p_sView = 'ALL') <wbr> OR ( @p_sView = 'EDIT')) <br> <wbr> <wbr> <wbr> <wbr> BEGIN<br> <wbr> <wbr> <wbr>SELECT @sSQL= @sSQL + <br> <wbr> <wbr> <wbr>CASE<br> <wbr> <wbr> <wbr> <wbr>WHEN ( @p_sFilterBy = 'project_id') <wbr> THENN' AND p.project_user_type + CONVERT(varchar,p.project_user_id) + ''-''+ CONVERT(varchar,p.project_id) like "' + @p_sStartWith + N'%" '<br> <wbr> <wbr> <wbr> <wbr>WHEN ( @p_sFilterBy = 'identifier ' <wbr>) <wbr> THEN N' AND p.project_identifier like "' + @p_sStartWith + N'%" '<br> <wbr> <wbr> <wbr> <wbr>WHEN ( @p_sFilterBy = 'xref') <wbr> THEN N' AND p.project_xref like "' + @p_sStartWith + N'%" '<br> <wbr> <wbr> <wbr> <wbr>WHEN ( @p_sFilterBy = 'contact_name') <wbr> THEN N' AND p.project_contact_name like "' + @p_sStartWith + N'%" '<br> <wbr> <wbr> <wbr> <wbr>WHEN ( @p_sFilterBy = 'description') <wbr> THEN N' AND p.project_description like "' + @p_sStartWith + N'%" ' <wbr> <wbr><br> <wbr> <wbr> <wbr> <wbr>WHEN ( @p_sFilterBy = 'customer_name') <wbr> THEN N' AND p.project_customer_name like "' + @p_sStartWith + N'%" '<br> <wbr> <wbr> <wbr> <wbr>WHEN ( @p_sFilterBy = 'status') <wbr> THEN N' AND p.project_status_name like "' + @p_sStartWith + N'%" '<br> <wbr> <wbr> <wbr> <wbr>WHEN ( @p_sFilterBy = 'name') <wbr> THEN N' AND p.project_owner_name like "' + @p_sStartWith + N'%" ' <wbr><br> <wbr> <wbr> <wbr> <wbr>WHEN ( @p_sFilterBy = 'account') <wbr> THEN N' AND p.project_owner_name like "' + @p_sStartWith + N'%" ' <wbr><br> <wbr> <wbr> <wbr> <wbr>WHEN ( @p_sFilterBy = 'funding_type_code') <wbr> THEN N' AND p.project_funding_type_code like "' + @p_sStartWith + N'%" ' <wbr> <wbr><br> <wbr> <wbr> <wbr>END<br> <wbr> <wbr> <wbr> <wbr> END<br>/* CR 25994 - end */<br><br>END<br>/* CR -25985 <wbr> */<br><br>IF ( @p_sSortBy is not null ) AND ( @p_sSortBy <> '')<br>BEGIN<br> <wbr>SELECT @sSQL= @sSQL + <br> <wbr>CASE<br> <wbr> <wbr>WHEN ( @p_sSortBy = 'project_id') <wbr> THEN N' ORDER BY project_user_type, project_user_id, project_id ' + @p_sOrderBy<br> <wbr> <wbr>WHEN ( @p_sSortBy = 'identifier ') <wbr> THEN N' ORDER BY project_identifier ' + @p_sOrderBy<br> <wbr> <wbr>WHEN ( @p_sSortBy = 'xref' <wbr>) <wbr> THEN N' ORDER BY project_xref '+ @p_sOrderBy<br> <wbr> <wbr>WHEN ( @p_sSortBy = 'contact_name') <wbr> THEN N' ORDER BY project_contact_name '+ @p_sOrderBy<br> <wbr> <wbr>WHEN ( @p_sSortBy = 'description') <wbr> THEN N' ORDER BY project_description '+ @p_sOrderBy<br> <wbr> <wbr>WHEN ( @p_sSortBy = 'customer_name') <wbr> THEN N' ORDER BY project_customer_name '+ @p_sOrderBy<br> <wbr> <wbr>WHEN ( @p_sSortBy = 'status') <wbr> THEN N' ORDER BY project_status_name '+ @p_sOrderBy<br> <wbr> <wbr>WHEN ( @p_sSortBy = 'name') <wbr> THEN N' ORDER BY project_owner_name '+ @p_sOrderBy<br> <wbr> <wbr>WHEN ( @p_sSortBy = 'account') <wbr> THEN N' ORDER BY project_owner_name ' + <wbr>@p_sOrderBy -- <br> <wbr> <wbr>WHEN ( @p_sSortBy = 'funding_type_code' <wbr>) <wbr> THEN N' ORDER BY project_funding_type_code '+ @p_sOrderBy<br> <wbr>END<br><br>END<br><br><br>SET @sSQL = @sSQL + ' OPTION(MAXDOP 1)'<br><br>--print @ssql<br><br>EXECsp_executesql @sSQL, N'@p_sLoggedUserType char(1), @p_iLoggedUserIdint, @sName varchar(255), @sRoom char(1), @sFamily varchar(8),@iProjAcctGrpId int',<br> <wbr>@p_sLoggedUserType, @p_iLoggedUserId, @sName, @sRoom, @sFamily, @iProjAcctGrpId<br><br><br>SELECT<br> <wbr>@iTotalRecords = count(*) <br>FROM<br> <wbr>#OrderedResultSet OPTION (KEEPFIXED PLAN)<br><br><br>IF(@p_sActionCode = 'REFRESH') OR (@p_sActionCode = 'OPEN_WINDOW_HEADER')OR (@p_sActionCode = 'OPEN_WINDOW_LIST') OR (@p_sActionCode = 'FIRST') <br> <wbr>SET @p_iStartRecord = 1<br>ELSE IF (@p_sActionCode = 'NEXT') <br> <wbr>SET @p_iStartRecord = @p_iStartRecord + @p_iPageSize<br>ELSE IF (@p_sActionCode = 'PREV') <br> <wbr>IF @p_iStartRecord <= @p_iPageSize <br> <wbr> <wbr>SET @p_iStartRecord = 1 <br> <wbr>ELSE <br> <wbr> <wbr>SET @p_iStartRecord = @p_iStartRecord - @p_iPageSize<br>ELSE IF (@p_sActionCode = 'LAST') <br>BEGIN<br> <wbr>SET @p_iStartRecord = (@iTotalRecords/@p_iPageSize) * @p_iPageSize + 1<br> <wbr>IF @p_iStartRecord > @iTotalRecords SET @p_iStartRecord = @p_iStartRecord - @p_iPageSize<br>END<br><br><br>EXEC COMM_GetPagingData <wbr>@iTotalRecords,@p_iStartRecord, @p_iPageSize, @p_iCurrentPage OUTPUT, @p_iNoOfPagesOUTPUT, @iLowerLimit OUTPUT, @iUpperLimit OUTPUT<br><br><br>IF ( @p_iStartRecord is null <wbr>) <wbr>or <wbr>( @p_iStartRecord = 0 <wbr>) <br> <wbr>SET @p_iStartRecord = 1<br>IF ( @p_iCurrentPage is null <wbr>) <wbr>or <wbr>( @p_iCurrentPage = 0 <wbr>) <br> <wbr>SET @p_iCurrentPage = 1<br>IF ( @p_iNoOfPages is null <wbr>) <wbr>or <wbr>( @p_iNoOfPages = 0 <wbr>) <br> <wbr>SET @p_iNoOfPages = 1<br><br>SELECT <wbr><br> <wbr>o.user_type + CONVERT(varchar,o.user_id) + '-' + <br> <wbr> <wbr>CONVERT(varchar,o.project_id) + '|~|' + <br> <wbr> <wbr>o.identifier + '|~|' + o.customer_name + '|~|' + <br> <wbr> <wbr>isnull(CONVERT(varchar,o.user_field_index),'') + '|~|' + <br> <wbr> <wbr>isnull(CONVERT(varchar,o.customer_id),'') object_key,<br> <wbr>o.user_type + CONVERT(varchar,o.user_id)+ '-' +<br> <wbr> <wbr>CONVERT(varchar, o.project_id) project_id,<br> <wbr>o.identifier <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr>,<br> <wbr>ISNULL(o.customer_name, '<Secured>') customer_name <wbr>,<br> <wbr>o.xref <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr>,<br> <wbr>o.contact_name <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr>,<br> <wbr>o.description <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr>,<br> <wbr>o.status <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr>,<br> <wbr>o.name <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr>,<br> <wbr>o.name <wbr> account, <wbr> -- <br> <wbr>CASE <br> <wbr> <wbr>WHEN ( @sDisplayCodeValueInd = 'Y' ) <br> <wbr> <wbr> <wbr>THEN isnull(o.funding_type_code,'')+'-'+isnull(cte.display_value,'')<br> <wbr> <wbr>ELSE <br> <wbr> <wbr> <wbr>isnull(cte.display_value,'')<br> <wbr>END AS funding_type_code<br>FROM <wbr><br> <wbr>#OrderedResultSet o<br> <wbr>LEFT OUTER JOIN CXmain.dbo.Code_Table_Entry cte WITH (READUNCOMMITTED)<br> <wbr> <wbr>ON o.funding_type_code = cte.code_value <br> <wbr> <wbr>AND cte.code_table_id = 1020<br> <wbr> <wbr>AND <wbr>cte.room = @sRoom<br> <wbr> <wbr>AND <wbr>cte.family = @sFamily<br>WHERE <br> <wbr>o.counter >= @iLowerLimit<br> <wbr>AND o.counter <= @iUpperLimit <br>ORDER BY counter<br>OPTION (MAXDOP 1)<br><br>SET NOCOUNT OFF<br><br><br><br>Regards,<br>KSB.</td></tr></tbody></table><p> </p>
Rewrite as dynamic SQL - just compile a single statement, and resolve the NULL checks on the parameters to insert the correct text into the statement. You can probably drop all the temp tables. If you can't, then at least add a PK on each (add an identity column as PK if there is no candidate key) and add indexes (on the temp tables) to support the JOINs and the filter criteria.
Hi Adriaan, Thanks for valuable reply. Identity is already there in temp table. Now I created a CLUSTERED INDEX on this temp table #OrderedResultSet. It's fine. The Reads are very less(0) and Writes are around 300 previously. And now Reads increased to 640 and Writes decreased to 2. How can i decrease the Reads. Any help regarding this please. KSB.
What is your priority in executing this query, READS or WRITES? In any case what Adriaan has suggested may be the better to attain the performance on the execution aspect. Make sure you size and monitor the TEMPDB during the execution.