Режим совместимости SQL Server
-
09-06-2019 - |
Вопрос
В настоящее время мы используем сервер в режиме совместимости 8, и я хочу его обновить.
- Каковы последствия простого входа и изменения?
- Что может сломаться?
- Есть ли что-нибудь, что проверяет, сохранятся ли данные, прежде чем я это выполню?
- Можно ли откатиться в режим 8 без выполнения восстановления и без потери данных?
Решение
Если вы переходите с 80 на 90, различия минимальны.Переход от 65 к 70+ может привести к серьезным последствиям (NULL хранятся по-другому).
Последствия - ваши SP могут вернуть разные результаты, чем вы ожидаете, вероятно, сломается:Функции, данные SPS должны выжить;ничто там не должно влиять на вещи.
Переход с 80 на 90 и обратно занимает всего несколько секунд.Да, вы можете двигаться вперед и назад.
http://msdn.microsoft.com/en-us/library/bb510680.aspx
некоторые ошибки: http://mapamdug.blogspot.com/2006/03/sql-server-2005-gotcha-1.html
Другие советы
- Режим совместимости не влияет на хранилище.Это просто флаг.Ничего не изменится ни в данных, ни в запросах.Это повлияет только на выполнение запроса.
- Ничего – или много чего.Использовали ли вы синтаксис, помеченный как устаревший и подлежащий удалению в 2000 году?Использовали ли вы скобки при предоставлении подсказок в запросах?Использовали ли вы подсказки по выполнению запроса?Если да, то лучше сначала пересмотреть вашу базу данных, удалить устаревший синтаксис, вернуть скобки и покопаться в BOL, чтобы найти, какие подсказки могут замедлить ваш точно настроенный запрос на новом движке.
- Нет.Но данные сохранятся.Фактически, если вы можете запустить свою базу данных на сервере 2005, даже в режиме 8, вы уже используете новый формат данных.
- Да, вы можете откатиться назад.Он не преобразуется, а просто устанавливает флаг, говорящий: «Мои запросы совместимы».
Режим совместимости отключает функции более новой версии, лично я не работал со многими базами данных, в которых есть проблемы, основная проблема в нашей среде - после перехода на 9 вы больше не можете использовать Enterprise Manager для просмотра база данных.
Резервное копирование/восстановление — хороший вариант, и я также считаю, что вы можете без проблем вернуть его обратно.
(Я сказал, что это возможно только в том случае, если вы переходите с версии 6.5, в которой ничего не сохранялось. char()
поля, когда NULL - 70 и выше, используют все поле, что может привести к значительным изменениям размера.)
VBStreets прав в своем пункте - и определенно в пункте 3 - когда вы впервые запустили базу данных в 2005 году, она преобразовала структуру данных.Если вы сделаете резервную копию, ее невозможно будет восстановить на предыдущих версиях, независимо от уровня совместимости.