【问题标题】:Creation of Spatial Index is taking too long on SQL server在 SQL 服务器上创建空间索引花费的时间太长
【发布时间】:2019-05-01 06:39:32
【问题描述】:

我在 SQL Server 2016 上有一个架构如下的表。我正在尝试在地理列上创建空间索引为create spatial index spatindex on OSM_Nodes(longlat);。但它已经运行了几个小时。不确定是什么问题。我多次停止执行并尝试通过右键单击 table 下的 Indexes 文件夹直接添加新的空间索引,但仍然是同样的问题。

表架构:

create table OSM_Nodes(
nodeid int NOT NULL PRIMARY KEY,
latitude float,
longitude float,
longlat geography
);

【问题讨论】:

  • 您的桌子大小是多少?您尝试过什么来诊断问题?
  • 服务器的规格是什么?
  • 除了@Alex 的问题之外,我还想知道您是否指定with (online = on) 来创建索引。可能是您的操作刚刚被阻止!
  • @Alex 表大小刚刚超过一百万行。
  • @BenThul,不,我没有指定with (online =on)。但我不知道这是否有意义,当我重新运行exec sp_updatestats 并运行查询以创建空间索引时,它在执行大约 10 到 15 分钟后工作。仍然不确定为什么会出现问题。另外,我想知道 15 分钟对于查询执行是否太长。

标签: sql sql-server geospatial spatial-query spatial-index


【解决方案1】:

我已经在我使用的位置表上实现了空间索引。

CREATE SPATIAL INDEX [SIndx_Geo] ON [my].[Locations]
(
    [Geo]
)USING  GEOGRAPHY_GRID 
WITH (GRIDS =(LEVEL_1 = MEDIUM,LEVEL_2 = MEDIUM,LEVEL_3 = MEDIUM,LEVEL_4 = MEDIUM)

在超过 100 万行上,我的查询性能从 45 秒提高到 0.4 秒。该过程只需几秒钟即可运行

【讨论】:

    猜你喜欢
    • 2011-12-06
    • 1970-01-01
    • 2014-05-22
    • 2012-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多