免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2870 | 回复: 5
打印 上一主题 下一主题

Sybase怎么检查索引的问题? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-01-26 08:24 |只看该作者 |倒序浏览
数据库里有几张表,数据只有几十行,用sp_spaceused查看的时候,索引居然有六七百兆,导致数据库性能严重下降,前台网页基本上打不开。用dbcc checktable和dbcc tablealloc检查过,并没有报错。重建索引后恢复正常。
想请问一下,像这样的问题,用什么命令能检查出来呢?数据库版本是12.5.3 / EBF12876。谢谢!

论坛徽章:
0
2 [报告]
发表于 2013-01-26 21:48 |只看该作者
这张表的增删改多么?

论坛徽章:
0
3 [报告]
发表于 2013-01-26 22:18 |只看该作者
回复 2# fishcoder


    用的倒是挺频繁的

论坛徽章:
0
4 [报告]
发表于 2013-01-26 22:35 |只看该作者
回复 3# 其实我有点晕


    如果频率很大的话,那应该就是这个问题了

    分三种情况:
    1、 insert 添加在一定程度上可以导致B树page的分裂,从而使索引的大小变大

    2. update: 如果更新索引相关的column,那么首先是删除原来那个key,然后再添加(mysql的实现,我觉得 sybase应该也差不多)

    3. delete:sybase 默认在删除的时候不会清理索引页中的key的,因此在索引中会存在很多没有用的key

   处理方法呢,你可以试试 rebuild index,我记得是会加sh-table的锁,这个不确定
   是在不行,可以先把index drop掉,完了再创建么,反正表很小,写个脚本在半夜2点做就可以了

论坛徽章:
0
5 [报告]
发表于 2013-01-26 22:39 |只看该作者
回复 4# fishcoder


    谢谢指点。我那个系统倒不是很重要的,随时都可以做的

论坛徽章:
0
6 [报告]
发表于 2013-01-28 19:20 |只看该作者
回复 4# fishcoder


    谢谢,找到问题了。之前一直没太注意,这些表用的是行锁。定期做reorg rebuild就好了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP