我有一个数据库,在数据库中,常量读写一直在发生。搜索是用外卡记录进行的。服务器在SQL 2016标准版上。
企业没有预算,也没有任何不使用外卡搜索的意图,也没有维护窗口。
由于通配符搜索正在进行,索引也没有用,因为它正在进行全表扫描,从而创建锁定。
我正在使用Ola Hallengren脚本进行索引,但是索引维护需要10-12小时才能完成,因为它每天24/7都在忙。下面是脚本:
EXECUTE dbo.IndexOptimize
@Databases = 'user_databases',
@FragmentationLow = NULL,
@FragmentationMedium = 'INDEX_REORGANIZE,INDEX_REBUILD_ONLINE,INDEX_REBUILD_OFFLINE',
@FragmentationHigh = 'INDEX_REBUILD_ONLINE,INDEX_REBUILD_OFFLINE',
@FragmentationLevel1 = 5,
@FragmentationLevel2 = 30,
@UpdateStatistics = 'ALL',
@OnlyModifiedStatistics = 'Y'这已经成为一个令人沮丧的问题,我即将退出。
请告诉我这里有什么选择。
发布于 2021-03-23 18:12:23
不要做索引碎片是一种选择。你一开始就测量过破碎机的改进吗?HQISILON没有对我说什么,您的磁盘子系统是一个方面。但是,查询负载、执行计划等也是最好的方法,那就是有一些负载来衡量你实际得到了什么。
一个并行的工作应该是调查你是否有对你没有帮助的索引。Sys.dm_db_index_usage_stats在这里可能很有用。
如果阻塞是您的问题,那么请考虑执行reorg而不是重新构建。也就是说,将参数更改为proc,因为如果> 30%,则现在进行重新构建。Reorg比重建(在脱机模式下)更多的是在线版本。
发布于 2021-03-23 20:48:59
发布于 2021-03-23 21:09:53
所以真正的问题是:
由于通配符搜索正在进行,索引也没有用,因为它正在进行全表扫描,从而创建锁定。
不是碎裂本身。
但是,在不删除通配符搜索的情况下,我看到的唯一帮助是将全文搜索添加到这些列中,并使用Server的全文查询功能。
在这里你可以找到它们是如何工作的:
https://dba.stackexchange.com/questions/287537
复制相似问题