KB2344600 — IZLABOTS: ja funkcija CONTAINSTABLE tiek izmantota kopā ar daudziem predikātiem VAI un AND programmā SQL Server 200 SQL Server 8 R2, var rasties kļūda "Neienesīgs plānotājs"

Attiecas uz
SQL Server 2008 Developer SQL Server 2008 Enterprise SQL Server 2008 Standard SQL Server 2008 Standard Edition for Small Business SQL Server 2008 Workgroup SQL Server 2008 R2 Developer SQL Server 2008 R2 Enterprise SQL Server 2008 R2 Standard SQL Server 2008 R2 Standard Edition for Small Business SQL Server 2008 R2 Workgroup

Microsoft izplata Microsoft SQL Server 2008 labojumus kā vienu lejupielādējamu failu. Tā kā labojumi ir kumulatīvi, katrs jaunais laidiens ietver visus labojumfailus un drošības labojumus, kas bija iekļauti iepriekšējā SQL Server 2008 labojuma laidienā. Microsoft izplata Microsoft SQL Server 2008 vai SQL Server 2008 R2 labojumus kā vienu lejupielādējamu failu. Tā kā labojumi ir kumulatīvi, katrs jaunais laidiens ietver visus labojumfailus un drošības labojumus, kas bija iekļauti iepriekšējā SQL SQL Server 2008 vai SQL Server 2008 R2 labojumu laidienā.

Pazīmes

Apsveriet šādu scenāriju:

  • Jums ir pilna teksta meklēšanas vaicājums, kas izmanto funkciju CONTAINSTABLE kopā ar daudziem predikātiem OR un AND nosacījumā Microsoft SQL Server 2008 vai SQL Server 2008 R2. Piemēram, jums ir šādas 50 operācijas AND: Declare @Keywords varchar(4000) = NULL

    iestatīt @Keywords= N'((((((((((((((((((((((((((((((((((((((((((((((((((((
    ("TOKarchitect" VAI "arhitektūra")
    AND ("TOKengineer" VAI "inženieris"))
    AND "gineer") AND ("TOKmechanical" OR "Mechanical"))
    AND ("TOKengineer" VAI "Inženieris"))
    UN ("TOKelectronic" VAI "Electronics")) UN ("TOKengineer" VAI "Engineer")) UN ("TOKelectronic" VAI "Electronics")) UN ("TOKengineer" VAI "Engineering")) UN ("TOKelectric" VAI "Electrical")) UN ("TOKengineer" VAI "Engineer") UN ("TOKengineer" VAI "Electrical")) UN ("TOKengineer" VAI "Electrical")) UN ("TOKengineer" VAI "Engineering")) UN ("TOKcontrol" VAI "Control")) UN ("TOKsystem" VAI "Sistēmas")) UN ("TOKengineer" VAI "Inženieris")) UN ("TOKproject" VAI "Projekts")) UN ("TOKmanager" VAI "Vadītājs")) UN ("TOKengineer" VAI "TOKengineer" VAI "Inženierija")) UN "shēma") UN ("TOKražošana" VAI "Ražošana")) UN ("TOKengineer" VAI "Inženieris")) UN ("TOKmetalurgists" VAI "Metalurģija")) UN ("TOKmetalurgists" VAI "Metalurgists")) UN ("TOKprocess" VAI "Process")) UN ("TOKTechnology" VAI "Tehnoloģija")) UN ("TOKprodukts" VAI "Ražošana")) UN ("TOKengineer" VAI "Inženieris")) UN ("TOKengineer" VAI "Kvalitāte")) UN ("TOKengineer" VAI "Inženieris")) UN ("TOKuality" VAI "Engineer")) UN ("TOKuality" VAI "Quality")) UN ("TOKcontrol" VAI "Control")) UN ("TOKengineer" VAI "Inženieris")) UN "Mehatronika") UN ("TOKcivil" VAI "Civils")) UN ("TOKengineer" VAI "Inženieris")) UN ("TOKcivil" VAI "Civils")) UN ("TOKengineer" VAI "Inženieris")) UN ("TOKengineer" VAI "Dizains")) UN ("TOKengineer" VAI "Inženieris")) UN ("TOKengineer" VAI "Projekts")) UN ("TOKengineer" VAI "Inženieris")) UN ("TOKengineer" VAI "Absolvents")) UN ("TOKengineer" VAI "Inženieris")) UN ("TOKengineer" VAI "Absolvents")) UN ("TOKengineer" VAI "Inženieris")) UN ("TOKengineer" VAI "Inženieris")) UN ("TOKengineer" OR "absolvents")) AND ") ANDNOT (") AND ("TOKRecruitment" OR "Recruitment")) UN ("TOKconsultant" VAI "Consultant")) UN ("TOKtrainee" OR "Traineesee")) UN ("TOKRecruitment" OR "Recruitment"))"

    select * from CONTAINSTABLE(test_table, *, @keywords, 1000)

  • Jūs izpildāt vaicājumu.

