sql >> Database >  >> RDS >> Sqlserver

Het uitvoeren van een opgeslagen proces vanuit DotNet duurt erg lang, maar in SSMS is het onmiddellijk

Omdat mijn opmerking het juiste antwoord leek te geven, heb ik besloten om het te verplaatsen naar een volledig antwoord voor het nageslacht in de geest van stackoverflow.

Uw probleem lijkt te worden veroorzaakt door Parameter Sniffing van SQL Server .Om dit te voorkomen, wijst u uw inkomende parameterwaarden toe aan andere variabelen die bovenaan uw SP worden gedeclareerd.

Zie dit mooie artikel erover

Voorbeeld:

CREATE PROCEDURE dbo.MyProcedure
(
    @Param1 INT
)
AS

declare @MyParam1 INT
set @MyParam1 = @Param1

SELECT * FROM dbo.MyTable WHERE ColumnName = @MyParam1 

GO

Ik heb deze informatie gekopieerd van eggheadcafe.com .

Bewerken:volgens de opmerking van Johann Strydom is hier een andere optie:Parametergestuurde query's optimaliseren met SQL Server OPTIMALISEREN VOOR Hint .



  1. Visuele interface van PostgreSQL vergelijkbaar met phpMyAdmin?

  2. DB associatieve entiteiten en indexering

  3. Hoe te bestellen op datum in T-SQL

  4. Waarom is Hibernate overgeschakeld naar LONG over CLOB?