Xin chào
Tất cả các Chỉ mục trong cơ sở dữ liệu SQL Server sẽ bị phân mảnh Sau khi các bảng liên quan có nhiều bản cập nhật, hãy xóa các giao dịch.
Nếu chỉ mục trong bảng bị phân mảnh thì tất cả các giao dịch liên quan đến bảng đó sẽ rất chậm. Vì vậy, SQL Server DBA nên thường xuyên theo dõi các chỉ mục và chỉ mục nào bị phân mảnh và không giống như ảnh chụp màn hình sau.
Bạn có thể kiểm tra chỉ mục bị phân mảnh bằng tập lệnh sau. Nhập Tên cơ sở dữ liệu SQL Server chính xác trong dòng đầu tiên, sau đó truy vấn sẽ tìm thấy các chỉ mục bị phân mảnh.
declare @db int select @db=DB_ID('DEVECI')
select 'ALTER INDEX [' + i.name +'] on '+OBJECT_NAME(s.object_id)+' REBUILD WITH (ONLINE = ON)', objname = OBJECT_NAME(s.object_id), s.object_id, index_name= i.name, index_type_desc, avg_fragmentation_in_percent from sys.dm_db_index_physical_stats(@db,null,null,null,null) as s join sys.indexes i on i.object_id = s.object_id and i.index_id = s.index_id where avg_fragmentation_in_percent>30 order by avg_fragmentation_in_percent desc, page_count desc;