热门文章
联系我们
联系人:寇先生
微信公众号:
note 3108327 - 数据库碎片整理和重新建立索引可提高性能
知识分享不易,转载请标注来源:http://www.blenderkou.top/contents/13/6345.html 版权申明:欢迎转载,但请注明出处。 一些博文中的参考内容因时间久远找不到来源了没有注明,如果侵权请联系我删除。
3108327 - 数据库碎片整理和重新建立索引可提高性能
症状
事务和报告的执行时间增加,导致 SAP Business One(Microsoft SQL Server 版)整体性能下降
环境
SAP Business One
原因
在运行期间,由于数据插入、更新和删除,SAP Business One 的数据库可能会变得分散。 如果索引页具有基于键值的逻辑顺序,而该值与数据文件中的物理顺序不匹配,则会发生分段。严重碎片化的索引会导致性能下降。
解决方案
1、执行以下查询以帮助确定数据库是否需要重新建立索引。此查询将列出大于 20 页且碎片级别超过 30% 的所有索引。您可以调整这些临界值以更好地满足您的特定需求。使用这些标准作为基准,因为较小的索引和较少的分段索引通常不太可能引起性能问题。
SELECT OBJECT_NAME(ind.OBJECT_ID) AS TableName, ind.name AS IndexName, indexstats.index_type_desc AS IndexType, indexstats.avg_fragmentation_in_percent, page_count FROM sys.dm_db_index_physical_stats(DB_ID(), NULL, NULL, NULL, NULL) indexstats INNER JOIN sys.indexes ind ON ind.object_id = indexstats.object_id AND ind.index_id = indexstats.index_id WHERE indexstats.avg_fragmentation_in_percent > 30 AND page_count > 20 ORDER BY indexstats.avg_fragmentation_in_percent DESC
2、要重建受影响数据库中的索引,请从 Microsoft SQL Server Management Studio 执行以下脚本。在较大的数据库中此过程可能需要几个小时才能完成,因此我们建议在办公时间外运行该过程,以最大限度地减少对连接用户的影响。
/* Reindex procedure. Will execute dbcc dbreindex on each table in database */ DECLARE @tableName as sysname DECLARE @strExec as varchar(1000) -- Cursor declaration DECLARE tableNameCursor CURSOR READ_ONLY FAST_FORWARD FOR -- Take all user table --SELECT [name] FROM sysobjects WHERE xtype = 'U' SELECT OBJECT_NAME(ind.OBJECT_ID) AS [name] FROM sys.dm_db_index_physical_stats(DB_ID(), NULL, NULL, NULL, NULL) indexstats INNER JOIN sys.indexes ind ON ind.object_id = indexstats.object_id AND ind.index_id = indexstats.index_id WHERE indexstats.avg_fragmentation_in_percent > 30 AND page_count > 20 ORDER BY indexstats.avg_fragmentation_in_percent DESC OPEN tableNameCursor FETCH NEXT FROM tableNameCursor INTO @tableName WHILE @@FETCH_STATUS = 0 BEGIN -- Create the statement SET @strExec = 'dbcc dbreindex (''' + @tableName + ''','''',0 )' -- Execute the procedure exec (@strExec) FETCH NEXT FROM tableNameCursor INTO @tableName END CLOSE tableNameCursor DEALLOCATE tableNameCursor
另请参阅
有关此主题的更多详细信息,请参阅 Microsoft SQL Server 文档。
关键字
挂起,冻结,慢
更多好文:
Addon Show 2.0 SAP Business One 报表增强插件
SAP B1 Fiori 模式的 Web Client 、Service Layer来了! 10.0 PL01
SAPB1-开发成果-4 DelBOMAddOn[批量删除BOM]
SAP B1 库存明细表:批次、序列、库位 [HANA & SQL 通用]
SAP B1 SQL Server 版的 Fiori 主题SAP Business One 10.0 发布了!!!SAP B1 查询管理器条件参数
SAP Business One RFQ (联机报价单)SAP HANA学院 视频汇总与分类SAP B1业务流程展现方案[仪表盘]SAP B1在线试用
SAP B1 各版本官方包下载
前往www.blenderkou.top 获取更多内容。
点击下方“阅读原文”进入我的博客查看更多章节。
长按二维码,选择 “识别图中二维码” 关注我的公众号。
扫描二维码,关注我的公众号,第一时间获取文章!
知识分享不易,转载请标注来源:http://www.blenderkou.top/contents/13/6345.html 版权申明:欢迎转载,但请注明出处。 一些博文中的参考内容因时间久远找不到来源了没有注明,如果侵权请联系我删除。
上一篇
SQL server根据数据、字段值反查表名、字段名
下一篇
SQL Server 查询某个表的列名称、说明、备注、类型等