我被要求查看一张非常繁忙的表格并找出任何需要改进的地方。
我只能更改索引表的能力非常有限。
sys.dm_db_index_usage_stats
DMV,在过去 7 周内每周运行两次。此表上的当前聚集索引有五列:
我的理解是聚簇索引应该坚持以下属性。 来源
当前的聚集索引不是这些。
所以我的假设是用Id
列上的聚集索引来纠正这个问题- 一个不是身份但通过计数器表维护的整数(读取值,加 1,更新计数器表)。
我在 上创建了一个聚集索引Id
,不使用主键,因为我相信添加 guid 和 company 列不会给我任何好处。
然后我创建了一个非聚集索引,其中包含 …
我正在尝试准确计算工具出租的总天数。
这是一个数据示例:
CREATE Table #tmpToolRentalDays
(
ToolId BIGINT,
StartDate DATETIME,
EndDate DATETIME,
RentalDays FLOAT
)
INSERT INTO #tmpToolRentalDays(ToolId, StartDate, EndDate, RentalDays)
values
(39, '2016-02-01 00:00:00.000', '2016-02-01 00:00:00.000', 1),
(39, '2016-02-01 00:00:00.000', '2016-02-02 00:00:00.000', 2),
(39, '2016-02-04 00:00:00.000', '2016-02-05 00:00:00.000', 2),
(39, '2016-02-05 00:00:00.000', '2016-02-06 00:00:00.000', 2),
(39, '2016-02-06 00:00:00.000', '2016-02-07 00:00:00.000', 2),
(36, '2016-02-07 00:00:00.000', '2016-02-28 00:00:00.000', 22),
(39, '2016-02-08 00:00:00.000', '2016-02-09 00:00:00.000', 2),
(39, '2016-02-09 00:00:00.000', '2016-02-10 00:00:00.000', 2),
(11, '2016-02-14 00:00:00.000', '2016-02-28 00:00:00.000', 15),
(39, '2016-02-18 00:00:00.000', '2016-02-21 …
Run Code Online (Sandbox Code Playgroud)