Microsoft 是否更改了有关文件数量和并行度的查询优化器?优化器是否不再考虑文件数量来确定查询的并行度?如果是这样,有人知道更改是什么时候进行的吗?如果没有,任何人都可以提供指向讨论该主题的 Microsoft 文档的链接(SQL Server 2014 或 2016 的当前文档)?
我使用 SQL Server 已经很长时间了,但直到最近才遇到处理空间数据的需要。我进入了一个大量使用它的环境,我的第一个真正挑战是让查询更快地运行(并停止超时),以针对具有地理数据类型列(和索引)的表。
我们使用一个查询来标识该表中在多边形和多多边形中找到的所有地理点。这个表中有超过 9900 万条记录,我不知道如何调整这个野兽的性能!我已经确定聚集索引比需要的大一点,并打算添加一个标识列来做两件事:1) 减小聚集索引的大小。2) 消除插入的页面拆分。虽然我希望从这样做中得到一些缓解,但我并不乐观它会对空间查询有很大帮助。
鉴于我几乎完全缺乏空间数据的知识/经验,我无法做得更好。
Example query:
Declare @OrgID int
Declare @Geog geography
Set @OrgID =100011
/* This will return a multi polygon */
SELECT @Geog = geog
FROM Organization
WHERE orgid= @orgid
Select count(*)
FROM ProblemChild WITH (INDEX(IDX_geog))
WHERE Geog.STIntersects(@geog) = 1)
Table Design:
CREATE TABLE [dbo].[ProblemChild](
[Phone] [char](10) NOT NULL,
[Lat] [float] NOT NULL,
[Lon] [float] NOT NULL,
[Geog] [geography] NOT NULL,
[Recordsource] [varchar](2) NOT NULL
CONSTRAINT [PK_Phone] PRIMARY KEY CLUSTERED
([Phone] ASC)WITH …
Run Code Online (Sandbox Code Playgroud)