SYBASE索引错误?怎么解决

SYBASE索引错误?怎么解决,第1张

Sybase

错误代码是一组错误代码集,用于所有

Sybase

产品,包括

Adaptive

Server

Enterprise。

Adaptive

Server

Anywhere

所返回的每个

Sybase

错误代码,都有与之匹配的

Adaptive

Server。

Anywhere

错误代码。在许多情况下,Adaptive

Server

Anywhere

错误代码比对应的

Sybase

错误代码更详细。

分三种情况:

1、

insert

添加在一定程度上可以导致B树page的分裂,从而使索引的大小变大。

2.

update:

如果更新索引相关的column,那么首先是删除原来那个key,然后再添加

3.

delete:sybase

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

处理方法,可以试试

rebuild

index,会加sh-table的锁,这个不确定是在不行,可以先把index

drop掉,完了再创建。

回复 3# 其实我有点晕 如果频率很大的话,那应该就是这个问题了 分三种情况: 1、 insert 添加在一定程度上可以导致B树page的分裂,从而使索引的大小变大 2. update: 如果更新索引相关的column,那么首先是删除原来那个key,然后再添加(mysql的实现,我觉得 sybase应该也差不多) 3. delete:sybase 默认在删除的时候不会清理索引页中的key的,因此在索引中会存在很多没有用的key 处理方法呢,你可以试试 rebuild index,我记得是会加sh-table的锁,这个不确定 是在不行,可以先把index drop掉,完了再创建么,反正表很小,写个脚本在半夜2点做就可以了

where条件不走索引删除肯定慢,特别是数据量大的时候。最快的办法就是想法让其走索引,你可以先查!然后再删。查的时候拼成sql,我以Oracle为例,select id||';' from xx where rownum<10000 这样查询出来很多id后面还带分号,然后你再批量替换分号,替换成;delete from 这样就拼装成一系列sql语句,然后再执行,这样最快。sysbase没用过,但执行的都是标准sql,应该没问题


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11412528.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存