У меня есть таблица адресных данных в моей базе данных SQL-сервера. Эта таблица не нормализована, поэтому содержит много повторяющихся адресов. Каждый уникальный адрес можно идентифицировать по полю идентификатора (эти идентификаторы часто повторяются в таблице).
Поэтому я создал представление таблицы для извлечения всех уникальных адресов, используя Select Distinct(AddressId) из исходной таблицы.
Теперь я хотел бы создать индекс в этом представлении, чтобы увеличить скорость поиска, но SQL-сервер не позволяет мне создать индекс в представлении, поскольку оно содержит отдельный или групповой (я пробовал оба, чтобы увидеть, будет ли это позвольте мне создать индекс)
У кого-нибудь есть решение по этому поводу? или любые взгляды на альтернативный способ сделать это.
Мне нужно запросить это представление на основе ключевых слов адреса и вернуть те, которые основаны на количестве совпадений, у меня есть этот запрос, я пытаюсь ускорить его, индексируя поля в представлении.
SQL Server 2008
SELECT
AddressId,
AddressNumber,
AddressName,
Town,
City,
Country,
COUNT_BIG(*) As AddCount--,
--TRIM(AddressNumber + ' ') + LTRIM(AddressName + ' ') + LTRIM(Town + ' ') + RTRIM(City + ' ') AS AddressLookup
FROM
[Address] A
GROUP BY
AddressId,
AddressNumber,
AddressName,
Town,
City,
Country
мой запрос....
если я уберу столбец с AddressLookup, я смогу добавить индексы
Ваше здоровье