[英]How to optimize indexes on a SQL Server table
我有以下查询
SELECT
vbShape, XMIN, YMIN, XMAX, YMAX, GlobalID
FROM
(SELECT *
FROM features
WHERE vbShape IS NOT NULL) A
WHERE
XMIN <= -13036746.0212491 AND XMAX >= -13037147.3156476 AND
YMIN <= 3988531.90850796 AND YMAX >= 3988130.61410953
XMIN,XMAN,YMIN,YMAX都是浮点型列。
我需要此查询以尽快运行。 每毫秒至关重要。 GlobalID
是主键。 我应该为该表添加什么样的索引? 我目前在表上为XMIN,XMAX,YMIN和YMAX字段定义了4个非聚集索引。 我是否还应该定义一个索引来包含所有字段? 还是应该添加两个索引? 一个用于XMIN / XMAX,一个用于YMIN / YMAX? 添加太多索引有什么问题吗?
单个查询只能在其读取的每个表上使用索引之一。 无论您在表上创建多少索引,此查询都只会使用其中的一个。
因此,您需要一个索引来覆盖查询中已过滤的所有列,并包括返回的列。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.