4

我正在使用 Azure 搜索索引器来索引 Azure SQL DB 中的视图。

我创建了数据源(视图)并在连接字符串中设置了此类设置 (...)Trusted_Connection=False;Encrypt=True;Connection Timeout=1200;" },

索引器仍然返回超时,我从 Azure SQL DB 日志中看到,索引器的查询在 30 秒后被取消:

  • 行动状态:取消
  • 语句:SET FMTONLY OFF;SET NO_BROWSETABLE ON;SELECT * FROM [dbo].[v_XXX] ORDER BY [rowVersion] SET NO_BROWSETABLE OFF
  • 服务器持续时间:00:00:30.3559524

通过 SQL Server Mgmt Studio 运行相同的语句大约需要 2 分钟并完成。

我想知道是否有任何其他设置(服务器或数据库)会覆盖我的连接超时首选项?如果是,那么为什么当我使用 SSMS 查询我的数据库时没有超时,而当 Indexer 尝试索引视图时有超时?

4

3 回答 3

3

取消操作的超时时间是命令超时时间,而不是连接超时时间。默认的命令超时时间过去是 30 秒,目前无法更改。我们已将默认命令超时值增加到更大的值(5 分钟),以在短期内缓解这种情况。从长远来看,我们将添加在数据源定义中指定命令超时的功能。

于 2015-04-27T23:24:42.620 回答
1

现在索引器上有一个设置。有了它,您可以配置 queryTimeout。我想它是在几分钟内。我的索引器现在运行时间超过 20 分钟而没有错误。

    "startTime": "2016-01-01T00:00:00Z"
  },
  "parameters": {
    "batchSize": null,
    "maxFailedItems": 0,
    "maxFailedItemsPerBatch": 0,
    "base64EncodeKeys": false,
    "configuration": {
      "queryTimeout": "360"
    }
  },
  "fieldMappings": [
    {

更新:目前无法在 azure 门户上设置。您可以通过REST Api进行设置:

PUT https://[service name].search.windows.net/indexers/[indexer name]?api-version=[api-version]  
Content-Type: application/json  
api-key: [admin key]  
于 2016-11-16T19:32:46.383 回答
0

使用 REST API 链接https://[SERVICE].search.windows.net/indexers/[Indexer]?api-version=2016-09-01获取索引器定义,然后使用 POST 到同一地址进行更新它。

参考MSDN

于 2017-11-02T12:42:18.130 回答