Oprava: Se může zobrazit chybová zpráva o narušení přístupu při spuštění plán paralelní provádění v SQL Server 2005

Překlady článku Překlady článku
ID článku: 912885 - Produkty, které se vztahují k tomuto článku.
CHYBA Č: 420246 (SQLBUDT)
Společnost Microsoft distribuuje opravy Microsoft SQL Server 2005 jako jeden soubor ke stažení. Protože jsou kumulativní opravy, každé nové vydání obsahuje všechny opravy hotfix a opravte všechny opravy zabezpečení, které byly součástí předchozí SQL Server 2005 vydání.
Rozbalit všechny záložky | Minimalizovat všechny záložky

Na této stránce

Souhrn

Tento článek popisuje následující o tomto vydání opravy hotfix:
  • Problémy opravené balíčkem oprav hotfix
  • požadavky pro instalaci balíčku oprav hotfix,
  • zda je nutné restartování počítače po instalaci balíčku oprav hotfix,
  • nahrazení balíčku oprav hotfix jiným balíčkem oprav hotfix
  • zda je nutné provedení změn v registru,
  • soubory obsažené v balíčku oprav hotfix

Příznaky

V Microsoft SQL Server 2005 můžete obdržet chybová zpráva o narušení přístupu při jsou splněny následující podmínky:
  • Vytvořit index, který využívá možnost IGNORE_DUP_KEY pro tabulku.
  • Spustit INSERT, který vloží nový řádek do tohoto indexu.
  • Plán příkazu INSERT je paralelní.
  • Pomocí parametru je zadána hodnota pro klíčové sloupce možnost IGNORE_DUP_KEY.
Navíc se může zobrazit následující nebo podobná chybová zpráva:
V aktuálním příkazu došlo k chybě serveru. The results, if any, should be discarded. (Výsledky, pokud existují, by měly být zahozeny.).

Řešení

Informace o opravě hotfix

K dispozici je podporovaná oprava hotfix od společnosti Microsoft. Tato oprava hotfix je však určena pouze k opravě problému popsanému v tomto článku. Použijte tuto opravu hotfix pouze u systémů, kde dochází k tomuto konkrétnímu problému. Tato oprava hotfix může být dále testována. Pokud Vás tento problém závažně nepostihuje, doporučujeme počkat na další aktualizaci softwaru, která bude tuto opravu hotfix obsahovat.

Pokud je oprava hotfix k dispozici ke stažení, v horní části tohoto článku je sekce "Hotfix stažení k dispozici". Pokud tento oddíl nevidíte, obraťte se na Technickou podpora společnosti Microsoft pro získání opravy hotfix.

Poznámka: Pokud vyskytnout další problémy nebo jakékoli řešení potíží je vyžadován, pravděpodobně budete muset vytvořit zvláštní požadavek na službu. Výdaje na technickou podporu se týkají dalších otázek a problémů, které nelze vyřešit pomocí této opravy konkrétní opravy hotfix. Navštivte následující web společnosti Microsoft pro získání telefonního čísla na Zákaznické centrum, nebo pokud chcete vytvořit samostatnou žádost o podporu:
http://support.microsoft.com/contactus/?ws=support
Poznámka: Zobrazí formulář "Hotfix stažení k dispozici" jazyky, pro které je oprava hotfix k dispozici. Pokud váš jazyk není zobrazen, oprava hotfix není k dispozici pro daný jazyk.

Požadavky

Neexistují žádné požadavky pro tuto opravu hotfix.

Informace o restartování

Po instalaci této opravy hotfix není třeba počítač restartovat.

Informace o registru

Nemáte změna registru.

INFORMACE O SOUBORECH

Tato oprava hotfix obsahuje pouze soubory, které jsou nutné k opravě problémů uvedených v tomto článku. Oprava hotfix nemusí obsahovat všechny soubory nutné k plné aktualizaci produktu na nejnovější verzi.

