Azure SQL搜索。全文检索。优化select语句

时间:2015-11-10 21:47:48

标签: sql-server azure full-text-search fulltext-index

我有一张约有2000万行的表格。 该数据库托管在Azure上。 (S2层) 我在其中一列上设置了全文索引(列包含县,州,城市,城镇,乡镇,村庄,学校,学院等)。

以下是select语句的示例:

SELECT * FROM dbo.[Table_Name]
WHERE CONTAINS(Value,'"clair county" OR "alabama" OR "miami" OR "talladega county"
OR "jefferson county" OR "shelby county"  OR "colorado")

每当我在常规SQL Server(不是azure)上启动时,我会在1秒内获得~35k行。但是在azure上需要大约6分钟。它需要那么多的问题是因为它达到DTU最大值。 执行此查询时,它只需要大约1%的CPU使用率和100%的数据IO使用率(大量读取)。 所以我真的想优化这种查询。即使在p11定价层,它也比常规的SQL Server Developer Edition慢得多。

以下是我能想到的几种解决方案:

  1. 停止使用SQL Azure并切换到Azure VM,我可以在其中托管常规SQL Server。我认为当达到DTU限制时会出现问题,因为可能会解决大量读取问题

  2. 优化查询。我假设应该有一种方法来创建排除大约95%的行的查询。以下是上面指定的行查询示例:Jefferson Union High School DistrictMiami-Yoder School District 60-JTUpper Saint Clair School DistrictLouisville/Jefferson County。当SQL Server返回仅在特定单词中包含单词的行时,可能有一种创建查询的方法,所以我不会得到Jefferson Union High School District,因为单词UnionHigh,{{1}未在查询中指定。

  3. 重新组织表以更改读取次数。 (不确定是否可能)

  4. 由于

0 个答案:

没有答案