Сервер SQL: Реализация поиска по нескольким таблицам - PullRequest
1 голос
/ 30 июля 2009

Я пытаюсь найти лучший способ поиска по нескольким таблицам по простому термину. Я имею в виду два решения

1) Создайте «таблицу поиска» со следующей структурой и создайте триггеры для таблиц, которые я хотел бы найти, чтобы ввести информацию в таблицу поиска

ID || String to check against || Table || TableId =================================================================

2) Создайте массивную хранимую процедуру для поиска нужных мне таблиц и столбцов.

Я буду использовать это решение с Entity Framework для веб-сайта Asp.Net MVC, поэтому сейчас я склоняюсь к первому решению.

Какое решение имеет больше смысла / лучше?

Ответы [ 2 ]

1 голос
/ 30 июля 2009

Полнотекстовый поиск SQL Server (FTS):

  • Высоко оптимизировано
  • Поддерживает несколько
  • языки запрашивают полнотекстовые каталоги на нескольких серверах
  • index xml type много
  • больше возможностей

SQL Server FTS состоит из нескольких компонентов:

  • Собиратель
  • Индексатор
  • Диспетчер фильтров
  • Filter Daemon
  • Полнотекстовый каталог

Если вы ограничите количество выводов, SQL Server FTS действительно будет работать хорошо.

0 голосов
/ 30 июля 2009

Вариант 1 имеет много накладных расходов и дублирует данные - лучше было бы использовать большое объединение:

SELECT 'Table1', Table1_ID as Table_ID, Col1 as SearchCol
FROM Table1
UNION ALL
SELECT 'Table2', Table2_ID as Table_ID, Col3 as SearchCol
FROM Table2
etc

Вы можете даже сделать это индексированным представлением, если вам нужна более высокая производительность.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...