Primenjuje se na
SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Enterprise Core - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use) SQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use)

Simptomi

Razmotrite sledeći scenario:

  • Imate veoma veliki Filestream sto.

  • Upit za brisanje redova pokrenete u tabeli Filestream koji kreira skup plan upita, kao što je onaj koji je filtriran unutrašnjim spojem u drugu veliku tabelu u sistemu.

  • Optimizator upita bira paralelni plan izvršavanja.

U ovom scenariju će doći dousedanja i možete dobiti poruke o greškama koje su slične sledećoj u evidenciji grešaka sistema SQL Server:

DateTime spid SpidNumber Error: 5553, Težina: 20, Stanje: 6.

DatumTime spid SpidNumber SQL Server unutrašnja greška. FILESTREAM menadžer ne može da nastavi sa trenutnom komandom.

Status

Microsoft je potvrdio da je ovo problem u Microsoft proizvodima koji su navedeni u odeljku "Odnosi se na".

Rešenje

Problem je rešen u sledećim kumulativnim ispravkama za SQL Server:

Kumulativne ispravke za SQL Server:

Svaka nova kumulativna ispravka za SQL Server sadrži sve hitne ispravke i sve bezbednosne ispravke koje su bile uključene u prethodne kumulativna ispravka. Pogledajte najnovije kumulativne ispravke za SQL Server:

Rešenje

Akoovo uradite, možeteda koristite sledeći metod:

Premestite unutrašnji upit za spajanje u zasebnu izjavu i sačuvajte rezultate u privremenoj tabeli. Zatim pokrenite upit za brisanje koji filtriraju stavke u privremenoj tabeli. Pored toga, možete da povećate prag troškova za paralelizam da biste primorali optimizator da serijalizuje plan upita.

Na primer:

SELECT RefTable.Alias INTO #T FROM DB.dbo.OuterTable INNER JOIN DB.dbo.RefTable ON RefTable.Alias = OuterTable.Alias

             WHERE OuterTable.Alias > 30006 AND OuterTable.Alias < 30010 

IZBRIŠI SA DB.dbo. [Tabela] WHERE Alias IN (SELECT * FROM #T)

Reference

Saznajte više o terminologiji koja Microsoft koristi za opisivanje softverskih ispravki.

Da li vam je potrebna dodatna pomoć?

Želite još opcija?

Istražite pogodnosti pretplate, pregledajte kurseve za obuku, saznajte kako da obezbedite uređaj i još mnogo toga.