Oprava: Souběžná spuštění uložené procedury, znovu zkompiluje může selhání chcete spouštět všechny výpisy

Překlady článku Překlady článku
ID článku: 250506 - Produkty, které se vztahují k tomuto článku.
Tento článek byl archivován. Je nabízen v takovém stavu, v jakém je, a nebude již nadále aktualizován.
CHYBA Č: 55251 (SQLBUG_70)
Rozbalit všechny záložky | Minimalizovat všechny záložky

Příznaky

Uložená procedura může selhat bezobslužně provést všechny příkazy obsažené v jej, pokud jsou splněny následující podmínky:

  • Více připojení jsou stejný postup provádění souběžně.

  • Odkaz je provedeny dočasné tabulky vytvořené mimo tento postup.

  • Jeden nebo více příkazů, které by mohly způsobit také překompilujte (potenciálně spouštěné 'automatické aktualizace statistiky') podle odkazu do dočasné tabulky.
Pro některé uživatele používající postup, zatímco ostatním selhání může spustit všechny příkazy.

Jak potíže obejít

Vytvořte proceduru s klauzule WITH PŘEKOMPILOVAT nebo použít klauzuli WITH PŘEKOMPILOVAT při provádění procedury.

Prohlášení

Společnost Microsoft potvrzuje, že se to být problém v serveru SQL Server 7.0. Má tento problém opraven v USA Service Pack 2 v Microsoft SQL Server 7.0. Další informace naleznete následujícím článku znalostní databáze Microsoft Knowledge Base:
254561INF: Jak získat Service Pack 2 pro Microsoft SQL Server 7.0 a Microsoft Data Engine (MSDE) 1.0
Další informace získáte od svého poskytovatele technické podpory.

Další informace

Pokud odkaz provedené do dočasné tabulky vytvořené mimo aktuální procedury, že příkazu a všechny následné příkazy můžete není být kompilován při prvním provedení postupu. Důvodem je, že je známa žádné informace o schématu v tabulce. Po spuštění dosáhne tohoto příkazu a schématu a mohutnost hodnoty jsou k dispozici, je postup recompiled pomocí této informace. Chcete-li minimalizovat čas kompilace, SQL Server provede „ částečné compile"v této situaci a pouze generuje plán dotazu pro příkazy této.

Protože kompilované plán může sdílet více uživatelů, SQL Server 7.0 řadí překompilování zajistit některé z připojení provede překompilujte. Ostatní připojení také třeba překompilovat, budou čekat na první připojení k dokončení jeho překompilujte a pokračovat v provádění na jejich další krok.

Pokud dojde k situaci, kde jsou dvě připojení v různých fázích provádění a jeden aktivuje překompilujte je nejprve před odkaz do dočasné tabulky vytvořené mimo proceduru bude Zastavit kompilaci plánu dosáhne tohoto prohlášení. Pokud druhé připojení je po to někam a také aktivuje překompilujte během kompilace první připojení, obnoví provádění a považuje nesprávně, že ji má provedeny všechny příkazy v plánu.

Pokud používáte WITH PŘEKOMPILOVAT, při vytvoření procedury nebo pokud je spuštěn dvě připojení nikdy sdílet stejný plán kompilované a tato podmínka nikdy dojde.

Kde je možné, je také vhodné, odkazovat dočasné tabulky vytvořené mimo aktuální procedury jako vždy vyžaduje překompilujte postupu. Další postupy programování pro uložené procedury nalezen pod téma "Transact-SQL tipy" v SQL Books Online.

Chcete-li zjistit, kdy je právě recompiled proceduru, můžete sledovat události SP:recompile v SQL Profiler.

Vlastnosti

ID článku: 250506 - Poslední aktualizace: 24. ledna 2014 - Revize: 2.0
Informace v tomto článku jsou určeny pro produkt:
  • Microsoft SQL Server 7.0 Standard Edition
Klíčová slova: 
kbnosurvey kbarchive kbmt kbbug kbfix KB250506 KbMtcs
Strojově přeložený článek
Důležité: Tento článek byl přeložen pomocí software společnosti Microsoft na strojový překlad, ne profesionálním překladatelem. Společnost Microsoft nabízí jak články přeložené překladatelem, tak články přeložené pomocí software na strojový překlad, takže všechny články ve Znalostní databázi (Knowledge Base) jsou dostupné v češtině. Překlad pomocí software na strojový překlad ale není bohužel vždy dokonalý. Obsahuje chyby ve skloňování slov, skladbě vět, nebo gramatice, podobně jako když cizinci dělají chyby při mluvení v češtině. Společnost Microsoft není právně zodpovědná za nepřesnosti, chyby nebo škody vzniklé chybami v překladu, nebo při použití nepřesně přeložených instrukcí v článku zákazníkem. Společnost Microsoft aktualizuje software na strojový překlad, aby byl počet chyb omezen na minimum.
Projděte si také anglickou verzi článku:250506

Dejte nám zpětnou vazbu

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com