相关疑难解决方法(0)

为什么我的数据库在重建并重新索引所有内容后仍然碎片化?

我有一个数据库,我试图通过运行此 T-SQL 一次对所有表进行碎片整理:

SELECT 
        'ALTER INDEX all ON ' + name + ' REORGANIZE;' + CHAR(10) +
        'ALTER INDEX all ON ' + name + ' REBUILD;'
    FROM sys.tables
Run Code Online (Sandbox Code Playgroud)

然后将输出复制并粘贴到新的查询窗口并运行它。我没有错误,但我仍然有碎片。我也尝试分别运行这两个命令,但仍然存在碎片。注意:REORGANIZE Aaron已经让我知道这是不必要的,并且我知道我可以使用动态 sql 来自动执行此操作。

我运行这个以确定我仍然有碎片:

SELECT * FROM 
sys.dm_db_index_physical_stats (DB_ID(), NULL, NULL , NULL, NULL) 
WHERE avg_fragmentation_in_percent > 0
Run Code Online (Sandbox Code Playgroud)

我得到了:

database_id object_id   index_id    partition_number    index_type_desc alloc_unit_type_desc    index_depth index_level avg_fragmentation_in_percent    fragment_count  avg_fragment_size_in_pages  page_count  avg_page_space_used_in_percent  record_count    ghost_record_count  version_ghost_record_count  min_record_size_in_bytes    max_record_size_in_bytes    avg_record_size_in_bytes    forwarded_record_count  compressed_page_count
85  171147655   1   1   CLUSTERED INDEX IN_ROW_DATA 2 …
Run Code Online (Sandbox Code Playgroud)

index sql-server-2008 fragmentation

43
推荐指数
3
解决办法
5万
查看次数

标签 统计

fragmentation ×1

index ×1

sql-server-2008 ×1