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