sqlserver 数据库的索引碎片为什么增长得那么快?

了空
  • 3
新手上路,请多包涵

我们有个停车系统使用的sqlserver2012版本的数据库,其中有一张表大概有十几万条记录,有一个报表查询因为使用了5个表连接导致每次查询的时候都会耗时很久,而且查询没结束的话查询的相关表会被锁住导致其他业务处理会等待超时。
我们使用数据库管理系统自带的“优化顾问”分析了耗时的sql语句,并根据分析结果对相关表建立了索引。建立索引后查询速度确实很快,但是却发现其中有一条索引的【索引碎片】增长很快,大概几个小时的时间就到99%了,就算重建了索引也很快就涨到99%了。这张表总行数在十万多一点每天新增量在5000条左右,希望有DBA行家能解答一下这种情况是因为索引建立得不对吗? 还是属于正常现象就是需要频繁去重建索引呢?
image.png
索引碎片统计

索引创建语句如下:

CREATE NONCLUSTERED INDEX [CarNumber_Index] ON [dbo].[T_ParkRecord]
(
[CarNumber] ASC
)
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
回复
阅读 563
2 个回答

是不是这个carnumber这个字段更新的比较频繁

了空
  • 3
新手上路,请多包涵

CarNumber字段在整条记录添加后就没有更新过,只是很多查询语句里是用CarNumber作为筛选条件的这个会有影响吗?

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
你知道吗?

宣传栏