powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / серверный collation
25 сообщений из 30, страница 1 из 2
серверный collation
    #39820199
Michail A.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!

Подскажите, пож-та, исходя из каких критериев выбирается серверный collation?

Существуют ли какие-то best practice в настоящее время?
...
Рейтинг: 0 / 0
серверный collation
    #39820202
Danion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Michail A.,

Обычно collation SQL сервера выбираем под требования проекта, базы которого будут там размещены.
...
Рейтинг: 0 / 0
серверный collation
    #39820205
Michail A.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Danion,

а в чем могут выражаться данные требования?
...
Рейтинг: 0 / 0
серверный collation
    #39820209
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Michail A.Danion,

а в чем могут выражаться данные требования?
На каком основном языке ведете разработку.
...
Рейтинг: 0 / 0
серверный collation
    #39820214
Michail A.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
aleks222,

язык имеется ввиду какой?
...
Рейтинг: 0 / 0
серверный collation
    #39820259
Danion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Michail A.,

Если не путаю, то Collation применяется для сортировки и сравнения данных в таблицах. Выбор основного языка и алфавита, можно выставить, чтобы A и a считало одним символом, а можно разными. Аналогично для символов типа a и á. Есть ещё для японских символов, но это обычно выключено.
У Микрософта есть немного про это: https://docs.microsoft.com/ru-ru/sql/t-sql/statements/collations?view=aps-pdw-2016
...
Рейтинг: 0 / 0
серверный collation
    #39820269
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Michail A.aleks222,

язык имеется ввиду какой?

Язык, на котором по умолчанию хранятся данные в таблицах.
...
Рейтинг: 0 / 0
серверный collation
    #39820288
Michail A.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Владислав Колосов, конкретно один язык?

Если предполагаются данные латиницы и кириллицы - можно ли подобрать подходящий collation?
...
Рейтинг: 0 / 0
серверный collation
    #39820294
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Michail A.Владислав Колосов, конкретно один язык?

Если предполагаются данные латиницы и кириллицы - можно ли подобрать подходящий collation?База создаётся с нуля? На сервере уже есть другие базы?
Если с нуля, то решите - при сравнении строк регистр букв должен учитываться или нет?
А если какие-то базы на сервере уже есть, то выбор у вас небольшой - COLLATE вашей базы должен совпадать с COLLATE базы tempdb.
Иначе никакой жизни у вас не будет.
...
Рейтинг: 0 / 0
серверный collation
    #39820301
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Michail A.Владислав Колосов, конкретно один язык?

Если предполагаются данные латиницы и кириллицы - можно ли подобрать подходящий collation?

Обычно используют cyrillic_general_ci_as в таких случаях.
...
Рейтинг: 0 / 0
серверный collation
    #39820309
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владислав КолосовЯзык, на котором по умолчанию хранятся данные в таблицах.
Данные в таблицах не хранятся "на каком либо языке". Они там либо юникодные либо однобайтовые. Коллейшен задает правила, по которым происходит сравнение строковых данных. Он может быть задан для сервера, дла базы данных, для таблицы, для отдельного столбца, или вообще быть указан в отдельном запросе к таблице. Например, две строки A и B могут иметь одинаковое юникодное представление, но для разных языков по их правилам будет для одного A < B, а для другого A > B - вот как раз эти правила collation и задает.
...
Рейтинг: 0 / 0
серверный collation
    #39820316
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fkthatВладислав КолосовЯзык, на котором по умолчанию хранятся данные в таблицах.
Данные в таблицах не хранятся "на каком либо языке". Они там либо юникодные либо однобайтовые. Коллейшен задает правила, по которым происходит сравнение строковых данных. Он может быть задан для сервера, дла базы данных, для таблицы, для отдельного столбца, или вообще быть указан в отдельном запросе к таблице. Например, две строки A и B могут иметь одинаковое юникодное представление, но для разных языков по их правилам будет для одного A < B, а для другого A > B - вот как раз эти правила collation и задает.Но вы что же, при создании таблиц у всех полей COLLATE прописываете явно?
И все ваши коллеги делают так же?
Или в каждом запросе у каждого текстового поля явно пишете COLLATE?
Ведь нет же?
А при сравнениях с полями временных таблиц вы неизбежно столкнётесь с COLLATE базы tempdb,
опять же, если не будете везде писать COLLATE явно.
...
Рейтинг: 0 / 0
серверный collation
    #39820321
Michail A.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сервер создается с нуля, на который будут мигрировать текущие базы.

iapMichail A.Владислав Колосов, конкретно один язык?

Если предполагаются данные латиницы и кириллицы - можно ли подобрать подходящий collation?База создаётся с нуля? На сервере уже есть другие базы?
Если с нуля, то решите - при сравнении строк регистр букв должен учитываться или нет?
А если какие-то базы на сервере уже есть, то выбор у вас небольшой - COLLATE вашей базы должен совпадать с COLLATE базы tempdb.
Иначе никакой жизни у вас не будет.
...
Рейтинг: 0 / 0
серверный collation
    #39820327
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fkthat,

за что люблю эту конференцию, так это за количество снобов на квадратный метр.
...
Рейтинг: 0 / 0
серверный collation
    #39820399
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Michail A.Сервер создается с нуля, на который будут мигрировать текущие базы.