Anglická verze této opravy hotfix má následující (nebo pozdější) atributy souborů. Data a časy jednotlivých souborů jsou uvedeny ve formátu UTC (Coordinated Universal Time). Pokud zobrazíte informace o souboru, bude převedena na místní čas. Rozdíl mezi místním ČASEM a najít, použijte kartu časové pásmo v položce datum a čas v ovládacím.
SQL Server 2005 pro x 86 systémů
Zmenšit tuto tabulkuRozšířit tuto tabulku
Název souboruVerze souboruVelikost souboruDatumČasPlatforma
Msvcp80.dll8.0.50727.42548,86414. Října 200506: 26X86
Msvcr80.dll8.0.50727.42626,68814. Října 200506: 26X86
Sqldiscoveryapi.dll2005.90.1518.0527,06421 Leden 200600: 11X86
SQL Server 2005 x 64 edition
Zmenšit tuto tabulkuRozšířit tuto tabulku
Název souboruVerze souboruVelikost souboruDatumČasPlatforma
Msvcp80.dll8.0.50727.421,097,72814. Října 200518: 46X64
Msvcr80.dll8.0.50727.42822,78414. Října 200518: 46X64
Sqldiscoveryapi.dll2005.90.1518.0745,68821 Leden 200604: 14X64
SQL Server 2005 pro systémy s procesorem Itanium
Zmenšit tuto tabulkuRozšířit tuto tabulku
Název souboruVerze souboruVelikost souboruDatumČasPlatforma
Msvcp80.dll8.0.50727.421,385,47214. Října 200518: 35IA-64
Msvcr80.dll8.0.50727.421,484,80014. Října 200518: 35IA-64
Sqldiscoveryapi.dll2005.90.1518.01,924,31221 Leden 200603: 30IA-64

Jak potíže obejít

Chcete-li tento problém vyřešit, postupujte takto:
  1. Určit problematické příkazu INSERT, který způsobuje narušení přístupu.
  2. Vynutit Optimalizátor dotaz Generovat sériový plán problematické příkazu INSERT. Příkaz tedy mohou být provedeny na jeden podproces.
Poznámka: Pokud nelze určit problematické příkazu INSERT, který způsobuje narušení přístupu, můžete použít metodu popsanou v metodě 3 Tento problém vyřešit.

Určit problematické příkazu INSERT, který způsobuje narušení přístupu, postupujte takto:
  1. Vyhledejte chybová zpráva narušení přístupu v souboru protokolu chyb serveru SQL.
  2. Horní chybová zpráva narušení přístupu vyhledejte informace vstupní vyrovnávací paměti.
  3. Vyhledejte následující informace vstupní vyrovnávací paměti informací dávky.

    Poznámka: Dávkové obsahuje problematické příkazu INSERT, který způsobuje narušení přístupu.
  4. Pokud list obsahuje pouze jeden příkazu INSERT, toto prohlášení je přesně problematické příkazu INSERT. Pokud list obsahuje více příkazů INSERT, provádět operace postupujte určit problematické příkazu INSERT:
    1. V SQL Server Profiler vytvořit trasování proti instance SQL Server 2005.
    2. V kategorii událostí chyby a upozornění vyberte upozornění třída událostí a výjimek třída událostí.

      Poznámka: Tyto třídy událostí lze použít k určení posledního příkazu, který začíná spustit před dojde k porušení přístupu.

      Pokud list obsahuje pouze příkazy Transact-SQL, vyberte následující třídy další událostí v kategorii událostí TSQL:
      • SQL:BatchStarting
      • SQL:BatchCompleted
      • SQL:StmtStarting
      • SQL:StmtCompleted
      Pokud list obsahuje uložené procedury, ve kterém dojde k porušení přístupu, vyberte následující třídy další událostí v kategorii událostí Uložené procedury:
      • Aktualizace SP: počáteční
      • Aktualizace SP: dokončeno
      • SP:StmtStarting
      • SP:StmtCompleted
    3. Stejné dávkové spustit z aplikace klienta.

      Postupujte podle tohoto kroku reprodukovat narušení přístupu. Poté můžete určit problematické příkazu INSERT. Při spuštění dávkové Přesvědčte se, zda je spuštěna trasování.

      Pokud aplikace klienta není SQL Server Management Studio, může také ručně spustit stejné dávky v SQL Server Management Studio. Však je pravděpodobně není získat stejný plán spuštění jako původní plán spuštění způsobující problém. K tomuto chování dochází, pokud je SQL Server 2005 znovu zkompiluje problematické příkazu INSERT v dávce plán provádění různých nebo různých parametrů.
    4. Zastavení trasování a analyzovat výsledky trasování určit problematické příkazu INSERT. Určit problematické příkazu INSERT určit SPID dojde k narušení přístupu a, odpojí klientské aplikace. Na SPID, si INSERT, který splňuje následující požadavky:
      • Spuštění příkazu INSERT.
      • Stejné příkazu INSERT není dokončena.
