online创建索引中途取消导致索引无法删除解决办法
问题:有一个表ID栏位没有索引,但是在一个update语句的where中被使用,因此打算online创建索引,但是长时间没有成功,此时决定取消,取消后发现索引无法删除
过程:
数据库监控报警有行锁,进入之后发现是一个update的sql迟迟没有提交,分析后发现走的是全表扫描
根据谓词条件创建索引
/* Formatted on 2020/1/9 上午 11:01:28 (QP5 v5.163.1008.3004) */
CREATE INDEX XXX.XXX
ON XXX.XXX(ID)
TABLESPACE XXX
ONLINE;
在创建的时候,一个200M的表执行了好久还是没有完成,此时查看发现被上边的updatg语句挡住了,此时查找资料后得知online可以在线加索引,但是如果表上面有DML语句一直不提交的话,
就会挡着索引的创建,因此此时决定取消创建
取消后,发现表上已经有索引了,个人感觉这个索引是不健康的,写了一个加hint的sql试了一下,这个索引果然没有起作用,因此决定删除重建
删除索引时,有报错:ORA-00054: 資源正被使用中, 請設定 NOWAIT 來取得它, 否則逾時到期
查看资料后,决定使用包DBMS_REPAIR手动清理
--查找索引的object_id
/* Formatted on 2020/1/9 上午 11:01:33 (QP5 v5.163.1008.3004) */
SELECT i.obj#,
i.flags,
u.name,
o.name,
o.type#
FROM sys.obj$ o, sys.user$ u, sys.ind_online$ i
WHERE (BITAND (i.flags, 256) = 256 OR BITAND (i.flags, 512) = 512)
AND (NOT ( (i.type# = 9) AND BITAND (i.flags, 8) = 8))
AND o.obj# = i.obj#
AND o.owner# = u.user#;
--或者使用dba_objects视图
--使用如下sql以SYS用户进行清理
DECLARE
a BOOLEAN;
BEGIN
a := DBMS_REPAIR.online_index_clean (200053,dbms_repair.lock_wait);
END;
/
手动清理的过程中,发现sql一直迟迟执行不了,查找资料发现,这个语句会一直试图占用资源,但是如果一直无法占用资源,这个sql就会被挡
到这里继续找表上的迟迟不提交DML,找到并杀掉进程后,顺利执行,执行后索引就没有了。
online创建索引中途取消导致索引无法删除解决办法的更多相关文章
- delete语句与reference约束 FK_subplan_job_id冲突问题,导致job无法删除解决办法
在SQL Server 2008上删除已运行维护计划后,维护计划job没有自动删除掉,手工再删除维护计划job,提示删除失败. 错误现象:delete 语句与 reference 约束"F ...
- Asp.Net保存session的三种方法 (Dll文件更新导致session丢失的解决办法)
1. InProc模式(默认值):asp.net将session保存到当前进程中,这种方式最快,但是不能多台服务器共享session,且会话状态数据容易丢失. <sessionState mod ...
- Visual Studio2012打开时弹出“遇到异常:这可能是由某个扩展导致的”错误的解决办法
Visual Studio2012打开时弹出"遇到异常:这可能是由某个扩展导致的"错误的解决办法: 具体问题如下: 分析原因:网上搜集了以下,出现异常的原因是安装了第三方控件,然后 ...
- Office 2010 word无法创建工作文件 请检查临时环境变量 的解决办法
Office 2010 word无法创建工作文件 请检查临时环境变量 的解决办法 http://hi.baidu.com/netshen/item/207fd935d452e0e9df2221c9 如 ...
- SQL SERVER 2012数据库:开启防火墙导致外部无法连接数据库解决办法
SQL SERVER 2012数据库:开启防火墙导致外部无法连接数据库解决办法 将以下代码存为OpenSqlServerPort.bat文件: netsh advfirewall firewall a ...
- 新版本ADT创建Android项目无法自动生成R文件解决办法
本人使用的是ADT是Version 23.0.2,支持Android 6.0之后的系统环境,最高版本23,在创建Android项目的时候,每次创建项目选择“Compile With”低于6.0版本的时 ...
- SQL Server中TOP子句可能导致的问题以及解决办法
简介 在SQL Server中,针对复杂查询使用TOP子句可能会出现对性能的影响,这种影响可能是好的影响,也可能是坏的影响,针对不同的情况有不同的可能性. 关系数据库中SQL语句只 ...
- 关闭键盘导致tableView:didSelectRowAtIndexPath:失效解决办法
今天公司的小兄弟问了tableView:didSelectRowAtIndexPath:不能执行的问题. 从经验看觉得可能是控制器没有成为tableView的代理所致.但代码中已经添加了代码 _tab ...
- WPF循环加载图片导致内存溢出的解决办法
程序场景:一系列的图片,从第一张到最后一张依次加载图片,形成“动画”. 生成BitmapImage的方法有多种: 1. var source=new BitmapImage(new Uri(" ...
随机推荐
- [日常摸鱼]Luogu2521[HAOI2011]防线修建-set维护凸包
https://www.luogu.org/problemnew/show/2521 题意:维护一个上凸包:删点,查询周长 很容易想到把问题转换为离线:先读入全部操作,记录下最后剩下的点,倒着加点来维 ...
- 利用302绕过http协议限制
360某处ssrf漏洞可探测内网信息(附内网6379探测脚本) http://xss.one/bug_detail.php?wybug_id=wooyun-2016-0229611
- 持久层之 MyBatis: 第二篇 :动态SQL And多表查询
MyBatis入门到精通 完整CRUD UserDaoImpl 编写UserDao对应的UserDaoMapper.xml 添加UserDao的测试用例 编写UserDao的测试用例 解决数据库字段名 ...
- EF Core 封装方法Expression<Func<TObject, bool>>与Func<TObject, bool>区别
unc<TObject, bool>是委托(delegate) Expression<Func<TObject, bool>>是表达式 Expression编译后就 ...
- (六)、mkdir--创建目录make directory
一.命令详解与命令格式 在文件系统中创建新的目录, 格式:mkdir [-选项] 目录名 目录名既可以是相对路径名,也可是相对路径名 选项: -p或者--parent,创建指定路径中所有不存在 ...
- 使用Python实现搜索任意电影资源的磁力链接
对于喜欢电影的人来说各种电影资源必不可少,但每次自己搜索都比较麻烦,索性用python自己写一个自动搜索的脚本. 这里我只分享我的思路,具体如何实现参考代码,要想实现搜索功能先要抓包分析如何发送数据, ...
- 向Docker告别的时候到了
在容器的远古时期(大约4年前),Docker是容器游戏中仅有的参与者.但是现在情况不一样了,Docker不再是唯一的一个了,只是另一个容器引擎而已.Docker允许我们构建,运行,拉取,上传,查看容器 ...
- mysql数据安全之利用二进制日志mysqlbinlog备份数据
mysql数据安全之利用二进制日志mysqlbinlog备份数据 简介:如何利用二进制日志来备份数据 什么是二进制日志: 二进制日志就是记录着mysql数据库中的一些写入性操作,比如一些增删改,但是, ...
- Idea mybatis maper接口与mapper.xml文件关联 会根据接口中的方法点在mxl中生成相应sql方法
- ArrayList的删除姿势你都知道了吗
引言 前几天有个读者由于看了<ArrayList哪种遍历效率最好,你真的弄明白了吗?>问了个问题普通for循环ArrayList为什么不能删除连续重复的两个元素?其实这个描述是不正确的.正 ...