iapпропущено...
База создаётся с нуля? На сервере уже есть другие базы?
Если с нуля, то решите - при сравнении строк регистр букв должен учитываться или нет?
А если какие-то базы на сервере уже есть, то выбор у вас небольшой - COLLATE вашей базы должен совпадать с COLLATE базы tempdb.
Иначе никакой жизни у вас не будет.То есть, базы с данными уже есть?
Тогда у них уже установлен вполне определённый COLLATE. Вот таким он и должен остаться на новом сервере.
...
Рейтинг: 0 / 0
серверный collation
    #39820419
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Michail A.Сервер создается с нуля, на который будут мигрировать текущие базы.Ставьте тот же коллейшен, который был выбран на том сервере, с которого делается миграция.
Если это установить невозможно, тогда, скорее всего, нужно выбрать тот коллейшен, который у переносимых баз.
...
Рейтинг: 0 / 0
серверный collation
    #39820467
Michail A.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alexeyvg, iap

А если несколько экземпляров, каждый со своим collation, в итоге данные будут переезжать на один сервер. Как в данном случае поступить? Если на целевом сервере установить collation, который будет совпадать с одним из имеющихся экземпляров, а со вторым совпадать не будет соответственно - возникнут ли проблемы?
...
Рейтинг: 0 / 0
серверный collation
    #39820481
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Michail A.alexeyvg, iap

А если несколько экземпляров, каждый со своим collation, в итоге данные будут переезжать на один сервер. Как в данном случае поступить? Если на целевом сервере установить collation, который будет совпадать с одним из имеющихся экземпляров, а со вторым совпадать не будет соответственно - возникнут ли проблемы?Тогда нужно, что бы в приложении не было багов с коллейшенами.
Правильно написанное приложение не зависит от коллейшена сервера.
Но если приложение всё таки не работает на сервере с неподходящим ему колелйшеном, то тогда придётся его эксплуатировать на выделенном инстансе, либо править в нём ошибки (или, как вариант, менять коллейшен модели и всех данных).
...
Рейтинг: 0 / 0
серверный collation
    #39820492
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Michail A.alexeyvg, iap

А если несколько экземпляров, каждый со своим collation, в итоге данные будут переезжать на один сервер. Как в данном случае поступить? Если на целевом сервере установить collation, который будет совпадать с одним из имеющихся экземпляров, а со вторым совпадать не будет соответственно - возникнут ли проблемы?Возникнут. Да ещё какие!
Если COLLATE строк прим сравнении несовместимы, всё обламывается с сообщением о несоответствии COLLATE.
Кстати, явное указание COLLATE у полей в условии запроса делает невозможным использование индекса по этим полям.
Так что тоже нехороший выход.
...
Рейтинг: 0 / 0
серверный collation
    #39820493
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iapMichail A.alexeyvg, iap

А если несколько экземпляров, каждый со своим collation, в итоге данные будут переезжать на один сервер. Как в данном случае поступить? Если на целевом сервере установить collation, который будет совпадать с одним из имеющихся экземпляров, а со вторым совпадать не будет соответственно - возникнут ли проблемы?Возникнут. Да ещё какие!
Если COLLATE строк прим сравнении несовместимы, всё обламывается с сообщением о несоответствии COLLATE.
Кстати, явное указание COLLATE у полей в условии запроса делает невозможным использование индекса по этим полям.
Так что тоже нехороший выход.Впрочем, а вдруг они окажутся совместимыми?
Тогда вы в шоколаде!.
...
Рейтинг: 0 / 0
серверный collation
    #39820558
Michail A.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Так и как можно выйти из данной ситуации?

iapMichail A.alexeyvg, iap

А если несколько экземпляров, каждый со своим collation, в итоге данные будут переезжать на один сервер. Как в данном случае поступить? Если на целевом сервере установить collation, который будет совпадать с одним из имеющихся экземпляров, а со вторым совпадать не будет соответственно - возникнут ли проблемы?Возникнут. Да ещё какие!
Если COLLATE строк прим сравнении несовместимы, всё обламывается с сообщением о несоответствии COLLATE.
Кстати, явное указание COLLATE у полей в условии запроса делает невозможным использование индекса по этим полям.
Так что тоже нехороший выход.
...
Рейтинг: 0 / 0
серверный collation
    #39820574
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Michail A.Так и как можно выйти из данной ситуации?Несколько экземпляров SQL Server - по одному на каждый collation
Либо все БД с collation, отличным от серверного сделать contained - тогда конфликта с временными таблицами не будет, если они создаются в контексте такой БД.
...
Рейтинг: 0 / 0
серверный collation
    #39820882
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iapЕсли COLLATE строк прим сравнении несовместимы, всё обламывается с сообщением о несоответствии COLLATE.
Кстати, явное указание COLLATE у полей в условии запроса делает невозможным использование индекса по этим полям.
Так что тоже нехороший выход.Да, это 2 варианта неправильные, но есть же ещё и правильный вариант - при создании временных таблиц указывать коллейшен базы.

Хотя у автора ИМХО немного другой вопрос - как сделать, что бы всё работало, не меняя базы, и не даже не зная, что там внутри.
Michail A.Так и как можно выйти из данной ситуации?Без изменения приложений (то есть исправлении ошибок в хранимых процедурах, и, возмможно, в других месстах) - только делать отдельные инстансы для каждого коллейшена.
...
Рейтинг: 0 / 0
серверный collation
    #39820883
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
invmЛибо все БД с collation, отличным от серверного сделать contained - тогда конфликта с временными таблицами не будет, если они создаются в контексте такой БД.Что то слишком кардинальное решение :-)
...
Рейтинг: 0 / 0
серверный collation
    #39820886
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvgЧто то слишком кардинальное решение :-)Почему?
...
Рейтинг: 0 / 0
25 сообщений из 30, страница 1 из 2
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / серверный collation
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]