现在的位置: 首页 > 综合 > 正文

编号范围为什么跳号

2012年10月25日 ⁄ 综合 ⁄ 共 1730字 ⁄ 字号 评论关闭

今天上午回答了一个关于内部给号的编号范围跳号的问题,不做进一步整理了,只贴聊天记录。

 

<问>  9:09:28
不知道大家有没有遇到这个问题
就是创建物料主数据,有时候物料号会无缘无故跳号
请问这是什么原因? 
<问>  9:09:46
这跟basis有关吗? 
<答>  9:10:49
无关,正常。
<答>  9:11:09
一般是重启服务器后跳号,因为使用了缓存。
<问>  9:11:35
还是不是很懂~~
我们服务器也没有重启过吖 
<答>  9:13:17
10
<答>  9:13:24
缓冲区中的数量号          10
<问>  9:15:54
?缓冲区里预先存了10个号
 
<答>  9:15:56
物料居然内部给号,比较奇怪。
<答>  9:16:06
是的,如果没有的话,就取10个,留着用。
<答>  9:16:11
用完了再取。
<插话> 9:16:31
那如何避免呢
<问>  9:16:36
是吖 
<问>  9:16:43
如何避免? 
<答>  9:17:18
无法避免
<插话> 9:17:26
 
<答>  9:17:33
因为这些东西对连号没有绝对要求。
<问>  9:17:45
。。。。你们的公司也有这个现象? 
<答>  9:18:23
创建编号范围的时候会有个提示,如果需要连号,就不设置这个缓冲。
<答>  9:18:33
这是SAP的规定
<插话> 9:20:07
长见识了
<问>  9:20:15
哦?你意思是模块顾问做配置的时候,可以设置它不使用这个缓冲? 
<答>  9:20:30
不是,这个是开发时决定的,无法配置。
<答>  9:20:41
你们是basis,无需了解这些的。
<答>  9:21:25
当然,强制修改也不是不可以,如果需求非常强烈的话。
<答>  9:22:06
SAP里没什么不能修改的。
<问>  9:22:11
其实~我是不懂~为什么使用了缓冲区,就会跳号? 
<答>  9:22:38
缓冲区是在应用服务器上的。
<答>  9:23:12
在读取时,如果使用了缓冲区,就直接把下一个取号设置成了当前号+缓冲数量。。
<答>  9:23:44
如果重启,缓冲区清空了,数据库里存的是跳过以后的。再取就跳了。
<答>  9:23:56
它不会再检查业务数据表。
<答>  9:24:21
只去检查存储编号的那个表 niv??
<答>  9:24:35
忘记表名了,我们出现过好几次这个表锁定。
<答>  9:25:04
死锁,造成PRD无反应。
<答>  9:25:21
也许就是为了减少死锁,SAP才建议使用缓冲区。
<问>  9:25:48
哦? 
<答>  9:25:51
象财务、销售、采购这些最常用的凭证号,反而是没缓冲的,不会跳号。
<答>  9:26:17
当然,如果发生保存时数据库提交失败,也会跳。
<问>  9:26:28
那难道那些就不会死锁? 
<答>  9:26:47
不是,它们是造成死锁的根源,但是没有办法。
<答>  9:26:59
它们对连号的要求比物料强得多。
<答>  9:27:15
首先保证业务,再尽量从技术上优化。
<问>  9:27:46
嗯嗯~ 
<答>  9:28:28
nriv
<答>  9:28:33
这个表,你可以看看。
<问>  9:28:47
好的!我看看 
<答>  9:28:51
它的数据量并不大
<答>  9:28:58
但是使用非常频繁。
<问>  9:34:36
还不是完全懂~但也有点明白了
只是~我们没有重启服务器,只是重启过sap应用和数据库 
<问>  9:34:44
难道这个也有关系? 
<答>  9:35:31
缓冲都是在应用服务器内存了点。
<答>  9:35:39
内存里的。
<答>  9:35:45
重启就没了。
<答>  9:36:38
正常的话,读下一个的时候程序就不去找数据库,而是直接从内存里读出。而数据库的值已经更新到内存里最后一个号+1了。
<答>  9:36:46
数据库的是持久的
<答>  9:37:01
所以重启以后,内存的号没了,数据库里是跳过以后的。
<问>  9:38:29
哦~这样说好像有点明白了! 
<问>  9:38:52
华师傅~你对sap的理解很深刻吖! 
<答>  9:39:10
这个编号范围经常要用的。
<问>  9:42:20
这个编号范围是所有的编号的范围吗?包括物料,财务销售,采购那些?? 
<答>  9:43:50
是的,基本所有做为主键的编号都在内。
<答>  9:44:04
供应商、客户……

抱歉!评论已关闭.