Подтвердить что ты не робот

Значение уровня совместимости SQL Server

Быстрый вопрос:

На моем SQL Server 2008 у меня есть базы данных, перенесенные из SQL Server 2005, а уровень совместимости баз данных на SQL Server 2008 установлен в 90 (SQL Server 2005).

Каковы именно последствия этого?

Это означает, что перенесенные хранимые процедуры, триггеры и функции будут хорошо работать на SQL Server 2008, но есть ли недостатки?

В чем причина установки уровня совместимости на 100 (SQL Server 2008)?

Производительность? Дополнительные функции?

Thanx

4b9b3361

Ответ 1

Режим совместимости позволяет пользователям перенести приложения с функциями, которые больше не совместимы с более новыми версиями SQL. Если у вас есть приложения, для которых функции больше не поддерживаются в sql 2008, вы хотите запустить их в режиме совместимости; в противном случае вы бы хотели использовать текущий режим sql. Наш бизнес запускает приложение, которое благодаря способу подключения к базе данных требует режима совместимости с SQL 2000; но он работает на сервере SQL 2012.

Конкретные функции в коде могут влиять на производительность, поскольку требуемая логика отличается, а исполнение отличается от других. Как очень обобщенное правило SQL-код, оптимизированный для функций на 2012,2008, будет быстрее, чем SQL 2000 или SQL 7, поскольку они добавили такие вещи, как CTE и un/pivot, которые позволяют упростить кодирование.

Ответ 2

Помимо невозможности использования каких-либо новых функций, которые включают за кулисами улучшения в Оптимизаторе запросов (в SQL Server 2014), пребывание в режиме совместимости затрудняет будущие обновления. MSDN имеет список разных версий http://msdn.microsoft.com/en-us/library/bb510680%28v=sql.110%29.aspx