See artikkel on masintõlke peegelartikkel, palun klõpsake siia, et hüpata algse artikli juurde.

Vaade: 22757|Vastuse: 0

[Allikas] Lahendab probleemi, et salvestatud protseduurid täidetakse kiiresti, kuid programmikutsed on aeglased

[Kopeeri link]
Postitatud 21.05.2018 13:55:48 | | |
Viimase kahe päeva jooksul olen sattunud üsna frustreeriva probleemiga – SQL Server 2012 päringuanalüsaatoris täidetakse umbes 120 reaga salvestatud protseduur,
Kiirus on väga ideaalne ning umbes 500 andmekirjet saab filtreerida ja salvestada vähem kui ühe sekundiga.
Kuid kui C# programmikoodis kutsutakse, kuvatakse ühenduse aeg. Sea CommandTimeout 300-le ja selle kuvamine võtab umbes 3 minutit.
Kontrollisin koodi mitu korda ja ei leidnud ühtegi viga. Probleem jääb alles.

Põhjusanalüüs:
1. Sest päringuanalüsaatori täitmiskiirus on kiire ja andmemaht ei ole suur.
2. Ainult programmis kõne on aeglane.
3. Sea CommandTimeout parameeter ja tulemus saab kuvada, kuid see võtab kaua aega.

Kokkuvõttes järeldatakse esialgselt, et probleem peitub C# koodis. Kuid pärast ülevaatust ei olnud mingit kasu.

Vaata seda infot Baidus.
Lõpuks leidsin sarnase infopostituse CSDN foorumist. Üks netikasutajatest ütles vastuses: "Võimalik, et rakendusplaan on aegunud."
See äratas mind unenäos tõeliselt.

Teosta kohe päringuanalüsaatoril:

Testisin programmi uuesti, seekord lõpuks töötas. Kiirus on väga rahuldav.

Põhjusanalüüs:
Kuna salvestatud protseduurid on eelkompileeritud, genereeritakse täitmisplaan esimesel täitmisel ning seda täitmisplaani kasutatakse järgmistel täitmistel (välja arvatud juhul, kui salvestatud protseduuri on määratud ümberkompileerimiseks), mitte ei genereerita täitmisplaan iga kord, kui see on täidetud.
Kui salvestatud protseduuris osalevat objektistruktuuri muudetakse või seotud andmed muutuvad oluliselt, mis võib muuta algse plaani sobimatuks praeguse olukorra (täitmisplaani aegumine) jaoks, tuleks salvestatud protseduur uuesti kompileerida.

Lõpuks lisa salvestatud protseduuri kood:







Eelmine:Jaga ühte APP promotsioonilehte koodiallikat, adaptiivne, väga ilus ja helde!
Järgmine:C# avatud lähtekoodiga raamistik (kordustrükk)
Disclaimer:
Kõik Code Farmer Networki poolt avaldatud tarkvara, programmeerimismaterjalid või artiklid on mõeldud ainult õppimiseks ja uurimistööks; Ülaltoodud sisu ei tohi kasutada ärilistel ega ebaseaduslikel eesmärkidel, vastasel juhul kannavad kasutajad kõik tagajärjed. Selle saidi info pärineb internetist ning autoriõiguste vaidlused ei ole selle saidiga seotud. Ülaltoodud sisu tuleb oma arvutist täielikult kustutada 24 tunni jooksul pärast allalaadimist. Kui sulle programm meeldib, palun toeta originaaltarkvara, osta registreerimist ja saa paremaid ehtsaid teenuseid. Kui esineb rikkumist, palun võtke meiega ühendust e-posti teel.

Mail To:help@itsvse.com