Hello, guys. Here's my problem.WinForms .NET app calls stored procedure via DataSets. Here's part of SQL log: 238ms exec dbo.Algorytm160 @pCzesc='ZASADNICZA',@pKodNieobecnosci='UO',@pIdListy=1532,@pIdUmowy=7764,@pSekwencja=1,@pIdSkladnika=2051,@pZaokraglenia='P:9S:2',@pUrlopOkolMiesWystapienia=1 258ms exec dbo.Algorytm160 @pCzesc='ZASADNICZA',@pKodNieobecnosci='Art188',@pIdListy=1532,@pIdUmowy=7764,@pSekwencja=1,@pIdSkladnika=2052,@pZaokraglenia='P:9S:2',@pUrlopOkolMiesWystapienia=1 11ms exec dbo.Algorytm160 @pCzesc='DOPLATA',@pKodNieobecnosci='UO',@pIdListy=1532,@pIdUmowy=7764,@pSekwencja=1,@pIdSkladnika=2223,@pZaokraglenia='P:9S:2',@pUrlopOkolMiesWystapienia=1 11ms exec dbo.Algorytm160 @pCzesc='DOPLATA',@pKodNieobecnosci='Art188',@pIdListy=1532,@pIdUmowy=7764,@pSekwencja=1,@pIdSkladnika=2224,@pZaokraglenia='P:9S:2',@pUrlopOkolMiesWystapienia=1 239ms exec dbo.Algorytm160 @pCzesc='ZASADNICZA',@pKodNieobecnosci='BAD.LEK.',@pIdListy=1532,@pIdUmowy=7764,@pSekwencja=1,@pIdSkladnika=2298,@pZaokraglenia='P:9S:2',@pUrlopOkolMiesWystapienia=1 6ms exec dbo.Algorytm160 @pCzesc='DOPLATA',@pKodNieobecnosci='BAD.LEK.',@pIdListy=1532,@pIdUmowy=7764,@pSekwencja=1,@pIdSkladnika=2299,@pZaokraglenia='P:9S:2',@pUrlopOkolMiesWystapienia=1 316ms exec dbo.Algorytm160 @pCzesc='ZASADNICZA',@pKodNieobecnosci='DPP',@pIdListy=1532,@pIdUmowy=7764,@pSekwencja=1,@pIdSkladnika=2418,@pZaokraglenia='P:9S:2',@pUrlopOkolMiesWystapienia=1 10ms exec dbo.Algorytm160 @pCzesc='DOPLATA',@pKodNieobecnosci='DPP',@pIdListy=1532,@pIdUmowy=7764,@pSekwencja=1,@pIdSkladnika=2419,@pZaokraglenia='P:9S:2',@pUrlopOkolMiesWystapienia=1 233ms exec dbo.Algorytm160 @pCzesc='ZASADNICZA',@pKodNieobecnosci='UO',@pIdListy=1532,@pIdUmowy=13173,@pSekwencja=1,@pIdSkladnika=2051,@pZaokraglenia='P:9S:2',@pUrlopOkolMiesWystapienia=1 235ms exec dbo.Algorytm160 @pCzesc='ZASADNICZA',@pKodNieobecnosci='Art188',@pIdListy=1532,@pIdUmowy=13173,@pSekwencja=1,@pIdSkladnika=2052,@pZaokraglenia='P:9S:2',@pUrlopOkolMiesWystapienia=1 7ms exec dbo.Algorytm160 @pCzesc='DOPLATA',@pKodNieobecnosci='UO',@pIdListy=1532,@pIdUmowy=13173,@pSekwencja=1,@pIdSkladnika=2223,@pZaokraglenia='P:9S:2',@pUrlopOkolMiesWystapienia=1 10ms exec dbo.Algorytm160 @pCzesc='DOPLATA',@pKodNieobecnosci='Art188',@pIdListy=1532,@pIdUmowy=13173,@pSekwencja=1,@pIdSkladnika=2224,@pZaokraglenia='P:9S:2',@pUrlopOkolMiesWystapienia=1 226ms exec dbo.Algorytm160 @pCzesc='ZASADNICZA',@pKodNieobecnosci='BAD.LEK.',@pIdListy=1532,@pIdUmowy=13173,@pSekwencja=1,@pIdSkladnika=2298,@pZaokraglenia='P:9S:2',@pUrlopOkolMiesWystapienia=1 6ms exec dbo.Algorytm160 @pCzesc='DOPLATA',@pKodNieobecnosci='BAD.LEK.',@pIdListy=1532,@pIdUmowy=13173,@pSekwencja=1,@pIdSkladnika=2299,@pZaokraglenia='P:9S:2',@pUrlopOkolMiesWystapienia=1 247ms exec dbo.Algorytm160 @pCzesc='ZASADNICZA',@pKodNieobecnosci='DPP',@pIdListy=1532,@pIdUmowy=13173,@pSekwencja=1,@pIdSkladnika=2418,@pZaokraglenia='P:9S:2',@pUrlopOkolMiesWystapienia=1 6ms exec dbo.Algorytm160 @pCzesc='DOPLATA',@pKodNieobecnosci='DPP',@pIdListy=1532,@pIdUmowy=13173,@pSekwencja=1,@pIdSkladnika=2419,@pZaokraglenia='P:9S:2',@pUrlopOkolMiesWystapienia=1 358ms exec dbo.Algorytm160 @pCzesc='ZASADNICZA',@pKodNieobecnosci='UO',@pIdListy=1532,@pIdUmowy=7785,@pSekwencja=1,@pIdSkladnika=2051,@pZaokraglenia='P:9S:2',@pUrlopOkolMiesWystapienia=1
As you can see for parameter @pCzesc='ZASADNICZA' it takes 50 times longer. When I take one of these lines above and run it under Management Studio it takes 200-300 ms for first time and <10 ms for every subsequent run. It is understood to me that this time is consumed by plan generation. But why execution plan is generated for that stored procedure every time (with parameter @pCzesc='ZASADNICZA') when called by my .NET app?