Vynutit Optimalizátor dotaz Generovat sériový plán problematické příkazu INSERT, použijte jednu z následujících metod.

Metoda 1

Poznámka: Tuto metodu použijte, pokud přístup problematické příkazu INSERT.

Výraz OPTION (MAXDOP 1) přidat problematické příkazu INSERT. Následuje příklad nového příkazu INSERT.
INSERT INTO MyTable (Col1, Col2)
SELECT Col1, Col2 FROM OtherTable
OPTION (MAXDOP 1) 
Další informace o rada MAXDOP dotazu naleznete v části "Using MAXDOP" na následujícím webu Microsoft Developer Network (MSDN):
http://msdn2.microsoft.com/en-us/library/ms181714.aspx

Metoda 2

Poznámka: Tuto metodu použijte, pokud nemůžete získat přístup k příkazu INSERT problematické. Například je problematický příkazu INSERT z aplikace klienta. Nelze změnit konfiguraci klienta aplikace nebo však nelze znovu zkompilujte aplikaci klienta přidat výraz OPTION (MAXDOP 1). Nebo je problematický příkazu INSERT v uložené proceduře. Však zašifrovány uložené procedury. Příkazy v uložené proceduře nelze změnit.

Použijte postup sp_create_plan_guide uloženy proti problematické příkazu INSERT. Tímto způsobem vynutit výraz OPTION (MAXDOP 1) na problematické příkazu INSERT. Následuje příklad použití sp_create_plan_guide uložené procedury.
sp_create_plan_guide @name = N'planguide_for_MyFailingProc', -- Arbitrary name
@stmt = N'INSERT INTO MyOneFailingStatementTable VALUES (@a,@b,@c)', -- The problematic INSERT statement
@type = N'OBJECT', @module_or_batch = N'dbo.MyFailingProc', -- The name of the stored procedure that contains the problematic INSERT statement
@params = NULL, @hints = N'OPTION (MAXDOP 1)'-- Query hint to prevent parallelism
Další informace o postupu sp_create_plan_guide uloženy na webu služby MSDN:
http://msdn2.microsoft.com/en-us/library/ms179880.aspx

Metoda 3

Poznámka: Tuto metodu použijte, pokud platí jedna z následujících podmínek:
  • Problematický příkazu INSERT je dynamicky generována.
  • Nelze určit INSERT, který způsobuje narušení přístupu.
Důležité: Tato metoda umožňuje všechny dotazy instance SQL Server 2005 spustit jeden podproces. Není doporučujeme použít tuto metodu. Tato metoda může způsobit problémy výkonu na dotazy, spuštění instance.

Spusťte následující příkazy Transact SQL.
sp_configure 'show advanced options', 1;
GO

RECONFIGURE WITH OVERRIDE;
GO

sp_configure 'max degree of parallelism', 1;
GO

RECONFIGURE WITH OVERRIDE;
GO
Další informace o možnosti Maximální stupeň parallelism na webu služby MSDN:
http://msdn2.microsoft.com/en-us/library/ms181007.aspx

Prohlášení

Společnost Microsoft potvrzuje, že se jedná o problém v produktech této společnosti, které jsou uvedeny v části Informace v tomto článku jsou určeny pro produkt.

Další informace

Další informace o pojmenování schématu aktualizace SQL Server klepněte na následující číslo článku databáze Microsoft Knowledge Base:
822499Nové schéma přidělování názvů pro balíčky aktualizací softwaru Microsoft SQL Server
Další informace o terminologii používané v aktualizacích softwaru naleznete v následujícím článku znalostní báze Microsoft Knowledge Base:
824684Popis standardní terminologie používané při popisu aktualizací softwaru společnosti Microsoft

Vlastnosti

ID článku: 912885 - Poslední aktualizace: 20. listopadu 2007 - Revize: 3.5
Informace v tomto článku jsou určeny pro produkt:
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Enterprise X64 Edition
  • Microsoft SQL Server 2005 Enterprise Edition for Itanium Based Systems
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Standard X64 Edition
  • Microsoft SQL Server 2005 Standard Edition for Itanium-based Systems Community Technology Preview
Klíčová slova: 
kbmt kbautohotfix kbsql2005engine kbsql2005presp1fix kbhotfixserver kbfix kbbug kbsqlserv2005fix kbqfe kbpubtypekc KB912885 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:912885

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