Если ваш sql-сервер поддерживает это, вы можете создать индексированное представление и полнотекстовый поиск, который; вы можете использоватьabletable (*, '"chris"'), чтобы прочитать все столбцы.
Если он не поддерживает это, поскольку поля все взяты из разных таблиц, я думаю для масштабируемости; если вы можете легко заполнить поля в одну строку для каждой записи в отдельной таблице, я бы выполнял полнотекстовый поиск, а не отдельные записи. В итоге вы получите менее сложный каталог FTS, и ваши запросы не должны будут выполнять 4 полнотекстовых поиска одновременно. Выполнение большого количества отдельных запросов FTS к разным таблицам одновременно - это мой опыт решения проблем производительности. Недостатком этого является то, что вы теряете возможность самостоятельно искать фамилию; если это то, что вам нужно, вам, возможно, придется поискать альтернативу.
В нашем приложении мы обнаружили, что одна таблица была быстрее (мы не можем полагаться на клиентов, имеющих под рукой корпоративный sql); поэтому мы заполняем данные пробелами в таблицу FTS через обновление sp, после чего наш главный контактный поиск выполняет поиск по списку. У нас есть два отдельных поиска для точного поиска вещей (например, имен или телефонных номеров) или просто для свободного текста. Еще одна приятная вещь в таблице - это относительно легко и недорого добавить дополнительные столбцы в поиск (например, нас попросили указать номер социального страхования; чтобы сделать это, мы просто добавили столбец к обновлению SP, и нас уже не было) с небольшим воздействием или без него.