我有一个经常更新影响某些几何图形的事件的表。几何区域是固定的,但可能有一个事件同时影响多个区域,因此两者之间存在多对多的关系。单个区域也可能同时受到多个事件的影响。
例如:
| 事件ID | 区域编号 |
|---|---|
| 1 | 15 |
| 1 | 31 |
| 2 | 46 |
| 3 | 46 |
| 3 | 55 |
| 4 | 15 |
这些区域在我的表中表示为 ID 值。我需要在空间上表示这些值,因此我需要将这些值连接到包含s 和几何图形的event_id and area_id查找表。area_id不幸的是,这些表位于同一 SQL Server 2014 实例上的两个独立数据库中。
问题是这个连接过程非常慢;返回 18k-24k 行需要 90 秒到 3 分钟不等,具体取决于当前有多少事件处于活动状态。几何查找表包含 84k 行。
事件表结构(为了简单起见,删除了一些附加列):
USE Events_DB;
CREATE TABLE [dbo].[Events](
[EVENTS_ID] [bigint] NOT NULL,
[AREA_ID] [bigint] NOT NULL,
[START_DATE_TIME] [smalldatetime] NULL,
[END_DATE_TIME] [smalldatetime] NULL,
CONSTRAINT [PK_Events] PRIMARY KEY CLUSTERED
(
[EVENTS_ID] ASC,
[AREA_ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS …Run Code Online (Sandbox Code Playgroud) sql-server execution-plan spatial sql-server-2014 query-performance