Udostępnij za pośrednictwem


Performance Tuning and Optimization of Full-Text Queries

Wydajność kwerend pełnego tekstu jest wpływ zasobów sprzętowych, takich jak pamięć, szybkość dysku, szybkość PROCESORA i architektura komputera.

Zalecenia wzrost wydajności zapytanie pełnotekstowe

Poniżej przedstawiono listę zaleceń, które pomoże zwiększyć wydajność zapytanie pełnotekstowe:

  • Defragmentowanie za pomocą indeksu z tabela bazowa REORGANIZACJA INDEKSU ZMIANY.

  • Reorganizować wykaz pełnotekstowy przy użyciu REORGANIZACJA WYKAZU WIĘCEJ ZMIANY.Upewnij się, że można to zrobić przed wydajności testowania, ponieważ uruchomienie tej instrukcja powoduje, że scalanie wzorca indeksów całego tekstu w tym katalogu.

  • Ograniczyć wybór kolumna klucz pełnotekstowego małych kolumna.Although a 900-byte column is supported, we recommend using a smaller key column in a full-text index.int and bigint provide the best performance.

  • Za pomocą klucz całkowitą pełnego tekstu pozwala uniknąć łączyć z docid Mapowanie tabela.W związku z tym kluczu pełnego tekstu, który jest liczbą całkowitą poprawia wydajność kwerendy przez rząd wielkości i zwiększa wydajność przeszukiwanie.Dodatkowe wydajność może spowodować, jeśli klucz pełnego tekstu jest także klucz indeks klastrowany.Aby uzyskać więcej informacji zobacz Struktura indeksie pełnego tekstu i Jak Uzyskiwanie informacji o kolumnie klucz Full-Text (języka Transact-SQL).

  • Łączenie wielu ZAWIERA predykaty w jeden predykat CONTAINS.W SQL Server można określić listę kolumn w kwerendzie CONTAINS.

  • Jeśli wymagane tylko klucz pełnego tekstu lub rangi informacji, należy użyć opcji CONTAINSTABLE or FREETEXTTABLE zamiast CONTAINS lub FREETEXT, odpowiednio.

  • To limit results and increase performance, use the top_n_by_rank parameter of the FREETEXTTABLE and CONTAINSTABLE functions.top_n_by_rank allows you to recall only the most relevant hits.Za pomocą tego parametru tylko wtedy, gdy danego scenariusza biznesowego nie wymaga odwoływania wszystkich możliwych odwołań (to znaczy nie jest wymagane Całkowita odwołania).

    Uwaga

    Całkowita odwołania jest zazwyczaj konieczne prawne scenariuszy, ale może być ważniejszy niż wydajności dla scenariuszy biznesowych, takich jak e biznesu.

  • Sprawdź zapytanie pełnotekstowe zaplanować upewnić się, że jest wybrany plan odpowiednie łączyć.Jeśli trzeba za pomocą łączyć Wskazówka lub wskazówki dotyczącej kwerendy.Jeśli parametr jest używany w kwerendzie pełnego tekstu, wartość po raz pierwszy parametr określa planu kwerend.Można użyć OPTYMALIZUJ dla Wskazówka dotycząca kwerendy wymusić kwerendy do kompilowania wartość ma.Dzięki temu osiągnąć planu kwerendy deterministyczny i lepszą wydajność.

  • Za dużo fragmenty indeksu całego tekstu w indeksie pełnego tekstu może spowodować znaczne pogorszenie wydajności kwerendy.To reduce the number of fragments, reorganize the full-text catalog by using the REORGANIZE option of the ALTER FULLTEXT CATALOGTransact-SQL statement.Oświadczenie to zasadniczo scala wszystkich fragmentów w jeden większy fragment i usuwa wszystkie wpisy przestarzałe z indeksu pełnotekstowego.

  • W SQL Server 2008 Przeszukiwanie pełnego tekstu, operatorów logicznych, określonych w CONTAINSTABLE (AND, OR) może być zaimplementowany jako SQL lub wewnątrz wykonanie pełnego tekstu, przesyłanie strumieniowe wycenione tabela funkcje (STVF). Zazwyczaj kwerendy zawierające operatory logiczne tylko jednego typu są wykonywane wyłącznie przez wykonanie pełnego tekstu, kwerendy, które mieszać operatory logiczne również posiadać sprzężenia SQL.Implementacja operator logiczny wewnątrz wykonanie pełnego tekstu STVF używa niektóre właściwości specjalne indeks był dużo szybciej niż SQL sprzężenia.Z tego powodu zaleca się, tam gdzie to możliwe, ramka zostanie kwerendy przy użyciu tylko jeden typ operator logicznego.

  • W przypadku aplikacji, które zawierają predications selektywnych relacji kwerendy używające selektywnego predykaty relacyjnych i unselective predykaty pełnego tekstu może wykonać najlepiej zostały napisane, aby użyć optymalizator kwerendy.Pozwala to zdecydować, czy można wykorzystać pushdown predykat lub zakres do wygenerowania planu kwerendy skuteczne optymalizator kwerendy.Ta metoda jest łatwiejsze i często bardziej efektywne niż indeksowanie danych relacyjnych, jak dane pełnego tekstu.

Wyświetlanie wyniku tokenizacja dzielącego, tezaurus i kombinacja Stoplist

Po zastosowaniu danego dzielącego, tezaurusa i kombinację stoplist na wprowadzanie ciąg znaków do kwerendy, można wyświetlić wyników tokenizacja przy użyciu sys.dm_fts_parser dynamicznego zarządzania widoku.Aby uzyskać więcej informacji zobaczsys.dm_fts_parser (języka Transact-SQL).