Hjælp - stored procedure er langsom
Jeg har følgende stored procedure:CREATE PROCEDURE [dbo].[GetBoard]
(
@UserID int
)
AS
SELECT B.BoardID,B.UserID,B.FieldCount,F.Position,F.IsScratched,FT.*,P.PriceID
from tblBoards as B
join tblFields as F on B.BoardID=F.BoardID
join tblFieldTypes as FT on F.FieldTypeID=FT.FieldTypeID
left join tblPrices as P on P.BoardID=B.BoardID
Where B.UserID=@UserID
Order By Position;
GO
Mit problem er at den nu og da timer ud. Den kaldes fra en ASP .NET applikation med connection timeout sat til 30 sekunder.
Tabellen tblFields indeholder omkring ~340.000 rækker men proceduren returnerer sjældent mere end omkring 25 rækker.
Timeouts'ne sker oftest på tidspunkter hvor .NET applikationen har mange brugere online, dvs. at queryet bliver kørt tit. Dog sjældent mere end 15 gange i minuttet.
Hvad kan jeg gøre for at forbedre performance ? Er der noget i min stored procedure, der er ineffektivt ? Burde SQL Server ikke kunne håndtere en tabel med 340.000 rækker ?