首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何提高sql server查询响应时间

如何提高sql server查询响应时间
EN

Stack Overflow用户
提问于 2013-12-24 12:25:46
回答 1查看 863关注 0票数 1

我有一个包含6000万条记录的表,其结构如下

代码语言:javascript
复制
CREATE TABLE dbo.cus_pivot_non_unique_indexes
  (
     SEQ_ID                              BIGINT,
     SRM_CLIENT_ENTITIES_SEQ_ID          BIGINT,
     CUS_ENTITY_DATA_SEQ_ID              BIGINT,
     SRM_CLIENT_ENTITY_ATTRIBUTES_SEQ_ID BIGINT,
     ATTRIBUTE_DATETIME                  DATETIME,
     ATTRIBUTE_DECIMAL                   DECIMAL(18, 2),
     ATTRIBUTE_STRING                    NVARCHAR(255),
     ATTRIBUTE_BOOLEAN                   CHAR(1),
     SRM_CLIENTS_SEQ_ID                  BIGINT
  ) 

该表有两个索引。

  1. 带键SEQ_ID的聚集索引
  2. 非唯一的非聚集索引:我遵循四个复合索引 a. SRM_CLIENTS_SEQ_ID, SRM_CLIENT_ENTITIES_SEQ_ID, SRM_CLIENT_ENTITY_ATTRIBTUES_SEQ_ID, ATTRIBUTE_DATETIME b. SRM_CLIENTS_SEQ_ID, SRM_CLIENT_ENTITIES_SEQ_ID, SRM_CLIENT_ENTITY_ATTRIBTUES_SEQ_ID, ATTRIBUTE_DECIMAL c. SRM_CLIENTS_SEQ_ID, SRM_CLIENT_ENTITIES_SEQ_ID, SRM_CLIENT_ENTITY_ATTRIBTUES_SEQ_ID, ATTRIBUTE_STRING d. SRM_CLIENTS_SEQ_ID, SRM_CLIENT_ENTITIES_SEQ_ID, SRM_CLIENT_ENTITY_ATTRIBTUES_SEQ_ID, ATTRIBUTE_BOOLEAN

问题是,当我对该表执行简单查询时,它不会在可接受的时间内返回结果。

查询:

代码语言:javascript
复制
SELECT CUS_ENTITY_DATA_SEQ_ID  
FROM   dbo.cus_pivot_non_unique_indexes 
WHERE  srm_client_entity_attributes_seq_id = 51986 
       AND attribute_decimal = 4150196 

执行时间:2秒

谢谢

EN

回答 1

Stack Overflow用户

发布于 2013-12-24 12:29:17

您所拥有的索引对此查询没有用处。

您需要一个带有前导列的SRM_CLIENT_ENTITY_ATTRIBUTES_SEQ_ID, ATTRIBUTE_DECIMAL (按任何顺序排列)才能得到一个查找。

可能您希望INCLUDE其他表列,以使索引覆盖和避免查找。这取决于谓词的选择性和总体工作负载平衡。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20760924

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档