首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >繁忙OLTP数据库的索引维护

繁忙OLTP数据库的索引维护
EN

Database Administration用户
提问于 2021-03-23 14:28:01
回答 4查看 157关注 0票数 0

我有一个数据库,在数据库中,常量读写一直在发生。搜索是用外卡记录进行的。服务器在SQL 2016标准版上。

企业没有预算,也没有任何不使用外卡搜索的意图,也没有维护窗口。

由于通配符搜索正在进行,索引也没有用,因为它正在进行全表扫描,从而创建锁定。

我正在使用Ola Hallengren脚本进行索引,但是索引维护需要10-12小时才能完成,因为它每天24/7都在忙。下面是脚本:

代码语言:javascript
复制
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'

这已经成为一个令人沮丧的问题,我即将退出。

请告诉我这里有什么选择。

EN

回答 4

Database Administration用户

发布于 2021-03-23 18:12:23

不要做索引碎片是一种选择。你一开始就测量过破碎机的改进吗?HQISILON没有对我说什么,您的磁盘子系统是一个方面。但是,查询负载、执行计划等也是最好的方法,那就是有一些负载来衡量你实际得到了什么。

一个并行的工作应该是调查你是否有对你没有帮助的索引。Sys.dm_db_index_usage_stats在这里可能很有用。

如果阻塞是您的问题,那么请考虑执行reorg而不是重新构建。也就是说,将参数更改为proc,因为如果> 30%,则现在进行重新构建。Reorg比重建(在脱机模式下)更多的是在线版本。

票数 0
EN

Database Administration用户

发布于 2021-03-23 20:48:59

当Ola Hallengren脚本完成时,索引将再次支离破碎。

  1. 放大服务器(增加内存和CPU)
  2. 用SDD代替HDD
  3. SentryOneSQL监视器SQL诊断管理器数据库性能监控等处购买许可证.修复那些阻塞和死锁

索引碎片不是问题,而是其他东西的症状:修复它,而不是碎片。

票数 0
EN

Database Administration用户

发布于 2021-03-23 21:09:53

所以真正的问题是:

由于通配符搜索正在进行,索引也没有用,因为它正在进行全表扫描,从而创建锁定。

不是碎裂本身。

但是,在不删除通配符搜索的情况下,我看到的唯一帮助是将全文搜索添加到这些列中,并使用Server的全文查询功能。

在这里你可以找到它们是如何工作的:

https://learn.microsoft.com/en-us/sql/relational-databases/search/full-text-search?view=sql-server-ver15

票数 0
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/287537

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档