Sql Server:实现多表搜索

时间:2009-07-30 19:42:25

标签: sql-server tsql search

我正在尝试找出一个简单术语搜索多个不同表格的最佳方法。我有两个解决方案

1)创建一个具有以下结构的“搜索表”,并在我想搜索的表格上创建触发器,将信息输入搜索表

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

2)创建一个大型存储过程来搜索我关心的表和列。

我将在Asp.Net MVC网站上使用此实体框架解决方案,所以我现在倾向于第一个解决方案。

哪种解决方案更有意义/更好?

2 个答案:

答案 0 :(得分:1)

SQL Server全文搜索(FTS):

  • 高度优化
  • 支持多个
  • 语言在多个服务器上查询全文目录
  • 索引xml类型很多
  • 更多功能

SQL Server FTS由几个组件组成:

  • 收集者
  • 索引
  • 过滤器管理器
  • 过滤后台程序
  • 全文目录

如果限制输出数量,SQL Server FTS确实运行良好。

答案 1 :(得分:0)

选项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

如果您需要更好的表现,甚至可以将其设为索引视图。