Microsoft разпространява Microsoft SQL Server 2008 R2 Service Pack 1 (SP1) или Microsoft SQL Server 2012 поправя в един файл за изтегляне. Тъй като корекциите са кумулативни, всяка нова версия съдържа всички поправки и всички актуализации на защитата, които са били включени в предишния SQL Server 2008 R2 Service Pack 1 (SP1) или Microsoft SQL Server 2012 Update Release.
Симптоми
Обмислете следния сценарий:
-
Можете да надстроите от Microsoft SQL Server 2005 към Microsoft SQL Server 2008 или към Microsoft SQL Server 2008 R2 или към Microsoft SQL Server 2012.
-
Изпълните заявка, която използва sp_cursoropen съхранена процедура, и след това задайте параметъра RowCount , за да извлечете първите няколко реда от таблицата.
В този случай производителността може да е по-бавна, отколкото ако изпълнявате една и съща заявка в SQL Server 2005.
Причина
Този проблем възниква, защото оптимизаторът на заявки използва статичен план за курсора вместо динамичен план за курсора. За статичен план на курсора SQL Server извлича всички редове и ги вмъква в работната таблица за курсора. Обаче за динамичен план на курсора SQL Server извлича само редовете, които са необходими.
Решение
Информация за сборна актуализация
SQL Server 2012
Корекцията за този проблем е издадена за първи път в сборна актуализация 1 за SQL Server 2012. За повече информация относно този пакет с кумулативна актуализация щракнете върху следния номер на статия, за да видите статията в базата знания на Microsoft:
2679368 Кумулативна актуализация на пакета 1 за SQL Server 2012Забележка Тъй като компилациите са кумулативни, всяко ново издание за корекция съдържа всички актуални корекции и всички корекции на защитата, които са били включени при предишното издание на SQL Server 2012 Fix. Microsoft препоръчва да обмислите прилагането на най-новото съобщение за корекция, което съдържа тази спешна корекция. За допълнителна информация щракнете върху следния номер на статия, за да прегледате статията в базата знания на Microsoft:
2692828 SQL Server 2012 компилации, които са издадени след издаването на SQL Server 2012 Трябва да приложите актуална корекция за SQL Server 2012 към инсталация на SQL Server 2012.
Кумулативна актуализация на пакета 5 за SQL Server 2008 R2 SP1
След като приложите тази спешна корекция, активирайте флаг за проследяване 4199. Корекцията за този проблем е издадена за първи път в сборна актуализация 5. За повече информация как да получите тази кумулативна актуализация на пакета за SQL Server 2008 R2 SP1, щракнете върху следния номер на статия, за да видите статията в базата знания на Microsoft:
2659694 Кумулативна актуализация на пакета 5 за SQL Server 2008 R2 SP1Забележка Тъй като компилациите са кумулативни, всяко ново издание за корекция съдържа всички актуални корекции и всички корекции на защитата, които са били включени при предишното издание на SQL Server 2008 R2 SP1. Препоръчваме ви да обмислите прилагането на най-новото съобщение за корекция, което съдържа тази спешна корекция. За допълнителна информация щракнете върху следния номер на статия, за да прегледате статията в базата знания на Microsoft:
2567616 SQL Server 2008 R2, които са издадени след издаването на SQL Server 2008 R2 SP1
Заобиколно решение
За да заобиколите този проблем, добавете подсещане за бърза заявка към заявката.
Повече информация
За повече информация как да използвате съвети за заявки, посетете следния уеб сайт на MSDN:
Обща информация за използването на съвети за заявкиЗа повече информация за Трейс Flag 4199 посетете следния уеб сайт:
Състоянието
Microsoft потвърди, че това е проблем в продуктите на Microsoft, които са посочени в секцията "важи за".