Šādā gadījumā var rasties kļūda "Neienesīgs plānotājs". Turklāt SQL Server 2008 vai SQL Server 2008 R2 lietojumprogrammas žurnālmapē tiek ģenerēts miniizmetes fails, un SQL Server kļūdu žurnālfailā tiek reģistrēta šāda kļūda:

Piezīme

<Laikspiedola> serveris, kas izmanto "dbghelp.dll" versiju "4.0.5"

<Laikspiedola> serveris ***Nevar iegūt pavediena kontekstu spid 0
<Laikspiedola> serveris *
*******************************************************************************

<Laikspiedola> serveris *

<Laikspiedola> serveris * SĀKT STEKA IZMETI:

<Time Stamp> Server * <Time> spid <SPID>
<Laikspiedola> serveris *

<Time Stamp> Server * Non-yielding Scheduler

<Laikspiedola> serveris *

<Laikspiedola> serveris *
*******************************************************************************

<Laikspiedols> Servera steka paraksts izmetei ir 0x000000000000030D

<Laikspiedola> serveris Ārējās izmetes procesa atgriešanas kods 0x20000001. Ārējās izmetes process neatdeva kļūdas.

<Laikspiedola> servera process 0:0:0 (0xf94) Plānotājā 0 šķiet, ka strādnieka 0x00000000817481A0 nepiekāpjas. Pavediena izveides laiks: 12925321224306. Izmantotais aptuvenais pavediena CPU: kodols 62 ms, lietotājs 75187 ms. Procesa izmantošana 98%. Sistēma netiek gaidīta 0%. Intervāls: 76403 ms.

<Laikspiedola> servera process 0:0:0 (0xf94) Plānotājā 0 šķiet, ka strādnieka 0x00000000817481A0 nepiekāpjas. Pavediena izveides laiks: 12925321224306. Izmantotais aptuvenais pavediena CPU: kodols 125 ms, lietotājs 145250 ms. Procesa izmantošana 98%. Sistēma netiek gaidīta 0%. Intervāls: 148417 ms.

<Laikspiedola> servera process 0:0:0 (0xf94) Plānotājā 0 šķiet, ka strādnieka 0x00000000817481A0 nepiekāpjas. Pavediena izveides laiks: 12925321224306. Izmantotais aptuvenais pavediena CPU: kodols 171 ms, lietotājs 205515 ms. Procesa izmantošana 98%. Sistēma netiek gaidīta 0%. Intervāls: 209729 ms.

<Laikspiedola> servera process 0:0:0 (0xf94) Plānotājā 0 šķiet, ka strādnieka 0x00000000817481A0 nepiekāpjas. Pavediena izveides laiks: 12925321224306. Izmantotais aptuvenais pavediena CPU: kodols 218 ms, lietotājs 266343 ms. Procesa izmantošana 98%. Sistēma netiek gaidīta 0%. Intervāls: 271588 ms.

<Laikspiedola> servera process 0:0:0 (0xf94) Plānotājā 0 šķiet, ka strādnieka 0x00000000817481A0 nepiekāpjas. Pavediena izveides laiks: 12925321224306. Izmantotais aptuvenais pavediena CPU: kodols 234 ms, lietotājs 325156 ms. Procesa izmantošana 97%. Sistēma netiek gaidīta 0%. Intervāls: 333671 ms.
<Laikspiedola> servera process 0:0:0 (0xf94) Plānotājā 0 šķiet, ka strādnieka 0x00000000817481A0 nepiekāpjas. Pavediena izveides laiks: 12925321224306. Izmantotais aptuvenais pavediena CPU: kodols 296 ms, lietotājs 386000 ms. Procesa izmantošana 97%. Sistēma netiek gaidīta 0%. Intervāls: 396370 ms.

Iemesls

Šī problēma rodas, jo SQL SQL Server 2008 vai SQL Server 2008 R2 neizlaiž plānotāju pareizi.

Risinājums

Kumulatīvā atjauninājuma informācija

SQL Server 2008 R2

Šīs problēmas labojums pirmo reizi tika izlaists 5. kumulatīvajā atjauninājumā. Lai iegūtu papildinformāciju par to, kā iegūt šo kumulatīvā atjauninājuma pakotni operētājsistēmai SQL Server 2008 R2, noklikšķiniet uz šī raksta numura un lasiet Microsoft zināšanu bāzes rakstu:

2438347 5. kumulatīvā atjauninājuma pakotne operētājsistēmai SQL Server 2008 R2 Piezīme Tā kā būvējumi ir kumulatīvi, katrā jaunajā labojumu laidienā ir iekļauti visi labojumfaili un drošības labojumi, kas bija iekļauti iepriekšējā SQL Server 2008 R2 labojumu laidienā. Iesakām apsvērt tā labojumfaila lietošanu, kurā ir iekļauts šis labojumfails. Lai iegūtu papildinformāciju, noklikšķiniet uz tālāk norādītā raksta numura un lasiet Microsoft zināšanu bāzes rakstu:

981356 SQL Server 2008 R2 būvējumi, kas tika izlaisti pēc SQL Server 2008 R2 izlaišanas

SQL Server 2008 1. servisa pakotne

Šīs problēmas labojums pirmo reizi tika izlaists SQL Server 2008 1. servisa pakotnes kumulatīvajā atjauninājumā 10. Lai iegūtu papildinformāciju par šo kumulatīvo atjauninājumu pakotni, noklikšķiniet uz tālāk norādītā raksta numura un lasiet Microsoft zināšanu bāzes rakstu:

2279604 Kumulatīvā atjauninājuma pakotne 10 SQL Server 2008 1. servisa pakotneiPiezīme Tā kā būvējumi ir kumulatīvi, katrs jaunais labojumu laidiens ietver visus labojumfailus un drošības labojumus, kas bija iekļauti iepriekšējā SQL Server 2008 labojumu laidienā. Microsoft iesaka apsvērt iespēju lietot jaunāko labojumfailu laidienu, kurā ir iekļauts šis labojumfails. Lai iegūtu papildinformāciju, noklikšķiniet uz tālāk norādītā raksta numura un lasiet Microsoft zināšanu bāzes rakstu:

970365 SQL Server 2008 būvējumi, kas tika izlaisti pēc SQL Server 2008. gada 1. servisa pakotnes izlaišanas Microsoft SQL Server 2008 labojumfaili ir paredzēti noteiktām SQL Server servisa pakotnēm. SQL Server 2008 1. servisa pakotnes labojumfails ir jālieto SQL Server 2008 1. servisa pakotnes instalācijai. Pēc noklusējuma visi labojumfaili, kas ir iekļauti SQL Server servisa pakotnē, tiek iekļauti nākamajā SQL Server servisa pakotnē.

SQL Server 2008 2. servisa pakotne

Šīs problēmas labojums pirmo reizi tika izlaists SQL Server 2008 2. servisa pakotnes 1. kumulatīvajā atjauninājumā. Lai iegūtu papildinformāciju par šo kumulatīvo atjauninājumu pakotni, noklikšķiniet uz tālāk norādītā raksta numura un lasiet Microsoft zināšanu bāzes rakstu:

2289254 1. kumulatīvais atjauninājums SQL Server 2008 2. servisa pakotnei. Tā kā būvējumi ir kumulatīvi, katrs jaunais labojumu laidiens ietver visus labojumfailus un drošības labojumus, kas bija iekļauti iepriekšējā SQL Server 2008 labojumu laidienā. Iesakām apsvērt tā labojumfaila lietošanu, kurā ir iekļauts šis labojumfails. Lai iegūtu papildinformāciju, noklikšķiniet uz tālāk norādītā raksta numura un lasiet Microsoft zināšanu bāzes rakstu:

2402659 SQL Server 2008 būvējumi, kas tika izlaisti pēc SQL Server 2008. gada 2. servisa pakotnes izlaišanas

Risinājums

Lai novērstu šo problēmu, izmantojiet pilna teksta meklēšanas tēzauru, lai definētu predikāta sinonīmus.

Lai to izdarītu, izmantojiet funkciju FORMSOF kopā ar vērtību THESAURUS un pēc tam pievienojiet visus atslēgvārdus kā parametrus.

Sadaļā "Simptomi" aprakstītajā piemērā tālāk ir atjaunināta parauga vaicājuma versija: Atlasiet * no test_table, kur satur(*,'FORMSOF (TĒZAURS,"ARHITEKTŪRA","inženieris","Mehāniskais","Inženierija","Elektronika","Inženieris","Elektriskais","Vadība","Sistēmas","Projekts","Vadītājs","Ražošana","Metalurģija","Metalurgs","Process","Projektēšana","Tehnoloģija","Kvalitāte","Vadība","Civilais","Absolvents","Personāla atlase","Konsultants","praktikants" ,"pieņemšana darbā")")

Statuss

Microsoft apstiprināja, ka šī ir problēma Microsoft produktos, kas norādīti sadaļā "attiecas uz".

Atsauces

Lai iegūtu papildinformāciju par funkciju CONTAINSTABLE, apmeklējiet šo Microsoft izstrādātāju tīkla (MSDN) tīmekļa vietni:

Vispārīga informācija par funkciju CONTAINSTABLE Lai iegūtu papildinformāciju par SQL Server inkrementālās apkalpošanas modeli, noklikšķiniet uz šī raksta numura un lasiet Microsoft zināšanu bāzes rakstu:

935897 SQL Server komanda piedāvā inkrementālo apkalpošanas modeli, lai nodrošinātu labojumfailus ziņoto problēmu gadījumā

Lai iegūtu papildinformāciju par SQL Server atjauninājumu nosaukumdošanas shēmu, noklikšķiniet uz šī raksta numura un lasiet Microsoft zināšanu bāzes rakstu:

822499 Jauna Microsoft SQL Server programmatūras atjauninājumu pakotņu nosaukumdošanas shēmaLai iegūtu papildinformāciju par programmatūras atjaunināšanas terminoloģiju, noklikšķiniet uz šī raksta numura un lasiet Microsoft zināšanu bāzes rakstu:

824684 Standarta terminoloģijas apraksts, kas tiek izmantots Microsoft programmatūras atjauninājumu aprakstīšanai