解决错误编号为644,未找到索引行问题(MSSQL)

前天一同事在客户那边Update一张表的时候,发生错误644,未找到索引条目。
如图:


头一次碰到这样的问题,而且错误严重级别为21,有点‘恐怖’。

首先借助一下MSSQL的帮助,错误644的说明,如图:



再根据提供的对策,执行不带修复子句的 DBCC CHECKDB 以确定损坏的程度。然后,执行带有 REPAIR_REBUILD 子句的 DBCC CHECKDB 以更正损坏,如图:


开始还以为能这样就解决问题,但错误依然存在。
没有办法,只有希望寄托在重新创建该索引上了.(使用DBCC DBREINDEX ('数据库名',表名, 80) 命令都没有效)
只有手工重建索引了,(刚好作为主键的字段OnOffDutyID与其他表没有什么约束关系)
如图:



重建索引后,真的可以了
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 MSSQL 数据库中,可以使用以下方法来查找和处理索引问题: 1. 执查询计划分析:使用 SQL Server Management Studio (SSMS) 或其他工具,执慢查询的查询计划分析。通过查看执计划,可以确定是否存在索引扫描或者其他低效操作,以及是否建议创建新的索引。 2. 使用动态管理视图 (DMV):MSSQL 提供了一些 DMV,可以帮助识别索引问题。例如,可以使用 sys.dm_db_index_usage_stats 视图来查看索引的使用情况,确认哪些索引没有被使用,或者被低效地使用。 3. 使用索引优化向导:SSMS 提供了一个索引优化向导,可以帮助你识别需要创建、删除或修改的索引。通过执向导,它会分析查询和表的结构,并提供建议来优化索引。 4. 定期维护索引:确保定期维护索引以提高性能。这包括重新组织或重建索引、更新统计信息等。 5. 删除不需要的索引:检查是否存在不需要的、重复的或者不再使用的索引。这些索引可能会增加写操作的开销,并占用存储空间。 6. 注意索引列顺序:索引列的顺序对查询性能有影响。根据查询的过滤条件和排序要求,选择合适的索引列顺序。 7. 考虑覆盖索引:使用覆盖索引可以减少查询的 I/O 操作,提高查询性能。覆盖索引包含了查询所需的所有列,避免了回表操作。 请注意,在处理索引问题之前,建议在开发或测试环境中进验证和测试。此外,如果需要更深入的优化或处理复杂的索引问题,可能需要咨询专业的数据库管理员或性能优化专家。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值