繁体   English   中英

如何优化SQL Server表上的索引

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM