KB2451540 - 2451540 - LABOJUMS: Slikta veiktspēja var rasties, ja izpildāt vaicājumu, kas ietver vairākas pašsavienojuma operācijas vienā kolonnā programmā SQL Server 2005, SQL Server 2008 un SQL Server 2008 R2

Attiecas uz
Microsoft SQL Server 2005 Workgroup Edition Microsoft SQL Server 2005 Evaluation Edition Microsoft SQL Server 2005 Standard Edition Microsoft SQL Server 2005 Express Edition Microsoft SQL Server 2005 Enterprise X64 Edition Microsoft SQL Server 2005 Developer Edition SQL Server 2008 Developer SQL Server 2008 Enterprise SQL Server 2008 Express SQL Server 2008 Standard SQL Server 2008 Workgroup SQL Server 2008 R2 Developer SQL Server 2008 R2 Express SQL Server 2008 R2 Standard SQL Server 2008 R2 Workgroup Microsoft SQL Server 2005 Service Pack 4 Microsoft SQL Server 2005 Service Pack 3

Microsoft izplata Microsoft SQL Server 2005 vai Microsoft SQL Server 2008 vai Microsoft 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 Server 2005 vai Microsoft SQL SQL Server 2008 vai Microsoft SQL Server 2008 R2 labojuma laidienā.

Pazīmes

Apsveriet šādu scenāriju. Jums ir datu bāze programmā Microsoft SQL SQL Server 2005 vai Microsoft SQL Server 2008 vai Microsoft SQL Server 2008 R2. Jūs izpildāt vaicājumu, kurā ir vairākas pašsavienojuma darbības vienā datu bāzes tabulas kolonnā. Piemēram, mēģinot izveidot kubu, kas izmanto datu bāzes datus, var tikt izpildīts vaicājums, kas ietver vairākas pašsavienojuma darbības vienā kolonnā. Šādā gadījumā var rasties slikta veiktspēja, un vaicājuma izpilde var aizņemt ilgu laiku.

Iemesls

Šī problēma rodas, jo kardinalitātes novērtējums vaicājumā ir nepareizs. Kad ir ņemtas vērā vairākas pašpievienošanās darbības, vaicājuma optimizētājs var novērtēt, ka rindu skaits citam savienojuma operatoram ir 1. Tāpēc vaicājumu optimizētājs atlasa neefektīvu vaicājuma plānu, un var rasties slikta veiktspēja.

Risinājums

Kumulatīvā atjauninājuma informācija

SQL Server 2008 2. servisa pakotne

Šīs problēmas labojums pirmo reizi tika izlaists SQL Server 2008 2. servisa pakotnes 3. 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:

2498535 Kumulatīvā atjauninājuma pakotne 3 SQL Server 2008 servisa pakotnei. Piezī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:

2402659 SQL Server 2008 būvējumi, kas tika izlaisti pēc SQL Server 2008. gada 2. servisa pakotnes izlaišanas Microsoft SQL Server 2008 labojumfaili ir paredzēti konkrētām SQL Server servisa pakotnēm. SQL Server 2008 2. servisa pakotnes labojumfails ir jālieto SQL Server 2008 2. 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 R2

Šīs problēmas labojums pirmo reizi tika izlaists 6. 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:

2489376 6. kumulatīvā atjauninājuma pakotne operētājsistēmai SQL Server 2008 R2 Piezī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 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ā 12. 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:

2467236 12. kumulatīvā atjauninājuma pakotne SQL Server 2008 1. servisa pakotnei. Piezī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ē.

Pēc šīs kumulatīvo atjauninājumu pakotnes instalēšanas ir jāiespējo traceflag 4199. Lai to izdarītu, varat pievienot startēšanas parametru -T4199 vai izmantot priekšrakstu dbcc traceon(4199) atsevišķai sesijai.

SQL Server 2005 3. servisa pakotne

                
SQL Server 2005 3. servisa pakotne Šīs problēmas labojums pirmo reizi tika izlaists SQL Server 2005 3. servisa pakotnes kumulatīvajā atjauninājumā 13. 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:

2438344 kumulatīvā atjauninājuma pakotne 13 SQL Server 2005 servisa pakotnei. Piezī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 2005 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:

960598 SQL Server 2005 būvējumi, kas tika izlaisti pēc SQL Server 2005 3. servisa pakotnes izlaišanas Microsoft SQL Server 2005 labojumfaili ir paredzēti noteiktām SQL Server servisa pakotnēm. SQL Server 2005 3. servisa pakotnes labojumfails ir jālieto SQL Server 2005 3. 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ē.

Pēc šīs kumulatīvo atjauninājumu pakotnes instalēšanas ir jāiespējo traceflag 4199. Lai to izdarītu, varat pievienot startēšanas parametru -T4199 vai izmantot priekšrakstu dbcc traceon(4199) atsevišķai sesijai.

SQL Server 2005 4. servisa pakotne

Šīs problēmas labojums pirmo reizi tika izlaists SQL Server 2005 4. servisa pakotnes 2. 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:

2489409 2. kumulatīvā atjauninājuma pakotne SQL Server 2005 servisa pakotnei. Piezī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 2005 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:

2485757 SQL Server 2005 būvējumi, kas tika izlaisti pēc SQL Server 2005. gada 4. servisa pakotnes izlaišanas Microsoft SQL Server 2005 labojumfaili ir paredzēti noteiktām SQL Server servisa pakotnēm. SQL Server 2005 4. servisa pakotnes labojumfails ir jālieto SQL Server 2005 4. 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ē.

Statuss

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

Atsauces

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