sql >> Database >  >> RDS >> Sqlserver

Optimaliseer zoeken in volledige tekst over meerdere tabellen

Dit is een moeilijk probleem, omdat CONTAINSTABLE slechts in de FTS-index van één tabel tegelijk kan zoeken. Uw UNION-oplossing hierboven is prima zolang uw prestaties acceptabel zijn.

We hadden hetzelfde probleem als het efficiënt doorzoeken van vele kolommen uit vele tabellen in één enkele zoekopdracht. Wat we deden, was alle gegevens uit deze kolommen en tabellen samenvoegen tot één alleen-lezen tabel. Onze vraag had toen slechts een enkele CONTAINSTABLE-oproep nodig

 CONTAINSTABLE(AggregatedTable, AggregatedColumn, @FtsQuery)

We hebben een geplande taak die elke 5-10 minuten wordt uitgevoerd en alle gewijzigde inhoud van onze brontabel stapsgewijs samenvoegt in onze enkele alleen-lezen tabel met geaggregeerde inhoud.

Over het algemeen lijkt het erop dat het gebruik van FTS in een redelijk grote database en gebruikersbelasting betekent dat je altijd met prestaties vecht. Als u merkt dat, wat u ook doet, de prestaties niet acceptabel zijn, moet u mogelijk andere technologieën onderzoeken, zoals Luceen .




  1. Meerdere INSERT-instructies versus enkele INSERT met meerdere VALUES

  2. Taakgeschiedenis van SQL Server Agent weergeven met Azure Data Studio

  3. Hoe % te ontsnappen in een query met behulp van python's sqlalchemy's execute() en pymysql?

  4. Hoe Qt 5.8 statisch te compileren met PostgreSQL-plug-in in VS2015