|
|
Postat pe 21.05.2018 13:55:48
|
|
|

În ultimele două zile, am întâmpinat o problemă destul de frustrantă: o procedură stocată de aproximativ 120 de linii este executată în analizorul de interogări al SQL Server 2012, Viteza este foarte ideală, iar aproximativ 500 de înregistrări de date pot fi filtrate și capturate în mai puțin de 1 secundă. Totuși, când este apelat codul programului C#, este solicitat timeout-ul conexiunii. Setează CommandTimeout la 300 și va dura cam 3 minute să se afișeze. Am verificat codul de mai multe ori și nu am găsit erori. Problema rămâne.
Analiza cauzei: 1. Pentru că viteza de execuție în analizorul de interogări este rapidă și cantitatea de date nu este mare. 2. Doar apelul programului este lent. 3. Setează parametrul CommandTimeout și rezultatul poate fi afișat, dar va dura mult timp.
În concluzie, se concluzionează preliminar că problema se află în codul C#. Dar nu a existat niciun câștig după inspecție.
Verifică aceste informații pe Baidu. În cele din urmă am găsit o postare similară de informații pe forumul CSDN. Unul dintre internauți a spus în răspuns: "Este posibil ca planul de implementare să fi expirat". M-a trezit cu adevărat în vis.
Execută imediat analizorul de interogări:
Testând din nou programul, de data asta a funcționat în sfârșit. Viteza este foarte satisfăcătoare.
Analiza cauzei: Deoarece procedurile stocate sunt precompilate, un plan de execuție este generat la prima execuție, iar acest plan de execuție este folosit la execuțiile ulterioare (cu excepția cazului în care procedura stocată este specificată pentru recompilare), în loc să se genereze un plan de execuție de fiecare dată când este executată. Când structura obiectelor implicată în procedura stocată este ajustată sau datele aferente se modifică semnificativ, ceea ce poate face ca planul original să fie nepotrivit pentru status quo-ul actual (expirarea planului de execuție), procedura stocată trebuie recompilată.
În final, atașează codul pentru procedura stocată:
|
Precedent:Distribuie un singur cod de pagină promoțională APP, adaptabil, foarte frumos și generos!Următor:C# Cadru Open Source (Reeditare)
|