收藏本站 
广告服务 
网站地图 
>> 本频道近100000余篇各类电脑技术、网络技术、软件技术、网页及平面设计等方面的电脑教程,我们的原则:不是精华拒不收录!
先飞电脑技术网技术文章数据库开发Sybase
网络编程 | 网站建设 | 网络技术 | 设计教程 | 软件教学 | 程序开发 | 数据库开发 | 教育认证 | 硬件维护 | 媒体动画 | 机械电子 |

数据库中有numeric数据类型的字段问题

[ 作者:佚名    转贴自:网络转载    阅读次数:58    更新时间:2007-10-4 13:30:00   录入:刘光勇 ]         
    问题描述: 今天早上开服务器,启动SYBASE服务时,感觉比平时慢了许多. qT%A1;L/  
查看NT日志,有一条' >L* N#4FC  
wPGJ ;+"  
Sybase SQLServer _ YESKY 服务因 13 服务性错误而停止。 ' 9veutSW:  
晕了,昨天晚上没有服务就关服务器了? 服务起来了,当时检查数据库也没发现什么问题.. @6LA}Hg  
上班了,有一道工序的员工反应应用程序出现: 'XX值超出最大范围,请与管理员联系' .  检查相应表里的数据,(该表里有一个字段为numeric,设为自动加1,字段定义为  test1 numeric(10,0) IDENTITY  ,) 表现该字段最大值为5028502,而它下面比它小的那个字段值为28501,将值为5028502的这条记录删除,再来,最大值成了5028503.删了再来,5028504. 不行了,看来出问题了.... `c!C 5D]Q  
B%l3<p;  
经多方求教,问题已经得到解决,现写出对问题的分析及解决办法,共大家参考: 5Auv\/_ =  
}.qZ "+|$b  
出现这个错误与SYBASE处理IDENTITY的策略有关.SYBASE在启动时会取出一段值放在内存中,IDENTITY是从内存中取的,在关机时,再写回到数据库中,如果非正常关机,则,,, )5W,1FH_  
NJ@pSvHi<P  
分析原因:db-server服务器出现故障或用no wait关机。导致分配ID号码块被‘烧毁’,当db-server服务器再次运行时,它会以先前写入磁盘的块的最高号码为基础,开始为下一号码块编号。依据出现故障前被指派到行中的已分配号码的多少,ID号可能会有很大的间隔。  -,GmPus  
9`4s:&s2  
解决方法:  在该表上加上 with identity_gap = number 参数即可. 8/p?3"%h`  
with identity_gap 是为表指定标识间距。此值仅替换为此表设置的标识距。 ~!8 <M  
  pMi'7>  
执行sp_chgattribute 'table_name','identity_gap',number  'N   
可用sp_help  查看表的identity_gap的设置  Y8$.e&1J  
xOeDIFWY  
number的值不要设置的过低,会使性能降低  * ",R+r  
lmJZzU C  
建议为50,  这样你的数据最大的数据间隔是50 ~!e,eh88  
F xb  
u?>1@I  
结果: 执行sp_chgattribute 'table_name','identity_gap',number  Uy3FT6 0t  
      问题解决. }|ptj/%  
P!pt (T  
教训:一定要正常关机! P5m?+7e  
%RDCuKn)  
esl_H w  
其实,这也是大家帮助我解决的,在些也对你们表示感谢! & ?3V_Z#  
本人菜鸟一只,但我一直在努力,学习也是一个过程....
文章首页【加入到收藏夹】告诉好友】【打印此文】【关闭窗口
  版权声明:本站提供的“数据库中有numeric数据类型的字段问题”版权归文章所有者,转载请注明出处!
 ·上一篇文章:借Sybase数据库打造财务管理新模式      ·下一篇文章:轻松解决Sybase JDBC DRIVER问题
相关文章
·优化数据库前需考虑的十个问题[33]
·优化MySQL数据库性能的八大技巧[25]
·在 SQL Server 下使用数据库链接[16]
·解析C#数据类型之间转换问题[61]
·Excel 2007单元格中数据重定位的不同方式[28]
网站主页 | 收藏本页 | 联系我们 | 广告服务 | 站点地图 | 会员注册 | 招聘信息 | 内容指正

联系QQ:先飞电脑技术网站事务联系QQ,点击可以直接留言. 32933427 电话:13710542091 [世界排名] 鄂ICP备05005890号 先飞电脑教程网