Very urgent problem..
I have a SP that is suddenly timing out;
CREATE PROCEDURE sp_SearchStock
@ClientName VarChar(50),
@ItemStyle VarChar(50),
@SerialNo VarChar(50),
@StatusID VarChar(5)
AS
DECLARE @ClientID int
SELECT @ClientID = (SELECT ClientID FROM tblClients WHERE ClientName = @ClientName)
SET NOCOUNT ON
SELECT dbo.tblItemStyles.ItemStyle, dbo.tblItemStyleStatus.StyleStatus,tblLocations.Location, dbo.tblStockDetails.SerialNo,
COUNT(dbo.tblStockDetails.StockID) AS Qty, dbo.tblRaiseItems.RaiseItem AS AssignedAgainst, Assigned =
CASE dbo.tblRaiseItems.RaiseItem
WHEN 'Client' THEN @ClientName
WHEN 'Project' THEN (SELECT ProjectName FROM tblProjects WHERE ProjectID = dbo.tblStockDetails.AssignedID)
WHEN 'Job' THEN CAST(dbo.tblStockDetails.AssignedID as VARCHAR(50))
WHEN 'Task' THEN (SELECT dbo.tblTaskNames.TaskName COLLATE Latin1_General_CI_AS AS TName FROM dbo.tblTasks LEFT OUTER JOIN dbo.tblTaskNames ON dbo.tblTasks.TaskID = dbo.tblTaskNames.TaskID WHERE (dbo.tblTasks.ID = dbo.tblStockDetails.AssignedID))
END
FROM dbo.tblStockDetails INNER JOIN
tblLocations ON tblStockDetails.CurrentLocID = tblLocations.LocationID INNER JOIN
dbo.tblRaiseItems ON dbo.tblStockDetails.AssignedAgainstID = dbo.tblRaiseItems.RaiseAgainstID INNER JOIN
dbo.tblItemStyles ON dbo.tblStockDetails.StyleID = dbo.tblItemStyles.StyleID INNER JOIN
dbo.tblItemStyleStatus ON dbo.tblStockDetails.StatusID = dbo.tblItemStyleStatus.StyleStatusID
GROUP BY dbo.tblStockDetails.ClientID, tblLocations.Location, dbo.tblStockDetails.SerialNo, dbo.tblStockDetails.StatusID, dbo.tblItemStyleStatus.StyleStatus, dbo.tblStockDetails.AssignedID, dbo.tblRaiseItems.RaiseItem, dbo.tblItemStyles.ItemStyle
HAVING (dbo.tblStockDetails.ClientID=@ClientID) AND (dbo.tblItemStyles.ItemStyle Like '%' + @ItemStyle + '%') AND (dbo.tblStockDetails.SerialNo Like '%' + @SerialNo +'%') AND (CAST (dbo.tblStockDetails.StatusID as VarChar(5)) Like @StatusID +'%')
ORDER BY tblItemStyles.ItemStyle
GO
Can this be speeded up at all???
tblStockDetails has 26,000 records, one clustered index.
I've recompiled, updated statistics..
Any ideas???
Many thanks
Rob
I have a SP that is suddenly timing out;
CREATE PROCEDURE sp_SearchStock
@ClientName VarChar(50),
@ItemStyle VarChar(50),
@SerialNo VarChar(50),
@StatusID VarChar(5)
AS
DECLARE @ClientID int
SELECT @ClientID = (SELECT ClientID FROM tblClients WHERE ClientName = @ClientName)
SET NOCOUNT ON
SELECT dbo.tblItemStyles.ItemStyle, dbo.tblItemStyleStatus.StyleStatus,tblLocations.Location, dbo.tblStockDetails.SerialNo,
COUNT(dbo.tblStockDetails.StockID) AS Qty, dbo.tblRaiseItems.RaiseItem AS AssignedAgainst, Assigned =
CASE dbo.tblRaiseItems.RaiseItem
WHEN 'Client' THEN @ClientName
WHEN 'Project' THEN (SELECT ProjectName FROM tblProjects WHERE ProjectID = dbo.tblStockDetails.AssignedID)
WHEN 'Job' THEN CAST(dbo.tblStockDetails.AssignedID as VARCHAR(50))
WHEN 'Task' THEN (SELECT dbo.tblTaskNames.TaskName COLLATE Latin1_General_CI_AS AS TName FROM dbo.tblTasks LEFT OUTER JOIN dbo.tblTaskNames ON dbo.tblTasks.TaskID = dbo.tblTaskNames.TaskID WHERE (dbo.tblTasks.ID = dbo.tblStockDetails.AssignedID))
END
FROM dbo.tblStockDetails INNER JOIN
tblLocations ON tblStockDetails.CurrentLocID = tblLocations.LocationID INNER JOIN
dbo.tblRaiseItems ON dbo.tblStockDetails.AssignedAgainstID = dbo.tblRaiseItems.RaiseAgainstID INNER JOIN
dbo.tblItemStyles ON dbo.tblStockDetails.StyleID = dbo.tblItemStyles.StyleID INNER JOIN
dbo.tblItemStyleStatus ON dbo.tblStockDetails.StatusID = dbo.tblItemStyleStatus.StyleStatusID
GROUP BY dbo.tblStockDetails.ClientID, tblLocations.Location, dbo.tblStockDetails.SerialNo, dbo.tblStockDetails.StatusID, dbo.tblItemStyleStatus.StyleStatus, dbo.tblStockDetails.AssignedID, dbo.tblRaiseItems.RaiseItem, dbo.tblItemStyles.ItemStyle
HAVING (dbo.tblStockDetails.ClientID=@ClientID) AND (dbo.tblItemStyles.ItemStyle Like '%' + @ItemStyle + '%') AND (dbo.tblStockDetails.SerialNo Like '%' + @SerialNo +'%') AND (CAST (dbo.tblStockDetails.StatusID as VarChar(5)) Like @StatusID +'%')
ORDER BY tblItemStyles.ItemStyle
GO
Can this be speeded up at all???
tblStockDetails has 26,000 records, one clustered index.
I've recompiled, updated statistics..
Any ideas???
Many thanks
Rob