VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > 数据库 > sql数据库 >
  • sql语句大全之简单sql调优问题

一条简单sql,返回记录是0,但执行却消耗了63s,
 
 
 
执行计划:
 
 
 
 
 
表有655518记录
 
表的索引:
 
 
 
原因分析:
 
     1、高水平问题引起
 
     2、全表扫描的问题,
 
解决办法:
 
第一种:收缩表空间
alter table DOM_3_DOCLIB enable row movement; --开始行迁移,因为shrink时rowid会变
alter table DOM_3_DOCLIB shrink space cascade ;
alter table DOM_3_DOCLIB disable row movement;  --结束后关闭航迁移
 表比较多,直接用SQL语句将要shrink表的命令拼接出来准备好.
 
执行的时候报:
 
 
 
 
 
原因有事务进行,不能获取锁!
 
 
 
第二种:move表,再rebulid索引
最彻底的方法是move,不过索引会失效,需要rebuild.
表的数据跨多个数据文件的话效果不如move彻底。如果没有跨数据文件效果几乎一样。
重建索引如果是很大的表:
有ONLINE选项,对生产的影响也减小了点,但影响是有的,可以找闲时来做
 
 
 
 
创建索引:
 
create index IDX03_WDDOC_INFO on DOM_3_DOCLIB (SYS_ISKEEP, SYS_FOLDERID)
  tablespace USERS
  pctfree 10
  initrans 2
  maxtrans 255
  storage
  (
    initial 64K
    next 1M
    minextents 1
    maxextents unlimited
  );
 
 
 
      
 
 
 
查看执行计划
 
 
 
        收集一下统计信息,然后查看一下空块的数量
 
 
 
 
 
 
 
 
--------------------- 
作者:techsupporter 
来源:CSDN 
原文:https://blog.csdn.net/techsupporter/article/details/52280897 
版权声明:本文为博主原创文章,转载请附上博文链接!

相关教程