SQL: Index nvarchar (2048) - Полный текст против хэша - PullRequest
1 голос
/ 24 мая 2011

У меня есть две таблицы: table1 содержит столбец nvarchar(2048) (уникальные значения) и table2 содержит ссылку на table1 id.

Так как я не могу индексировать nvarchar(2048), мой вопрос заключается в том, должен ли я добавить полнотекстовый индекс к table1 или добавить еще один столбец к table1, который содержит хэш, чтобы я мог добавить индекс столбец хеша, а затем сделать проверку на столбец хеша?

Данные вставляются в table2 после проверки на table1, чтобы проверить, существует ли значение (если нет, оно вставляется в table1, затем возвращает идентификатор для сохранения в table2).

Этот хэш не будет вычисляться в SQL.

Как лучше подходить с точки зрения масштабируемости, хранения данных и производительности?

1 Ответ

2 голосов
/ 24 мая 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...