gpt4 book ai didi

sql-server - 如何使用 SQL 查询降低聚集索引扫描成本

转载 作者:行者123 更新时间:2023-12-01 23:26:27 26 4
gpt4 key购买 nike

如何减少下面提到的查询的聚集索引扫描成本

DECLARE @PARAMVAL varchar(3)

set @PARAMVAL = 'CTD'
select * from MASTER_RECORD_TYPE where RECORD_TYPE_CODE=@PARAMVAL

如果我运行上面的查询,它显示索引扫描 99%

请在下面找到我的表格的特点:

enter image description here

下面我粘贴了表格的索引:

CREATE TABLE [dbo].[MASTER_RECORD_TYPE] ADD  CONSTRAINT [PK_MASTER_REPORD_TYPE] PRIMARY KEY CLUSTERED 
(
[Record_Type_Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 80) ON [PRIMARY]
GO

请告诉我如何减少索引扫描成本?

最佳答案

首先 - 如果您搜索 RECORD_TYPE_CODE,您应该确保该列有索引。

除此之外,主要还有两件事:

  • 不要使用SELECT * - 总是必须返回聚集索引才能获取完整的数据页;使用显式指定要使用哪些列的 SELECT

  • 如果可能的话,尝试找到一种方法来建立覆盖非聚集索引,例如包含满足查询所需的所有列的索引

如果您有这样的覆盖非聚集索引,那么查询优化器很可能会使用该覆盖索引(而不是实际的聚集索引,即全表数据)来获取结果

关于sql-server - 如何使用 SQL 查询降低聚集索引扫描成本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11826441/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com