Обновление выпуска SQL Server и кэшированные планы выполнения - PullRequest
3 голосов
/ 21 января 2011

Я только что обновил SQL Server 2008 R2 Express Edition до SQL Server 2008 R2 Standard Edition.Программа установки выполнила обновление без проблем.

Однако обещанного повышения производительности здесь нет.Например, SQL Server использует одно ядро ​​ЦП.

Я предполагаю, что SQL Server по-прежнему использует «старые» планы выполнения для SP.Если да, есть ли способ перестроить / сбросить планы выполнения?

Или я должен рассмотреть что-то другое при обновлении Express до Standard Edition?

Пожалуйста, дайте мне знать, если это нужно перенестик ServerFault.

1 Ответ

5 голосов
/ 21 января 2011

Планы выполнения находятся только в памяти. Обновление продукта подразумевает замену двоичных файлов, что подразумевает новый процесс. Поэтому у вас не может быть «старых» планов, каждый из которых кэширован или находится в процессе выполнения, теперь это новый план R2.

Относительно того, почему вы не видите SQL Server, использующий несколько ядер, может быть множество причин:

  • вы отправляете запросы только из одного сеанса / соединения, поэтому параллелизма вообще нет
  • ваша нагрузка не имеет запросов, которые могут выиграть от параллельного сканирования (что на самом деле хорошо для большинства нагрузок, это означает, что они уже сканируют только небольшие объемы данных)
  • ваш сервер жестко запрограммирован на один процессор маска сходства (это могло быть унаследовано во время обновления)
  • ваша методология наблюдения может быть неправильной, и SQL Server фактически использует все ядра
...