Ta članek je zrcalni članek strojnega prevajanja, kliknite tukaj za skok na izvirni članek.

Pogled: 22757|Odgovoriti: 0

[Vir] Reši problem, da se shranjene procedure izvajajo hitro, medtem ko so klici programov počasni

[Kopiraj povezavo]
Objavljeno na 21. 05. 2018 13:55:48 | | |
V zadnjih dveh dneh sem naletel na precej frustrirajočo težavo, saj se v analizatorju poizvedb SQL Server 2012 izvede shranjena procedura s približno 120 vrsticami,
Hitrost je zelo idealna, približno 500 podatkovnih zapisov pa je mogoče filtrirati in zajeti v manj kot eni sekundi.
Vendar pa se ob klicu v programski kodi C# sproži časovna omejitev povezave. Nastavi CommandTimeout na 300 in prikaz traja približno 3 minute.
Kodo sem preveril večkrat in nisem našel nobenih napak. Težava ostaja.

Analiza vzrokov:
1. Ker je hitrost izvajanja v analizatorju poizvedb hitra in količina podatkov ni velika.
2. Samo klic v programu je počasen.
3. Nastavite parameter CommandTimeout in rezultat se lahko prikaže, vendar bo trajalo dolgo.

Povzemimo, da je predhodno zaključeno, da je težava v C# kodi. A po pregledu ni bilo nobene koristi.

Preverite te informacije o Baidu.
Končno sem našel podoben informativni prispevek na forumu CSDN. Eden od uporabnikov interneta je v odgovoru dejal: "Možno je, da je načrt izvajanja potekel,"
Res me je prebudilo v sanjah.

Izvedite takoj na analizatorju poizvedb:

Program sem ponovno preizkusil in tokrat je končno deloval. Hitrost je zelo zadovoljiva.

Analiza vzrokov:
Ker so shranjene procedure predhodno prevedene, se načrt izvajanja ustvari že ob prvem izvajanju, ta načrt pa se uporabi pri naslednjih izvedbah (razen če je shranjena procedura določena za ponovno prevajanje), namesto da bi se načrt izvajanja generiral vsakič, ko se izvede.
Ko se struktura objekta v shranjeni proceduri prilagodi ali se povezani podatki bistveno spremenijo, kar lahko povzroči, da prvotni načrt ni primeren za trenutno stanje (potek načrta izvajanja), je treba shranjeno proceduro ponovno prevesti.

Na koncu priložite kodo za shranjeno proceduro:







Prejšnji:Delite eno samo APP promocijsko stran s kodo, prilagodljivo, zelo lepo in radodarno!
Naslednji:C# Odprtokodni okvir (ponatis)
Disclaimer:
Vsa programska oprema, programski materiali ali članki, ki jih izdaja Code Farmer Network, so namenjeni zgolj učnim in raziskovalnim namenom; Zgornja vsebina ne sme biti uporabljena v komercialne ali nezakonite namene, sicer uporabniki nosijo vse posledice. Informacije na tej strani prihajajo z interneta, spori glede avtorskih pravic pa nimajo nobene zveze s to stranjo. Zgornjo vsebino morate popolnoma izbrisati z računalnika v 24 urah po prenosu. Če vam je program všeč, podprite pristno programsko opremo, kupite registracijo in pridobite boljše pristne storitve. Če pride do kakršne koli kršitve, nas prosimo kontaktirajte po elektronski pošti.

Mail To:help@itsvse.com