Tento článek je zrcadlovým článkem o strojovém překladu, klikněte zde pro přechod na původní článek.

Pohled: 22757|Odpověď: 0

[Zdroj] Řeší problém, že uložené procedury se spouštějí rychle, ale volání programů jsou pomalá

[Kopírovat odkaz]
Zveřejněno 21.05.2018 13:55:48 | | |
Za poslední dva dny jsem narazil na problém, který je docela frustrující – uložená procedura o délce asi 120 řádků je vykonána v analyzátoru dotazů SQL Server 2012,
Rychlost je velmi ideální a asi 500 datových záznamů lze filtrovat a zachytit za méně než 1 sekundu.
Nicméně při volání v programovém kódu C# je časový limit spojení vyzván. Nastavte Timeout příkazu na 300 a zobrazí se asi za 3 minuty.
Kód jsem několikrát kontroloval a nenašel jsem žádné chyby. Problém zůstává.

Analýza příčin:
1. Protože rychlost vykonávání v analyzátoru dotazů je rychlá a množství dat není velké.
2. Pouze volání v programu je pomalé.
3. Nastavte parametr Příkaz Timeout a výsledek lze zobrazit, ale bude to trvat dlouho.

Shrnuto, předběžně se usoudí, že problém spočívá v kódu C#. Ale po inspekci nebyl žádný zisk.

Podívejte se na tyto informace o Baidu.
Nakonec jsem našel podobný informační příspěvek na fóru CSDN. Jeden z uživatelů internetu v odpovědi uvedl: "Je možné, že plán implementace vypršel."
Opravdu mě to probudilo ve snu.

Okamžitě proveďte na analyzátoru dotazů:

Program jsem znovu otestoval, tentokrát konečně fungoval. Rychlost je velmi uspokojivá.

Analýza příčin:
Protože uložené procedury jsou předkompilovány, plán vykonání je generován při prvním provedení a tento plán se používá při dalších provedeních (pokud není uložený postup specifikován pro rekompilaci), místo aby se plán generoval pokaždé.
Když je struktura objektu ve uložené procedurě upravena nebo se související data výrazně změní, což může způsobit, že původní plán nebude vhodný pro aktuální stav (expirace plánu vykonání), měla by být uložená procedura znovu zkompilována.

Nakonec připojte kód uložené procedury:







Předchozí:Sdílejte jednu promo stránku APP – zdrojový kód, adaptivní, velmi krásný a štědrý!
Další:C# Open Source Framework (přetisk)
Zřeknutí se:
Veškerý software, programovací materiály nebo články publikované organizací Code Farmer Network slouží pouze k učení a výzkumu; Výše uvedený obsah nesmí být používán pro komerční ani nelegální účely, jinak nesou všechny důsledky uživatelé. Informace na tomto webu pocházejí z internetu a spory o autorská práva s tímto webem nesouvisí. Musíte výše uvedený obsah ze svého počítače zcela smazat do 24 hodin od stažení. Pokud se vám program líbí, podporujte prosím originální software, kupte si registraci a získejte lepší skutečné služby. Pokud dojde k jakémukoli porušení, kontaktujte nás prosím e-mailem.

Mail To:help@itsvse.com