Mam tabelę bazy danych z kilkoma kolumnami; większość z nich to kolumny typu VARCHAR(x)
, a niektóre z nich mają indeks na nich, dzięki czemu mogę szybko wyszukiwać znajdujące się w nich dane.Serwer SQL; indeks w kolumnie TEXT
Jednak jedną z kolumn jest kolumna TEXT
, ponieważ zawiera ona bardzo dużą ilość danych (23 kb zwykłego tekstu ascii itp.). Chcę móc wyszukiwać w tej kolumnie (... WHERE col1 LIKE '%search string%'...
), ale obecnie trwa to na zawsze, aby wykonać zapytanie. Wiem, że kwerenda jest powolna z powodu tego wyszukiwania kolumn, ponieważ po usunięciu tego kryterium z klauzuli WHERE
zapytanie kończy się (co bym rozważył) natychmiast.
Nie mogę dodać indeksu dla tej kolumny, ponieważ ta opcja jest wyszarzona dla tej kolumny w kreator/kreator indeksu w SQL Server Management Studio.
Jakie są moje opcje tutaj, aby przyspieszyć wyszukiwanie zapytań w tej kolumnie?
Dzięki za poświęcony czas ...
Aktualizuj
Ok, więc spojrzał na wyszukiwanie pełnotekstowe i zrobił wszystkie te rzeczy, a teraz chciałbym do uruchamiania kwerend. Jednak przy użyciu "zawiera", akceptuje tylko jedno słowo; co jeśli potrzebuję dokładnej frazy? ... WHERE CONTAINS (col1, 'search phrase') ...
zgłasza błąd.
Niestety, jestem nowy w SQL Server
Aktualizacja 2 Niestety, tylko zorientowaliśmy się; użyj wielu klauzul "zawiera" zamiast jednej klauzuli zawierającej wiele słów. Właściwie to wciąż nie dostaje tego, czego chcę (dokładna fraza), tylko upewnia się, że wszystkie słowa w wyrażeniu są obecne.
+1: Full-Text jest drogą do zrobienia - na pewno! –
Link nie działa. Napraw, jeśli to możliwe! – Andreas
Link jest już naprawiony –