Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Безопасно ли сменить тип поля в таблице с varchar на nvarchar?  [new]
M234
Member

Откуда: Оттуда...
Сообщений: 24885
SQL SERVER 2008

Есть таблица с полем типа varchar(2000).
В таблице несколько десятков тысяч записей.
Если я в дизайнере SQL Studio Manager сменю тип поля на nvarchar(2000) и нажму "сохранить", то могу ли получить какие либо проблемы?

Спасибо.
27 сен 13, 18:15    [14894565]     Ответить | Цитировать Сообщить модератору
 Re: Безопасно ли сменить тип поля в таблице с varchar на nvarchar?  [new]
nvarchar
Guest
если вы говорите просто про данные в таблице, то они не потеряются.
если вы говорите о системе в целом, то проблемы могут быть, все зависит от того, как эти данные используются.
27 сен 13, 18:20    [14894576]     Ответить | Цитировать Сообщить модератору
 Re: Безопасно ли сменить тип поля в таблице с varchar на nvarchar?  [new]
M234
Member

Откуда: Оттуда...
Сообщений: 24885
nvarchar
если вы говорите просто про данные в таблице, то они не потеряются.
если вы говорите о системе в целом, то проблемы могут быть, все зависит от того, как эти данные используются.


Вы наверное имеете ввиду участие этого поля во всяких джойнах и прочих сравнениях?
Этого нет. Просто текстовое поле откуда читаются данные. В индексах не задействовано.
27 сен 13, 18:38    [14894624]     Ответить | Цитировать Сообщить модератору
 Re: Безопасно ли сменить тип поля в таблице с varchar на nvarchar?  [new]
SomewhereSomehow
Member

Откуда: Moscow
Сообщений: 2480
Блог
M234,

Прежде чем нажимать на "Сохранить", я бы посоветовал посмотреть сгенерированный скрипт, мало ли (ну не доверяю я со времен enterprize manager генерируемым скриптам - всегда сначала смотрю) - это что касается безопасности операции. Вообще полезно смотреть, что сервер собирается делать, особенно если таблица объемная.

Если вопрос в производительности - тут тоже не все так гладко, допустим у вас есть сравнение где-то в запросах field1=field2, два поля одинаковых типов, меняете тип одного, получаете неявное преобразование типов, не всегда там где надо. Это может влиять на селективность, соответственно план и в конечном итоге - производительность.

Еще один возможный сценарий - увеличение размера строк - итераторы, потребляющие память, типа сортировки, хэшджойна и т.д., которые раньше не сливали данные на диск - могут начать это делать. Это тоже ведет к замедлению.

А может, ничего этого и не случиться. Исследуйте где что используется и принимайте решение.
27 сен 13, 19:15    [14894746]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить