Microsoft distribuuje opravy systému Microsoft SQL Server 2008 jako jeden soubor ke stažení. Vzhledem k tomu, že opravy jsou kumulativní, obsahuje každá nová verze všechny opravy hotfix a všechny opravy zabezpečení, které byly součástí předchozí verze opravy pro SQL Server 2008. Společnost Microsoft distribuuje opravy systému Microsoft SQL Server 2008 nebo SQL Server 2008 R2 jako jeden soubor ke stažení. Vzhledem k tomu, že opravy jsou kumulativní, obsahuje každá nová verze všechny opravy hotfix a všechny opravy zabezpečení, které byly součástí předchozího vydání opravy pro SQL Server 2008 nebo SQL Server 2008 R2.
Příznaky
Vezměte v úvahu následující scénář:
Máte fulltextový vyhledávací dotaz, který používá funkci CONTAINSTABLE spolu s mnoha predikáty NEBO a AND v podmínce v Microsoft SQL Server 2008 nebo v SQL Server 2008 R2. Máte například následujících 50 operací AND: Deklarace @Keywords varchar(4000) = NULL
set @Keywords= N'((((((((((((((((((((((((((((((((((((((((((((((((((((
("TOKarchitect" NEBO "architektonické")
AND ("TOKengineer" OR "engineer"))
AND "gineer") AND ("TOKmechanical" OR "Mechanical"))
AND ("TOKengineer" OR "Engineering"))
AND ("TOKelectronic" NEBO "Elektronika")) AND ("TOKengineer" NEBO "Engineer")) AND ("TOKelectronic" NEBO "Elektronika")) AND ("TOKengineer" NEBO "Engineering")) AND ("TOKelectric" OR "Electrical")) AND ("TOKengineer" OR "Engineer")) AND ("TOKelectric" OR "Electrical")) AND ("TOKengineer" OR "Engineering")) AND ("TOKcontrol" OR "Control")) AND ("TOKsystem" OR "Systems")) AND ("TOKengineer" OR "Engineer")) AND ("TOKproject" OR "Project")) AND ("TOKmanager" OR "Manager")) AND ("TOKengineer" OR "Manager")) AND ("TOKengineer" NEBO "Manažer")) NEBO ("TOKengineer" NEBO "Strojírenství")) A "Schéma") AND ("TOKvýroba" NEBO "Výroba")) A ("TOKinženýr" NEBO "Inženýr")) A ("TOKmetalurgista" NEBO "Metalurgie")) AND ("TOKmetalurgista" NEBO "Metalurgista")) AND ("TOKproces" NEBO "Proces")) AND ("TOKTtechnologie" NEBO "Technologie")) AND ("TOKproduct" NEBO "Výroba")) A ("TOKengineer" NEBO "Inženýr")) AND ("TOKQuality" NEBO "Kvalita")) AND ("TOKengineer" NEBO "Inženýr")) AND ("TOKQuality" NEBO "Kvalita")) AND ("TOKcontrol" NEBO "Control")) AND ("TOKengineer" NEBO "Inženýr")) A "Mechatronika") AND ("TOKcivil" NEBO "Civil")) AND ("TOKengineer" OR "Inženýr")) AND ("TOKcivil" OR "Civil")) AND ("TOKengineer" OR "Engineering")) AND ("TOKdesign" OR "Design")) AND ("TOKengineer" OR "Engineering")) AND ("TOKdesign" OR "Design")) AND ("TOKengineer" OR "Engineer")) AND ("TOKgraduate" OR "Graduate")) AND ("TOKengineer" OR "Engineer")) AND ("TOKgraduate" OR "Graduate")) AND ("TOKengineer" OR "Engineering")) AND ("TOKengineer" OR "Engineering")) AND ("TOKgraduate" OR "Engineering")) AND ("TOKgraduate" NEBO "Absolvent")) AND ") ANDNOT (") AND ("TOKRecruitment" OR "Recruitment")) AND ("TOKconsultant" OR "konzultant")) AND ("TOKtrainee" OR "trainee")) AND ("TOKecruitment" OR "nábor"))"select * from CONTAINSTABLE(test_table, *, @keywords, 1000)
Spustíte dotaz.
V tomto scénáři může dojít k chybě Nepoddajný plánovač. Navíc se ve složce protokolu aplikace systému SQL Server 2008 nebo SQL Server 2008 R2 vygeneruje soubor s minimální výpisem a do souboru protokolu chyb serveru SQL Server se zaznamená následující chyba:
Poznámka
<Server časového razítka> používající dbghelp.dll verze 4.0.5
<Server časových razítek> ***Nelze získat kontext vlákna pro SPID 0
<Server časových razítek> *
*******************************************************************************
<Server časových razítek> *
<Server časových razítek> * ZAČÁTEK VÝPISU ZÁSOBNÍKU:
<Server časových razítek> * <SPID časového>>spidu<
<Server časových razítek> *
<Server časových razítek> * Nevýnosný plánovač
<Server časových razítek> *
<Server časových razítek> *
*******************************************************************************
<Časové razítko> Server Stack Podpis pro výpis stavu je 0x000000000000030D
<Návratový kód procesu časového razítka> externího výpisu 0x20000001. Proces externího výpisu nevrátil žádné chyby.
<Proces serveru časového razítka> 0:0:0 (0xf94) Pracovní 0x00000000817481A0 se v Scheduleru 0 jeví jako neústupný. Doba vytvoření vlákna: 12925321224306. Přibližně vlákno CPU Použitý: jádro 62 ms, uživatel 75187 ms. Využití procesu 98 %. Systém je nečinný: 0 %. Interval: 76403 ms.
<Proces serveru časového razítka> 0:0:0 (0xf94) Pracovní 0x00000000817481A0 se v Scheduleru 0 jeví jako neústupný. Doba vytvoření vlákna: 12925321224306. Přibližně vlákno CPU Použitý: jádro 125 ms, uživatel 145250 ms. Využití procesu 98 %. Systém je nečinný: 0 %. Interval: 148417 ms.
<Proces serveru časového razítka> 0:0:0 (0xf94) Pracovní 0x00000000817481A0 se v Scheduleru 0 jeví jako neústupný. Doba vytvoření vlákna: 12925321224306. Přibližně vlákno CPU Použité: jádro 171 ms, uživatelské 205515 ms. Využití procesu 98 %. Systém je nečinný: 0 %. Interval: 209729 ms.
<Proces serveru časového razítka> 0:0:0 (0xf94) Pracovní 0x00000000817481A0 se v Scheduleru 0 jeví jako neústupný. Doba vytvoření vlákna: 12925321224306. Přibližně vlákno CPU Využito: jádro 218 ms, uživatelské 266343 ms. Využití procesu 98 %. Systém je nečinný: 0 %. Interval: 271588 ms.
<Proces serveru časového razítka> 0:0:0 (0xf94) Pracovní 0x00000000817481A0 se v Scheduleru 0 jeví jako neústupný. Doba vytvoření vlákna: 12925321224306. Přibližně vlákno CPU Využito: jádro 234 ms, uživatelské 325156 ms. Využití procesu 97 %. Systém je nečinný: 0 %. Interval: 333671 ms.
<Proces serveru časového razítka> 0:0:0 (0xf94) Pracovní 0x00000000817481A0 se v Scheduleru 0 jeví jako neústupný. Doba vytvoření vlákna: 12925321224306. Přibližně vlákno CPU Použitý: jádro 296 ms, uživatel 386000 ms. Využití procesu 97 %. Systém je nečinný: 0 %. Interval: 396370 ms.
Příčina
K tomuto problému dochází, protože SQL Server 2008 nebo SQL Server 2008 R2 nevydá plánovač správně.
Řešení
Informace o kumulativní aktualizaci
SQL Server 2008 R2
Oprava tohoto problému byla poprvé vydána v kumulativní aktualizaci 5. Další informace o získání tohoto balíčku kumulativní aktualizace pro SQL Server 2008 R2 naleznete v následujícím článku znalostní báze znalostní báze Microsoft Knowledge Base:
2438347 Balíček 5 kumulativní aktualizace pro SQL Server 2008 R2 Poznámka: Buildy jsou kumulativní, a proto každá nová verze opravy obsahuje všechny opravy hotfix a všechny opravy zabezpečení, které byly součástí předchozího vydání opravy pro SQL Server 2008 R2. Doporučujeme zvážit použití nejnovější verze opravy, která obsahuje tuto opravu hotfix. Další informace naleznete v následujícím článku znalostní báze znalostní báze Microsoft Knowledge Base:
981356 Buildy SQL Server 2008 R2, které byly vydány po vydání verze SQL Server 2008 R2
SQL Server 2008 Service Pack 1
Oprava, která tento problém řeší, byla poprvé vydána v kumulativní aktualizaci 10 pro SQL Server 2008 Service Pack 1. Další informace o tomto balíčku kumulativních aktualizací naleznete v následujícím článku znalostní báze znalostní báze Microsoft Knowledge Base:
2279604 Balíček kumulativní aktualizace 10 pro SQL Server 2008 Service Pack 1Poznámka: Vzhledem k tomu, že buildy jsou kumulativní, obsahuje každá nová verze opravy všechny opravy hotfix a všechny opravy zabezpečení, které byly součástí předchozí verze opravy pro SQL Server 2008. Společnost Microsoft doporučuje zvážit použití nejnovější verze opravy, která obsahuje tuto opravu hotfix. Další informace naleznete v následujícím článku znalostní báze znalostní báze Microsoft Knowledge Base:
970365 Buildy SQL Server 2008 vydané po vydání aktualizace Service Pack 1 SQL Server 2008 Opravy hotfix pro Microsoft SQL Server 2008 se vytváří pro konkrétní SQL Server aktualizace Service Pack. Opravu hotfix pro SQL Server 2008 Service Pack 1 je nutné nainstalovat k instalaci systému SQL Server 2008 Service Pack 1. Ve výchozím nastavení jsou všechny opravy hotfix poskytované v aktualizaci Service Pack pro SQL Server zahrnuty do další aktualizace Service Pack pro SQL Server.
SQL Server 2008 Service Pack 2
Oprava, která tento problém řeší, byla poprvé vydána v rámci kumulativní aktualizace 1 pro SQL Server 2008 Service Pack 2. Další informace o tomto balíčku kumulativních aktualizací naleznete v následujícím článku znalostní báze znalostní báze Microsoft Knowledge Base:
2289254 Kumulativní aktualizace 1 pro SQL Server 2008 Service Pack 2Poznámka Vzhledem k tomu, že buildy jsou kumulativní, obsahuje každá nová verze opravy všechny opravy hotfix a všechny opravy zabezpečení, které byly součástí předchozí verze opravy pro SQL Server 2008. Doporučujeme zvážit použití nejnovější verze opravy, která obsahuje tuto opravu hotfix. Další informace naleznete v následujícím článku znalostní báze znalostní báze Microsoft Knowledge Base:
2402659 Buildy SQL Server 2008 vydané po vydání aktualizace Service Pack 2 SQL Server 2008
Alternativní řešení
Tento problém můžete vyřešit tak, že k definování synonym predikátu použijete fulltextový tezaurus.
Uděláte to tak, že použijete funkci FORMSOF společně s hodnotou THESAURUS a pak přidáte všechna klíčová slova jako parametry.
V příkladu popsaném v části "Příznaky" je následující aktualizovaná verze ukázkového dotazu: Vyberte * od test_table, kde Obsahuje(*,'FORMSOF (TEZAURUS,"Architektonické","Inženýr","Mechanické","Strojírenství","Elektronika","Inženýr","Elektrotechnika","Řízení","Systémy","Projekt","Manažer","Výroba","Metalurgie","Hutník","Proces","Návrh","Technologie","Výroba","Kvalita","Kontrola","Civilní","Absolvent","Nábor","Konzultant","Stážista" ,"nábor")')
Stav
Společnost Microsoft potvrdila, že se jedná o problém produktů Microsoft, které jsou uvedeny v sekci Platí pro.
Reference
Další informace o funkci CONTAINSTABLE naleznete na následujícím webu MSDN (web MSDN (Microsoft Developer Network)):
Obecné informace o funkci CONTAINSTABLE Další informace o modelu přírůstkové údržby pro SQL Server naleznete v následujícím článku znalostní báze znalostní báze Microsoft Knowledge Base:
935897 Tým SQL Server poskytuje k poskytování oprav hotfix pro hlášené problémy model přírůstkové údržby
Další informace o schématu pojmenování aktualizací pro aktualizace serveru SQL Server naleznete v následujícím článku znalostní báze znalostní báze Microsoft Knowledge Base:
822499 Nové schéma pojmenování balíčků aktualizací softwaru Microsoft SQL Server Další informace o terminologii aktualizací softwaru naleznete v následujícím článku znalostní báze znalostní báze Microsoft Knowledge Base:
824684 Popis standardní terminologie používané k popisu aktualizací softwaru společnosti Microsoft