表在本地SQL Server上快速搜索,但在主机SQL Server上搜索速度慢

时间:2012-01-30 06:56:17

标签: sql-server

我有一个SQL Server 2008数据库,其中包含大约100,000行的表,我已经设置了所有正确的索引和主键以及全文搜索,并确保对其进行了微调。

我创建了一个存储过程,用于搜索表中的nvarchar列,SP很长并且有多个select / insert语句。

现在当我在本地SQL Server上运行SP时,我得到了一秒钟的结果,然后我备份了数据库并在另一台机器上恢复了它并尝试了相同的搜索,我在一秒钟内得到了它。

我的问题是当我在我的主机共享SQL Server中创建数据库并从我的SQL Server导入所有数据并运行搜索时我会在7秒内得到结果!虽然我确保我有相同的索引和主键和FTS工作。

我的数据库在hosts sql server中的唯一区别是我使用脚本创建了模式然后我使用导入/导出向导导入了所有数据,所以要检查这是否是导致此问题的原因我创建了一个新的我的机器上的数据库并使用向导导入数据,我在3秒内得到了搜索结果!

我检查了主机SQL Server上数据库中SP的执行计划,发现一个索引扫描占用了49%的成本,而在我的机器上它是0%

有人可以指出为什么会这样吗?

感谢。

编辑:

现在,当我为两台服务器运行执行计划时,我得到了完全相同的计划和成本,但速度差异仍然很大(1秒7秒)。

1 个答案:

答案 0 :(得分:0)

虽然我没有解决SQL Server中的奇怪行为,但我最终用全文搜索替换了这个存储过程,结果更快。