Dit artikel is een spiegelartikel van machinevertaling, klik hier om naar het oorspronkelijke artikel te gaan.

Bekijken: 22757|Antwoord: 0

[Bron] Los het probleem op dat opgeslagen procedures snel worden uitgevoerd, maar programmaaanroepen traag zijn

[Link kopiëren]
Geplaatst op 21-05-2018 13:55:48 | | |
In de afgelopen twee dagen ben ik een probleem tegengekomen dat behoorlijk frustrerend is: een opgeslagen procedure van ongeveer 120 regels wordt uitgevoerd in de query-analyzer van SQL Server 2012.
De snelheid is zeer ideaal, en ongeveer 500 datarecords kunnen in minder dan 1 seconde worden gefilterd en vastgelegd.
Wanneer echter in de C#-programmacode wordt aangeroepen, wordt de verbindingstime-out gesignaleerd. Zet de CommandTimeout op 300, en het duurt ongeveer 3 minuten om het weer te geven.
Ik heb de code meerdere keren gecontroleerd en geen fouten gevonden. Het probleem blijft.

Oorzaakanalyse:
1. Omdat de uitvoeringssnelheid in de query-analyzer hoog is en de hoeveelheid data niet groot is.
2. Alleen het bellen in het programma is traag.
3. Stel de CommandTimeout-parameter in, en het resultaat kan worden weergegeven, maar dat duurt lang.

Samenvattend wordt voorlopig geconcludeerd dat het probleem ligt in de C#-code. Maar er was geen winst na de inspectie.

Controleer deze informatie over Baidu.
Eindelijk een soortgelijke informatiepost gevonden op het CSDN-forum. Een van de internetgebruikers zei in het antwoord: "Het is mogelijk dat het implementatieplan is verlopen."
Het maakte me echt wakker in mijn droom.

Voer direct uit op de query-analyzer:

Toen ik het programma opnieuw testte, werkte het eindelijk. De snelheid is zeer bevredigend.

Oorzaakanalyse:
Omdat opgeslagen procedures vooraf zijn gecompileerd, wordt bij de eerste uitvoering een uitvoeringsplan gegenereerd, en dit uitvoeringsplan wordt gebruikt bij latere uitvoeringen (tenzij de opgeslagen procedure wordt gespecificeerd om opnieuw te compileren), in plaats van elke keer dat deze wordt uitgevoerd een uitvoeringsplan te genereren.
Wanneer de objectstructuur die betrokken is bij de opgeslagen procedure wordt aangepast, of de gerelateerde gegevens aanzienlijk veranderen, waardoor het oorspronkelijke plan ongeschikt kan zijn voor de huidige status quo (vervaldatum uitvoeringsplan), moet de opgeslagen procedure opnieuw worden gecompileerd.

Voeg tenslotte de code toe voor de opgeslagen procedure:







Vorig:Deel een enkele APP promotiepagina-code, bron, adaptief, erg mooi en gul!
Volgend:C# Open Source Framework (Herdruk)
Disclaimer:
Alle software, programmeermaterialen of artikelen die door Code Farmer Network worden gepubliceerd, zijn uitsluitend bedoeld voor leer- en onderzoeksdoeleinden; De bovenstaande inhoud mag niet worden gebruikt voor commerciële of illegale doeleinden, anders dragen gebruikers alle gevolgen. De informatie op deze site komt van het internet, en auteursrechtconflicten hebben niets met deze site te maken. Je moet bovenstaande inhoud volledig van je computer verwijderen binnen 24 uur na het downloaden. Als je het programma leuk vindt, steun dan de echte software, koop registratie en krijg betere echte diensten. Als er sprake is van een inbreuk, neem dan contact met ons op via e-mail.

Mail To:help@itsvse.com