Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Оптимизирайте търсенето в пълен текст в множество таблици

Това е труден проблем, тъй като CONTAINSTABLE може да търси наведнъж само FTS индекс на една таблица. Вашето UNION решение по-горе е добре, стига производителността ви да е приемлива.

Изправихме се пред същия проблем с необходимостта от ефективно търсене в много колони от много таблици в една заявка. Това, което направихме, беше да обединим всички данни от тези колони и таблици в една таблица само за четене. Тогава нашата заявка се нуждаеше само от едно извикване на CONTAINSTABLE

 CONTAINSTABLE(AggregatedTable, AggregatedColumn, @FtsQuery)

Имаме планирано задание, което се изпълнява на всеки 5-10 минути и постепенно агрегира всяко модифицирано съдържание от нашата изходна таблица в нашата единична таблица с агрегирано съдържание само за четене.

Като цяло изглежда, че използването на FTS във всяка база данни с разумен размер и потребителско натоварване означава, че винаги се борите с производителността. Ако установите, че каквото и да правите, не можете да постигнете приемлива производителност, може да се наложи да проучите други технологии катоLucene .




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. EntityFramework ConnectionString utf8

  2. Транспонираща таблица

  3. Как да получите съвместимост между C# и SQL2k8 AES криптиране?

  4. Какъв е смисълът на първоначалния каталог в низ за връзка на SQL Server?

  5. Премахнете SQL влизането дори докато сте влезли